乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      4000字詳解數(shù)據(jù)倉(cāng)庫(kù)開(kāi)發(fā)規(guī)范要點(diǎn)

       宋志剛k5lpi995 2022-06-30 發(fā)布于福建

      01
      數(shù)據(jù)層次的劃分

      具體倉(cāng)庫(kù)的分層情況需要結(jié)合業(yè)務(wù)場(chǎng)景、數(shù)據(jù)場(chǎng)景、系統(tǒng)場(chǎng)景進(jìn)行綜合考慮,下面我們看一下常見(jiàn)的分層:

      • ODS:Operational Data Store,操作數(shù)據(jù)層,在結(jié)構(gòu)上其與源系統(tǒng)的增量或者全量數(shù)據(jù)基本保持一致。它相當(dāng)于一個(gè)數(shù)據(jù)準(zhǔn)備區(qū),同時(shí)又承擔(dān)著基礎(chǔ)數(shù)據(jù)的記錄以及歷史變化。其主要作用是把基礎(chǔ)數(shù)據(jù)引入到數(shù)倉(cāng)。

      • CDM:Common Data Model,公共維度模型層,又細(xì)分為DWD和DWS。它的主要作用是完成數(shù)據(jù)加工與整合、建立一致性的維度、構(gòu)建可復(fù)用的面向分析和統(tǒng)計(jì)的明細(xì)事實(shí)表以及匯總公共粒度的指標(biāo)。

        • DWD:Data Warehouse Detail,明細(xì)數(shù)據(jù)層。
        • DWS:Data Warehouse Summary,匯總數(shù)據(jù)層。
      • ADS:Application Data Service,應(yīng)用數(shù)據(jù)層。

      02
      數(shù)據(jù)分類架構(gòu)

      圖片

      該數(shù)據(jù)分類架構(gòu)在ODS層分為三部分:數(shù)據(jù)準(zhǔn)備區(qū)、離線數(shù)據(jù)和準(zhǔn)實(shí)時(shí)數(shù)據(jù)區(qū)。在進(jìn)入到CDM層后,由以下幾部分組成:

      • 公共維度層:基于維度建模理念思想,建立整個(gè)企業(yè)的一致性維度。

      • 明細(xì)粒度事實(shí)層:以業(yè)務(wù)過(guò)程為建模驅(qū)動(dòng),基于每個(gè)具體業(yè)務(wù)過(guò)程的特點(diǎn),構(gòu)建最細(xì)粒度的明細(xì)層事實(shí)表。您可以結(jié)合企業(yè)的數(shù)據(jù)使用特點(diǎn),將明細(xì)事實(shí)表的某些重要維度屬性字段做適當(dāng)?shù)娜哂?,即寬表化處理?/span>

      • 公共匯總粒度事實(shí)層:以分析的主題對(duì)象為建模驅(qū)動(dòng),基于上層的應(yīng)用和產(chǎn)品的指標(biāo)需求,構(gòu)建公共粒度的匯總指標(biāo)事實(shí)表,以寬表化手段來(lái)物理化模型。

      03
      數(shù)據(jù)劃分及命名約定

      請(qǐng)根據(jù)業(yè)務(wù)劃分?jǐn)?shù)據(jù)并約定命名,建議針對(duì)業(yè)務(wù)名稱結(jié)合數(shù)據(jù)層次約定相關(guān)命名的英文縮寫,這樣可以給后續(xù)數(shù)據(jù)開(kāi)發(fā)過(guò)程中,對(duì)項(xiàng)目空間、表、字段等命名做為重要參照。

      (1)數(shù)據(jù)劃分

      • 按業(yè)務(wù)劃分:命名時(shí)按主要的業(yè)務(wù)劃分,以指導(dǎo)物理模型的劃分原則、命名原則及使用的ODS project。

      • 按數(shù)據(jù)域劃分:命名時(shí)按照CDM層的數(shù)據(jù)進(jìn)行數(shù)據(jù)域劃分,以便有效地對(duì)數(shù)據(jù)進(jìn)行管理,以及指導(dǎo)數(shù)據(jù)表的命名。

      • 按業(yè)務(wù)過(guò)程劃分:當(dāng)一個(gè)數(shù)據(jù)域由多個(gè)業(yè)務(wù)過(guò)程組成時(shí),命名時(shí)可以按業(yè)務(wù)流程劃分。業(yè)務(wù)過(guò)程是從數(shù)據(jù)分析角度看客觀存在的或者抽象的業(yè)務(wù)行為動(dòng)作。

      (2)命名約定

      如果公司業(yè)務(wù)線比較多,我們可以按照項(xiàng)目的模式進(jìn)行劃分,如果不是直接按照層次劃分,project_ods、project_dwd

      (3)ODS層命名規(guī)范

      表命名規(guī)范 表命名規(guī)則:{層次}{源系統(tǒng)表名}{時(shí)間單位與增全量},i表示增量,f表示全量 ,d 表示天, h表示小時(shí)

      • 增量數(shù)據(jù):{project_name}.s{源系統(tǒng)表名}_di。

      • 全量數(shù)據(jù):{project_name}.s{源系統(tǒng)表名}_df。

      • ODS ETL過(guò)程的臨時(shí)表:{project_name}.tmp{臨時(shí)表所在過(guò)程的輸出表}{從0開(kāi)始的序號(hào)}。

      • 按小時(shí)同步的增量表:{project_name}.s{源系統(tǒng)表名}_hi。

      • 按小時(shí)同步的全量表:{project_name}.s{源系統(tǒng)表名}_hf。

      • 當(dāng)不同源系統(tǒng)同步到同一個(gè)Project下的表命名沖突時(shí),您需要給同步較晚的表名加上源系統(tǒng)的dbname以解決沖突。

      • 字段命名規(guī)范  字段默認(rèn)使用源系統(tǒng)的字段名。

      • 字段名與關(guān)鍵字沖突時(shí),在源字段名后加上_col,即源字段名_col。

      • 同步任務(wù)命名規(guī)范  任務(wù)名:建議和表名保持一致。

      (4)dim 層命名規(guī)范

      命名規(guī)則:{project_name}.dim{業(yè)務(wù)/pub}{維度定義}[_{自定義命名標(biāo)簽}],其中的pub與具體業(yè)務(wù)無(wú)關(guān),各個(gè)業(yè)務(wù)部都可以共用,例如時(shí)間維度。

      • 公共區(qū)域維表dim_pub_area

      • 公司社群板塊的群成員全量表dim_group_member

      (5)dwd  層命名規(guī)范

      通常需要遵照的命名規(guī)范為:dwd_{業(yè)務(wù)板塊/pub}{數(shù)據(jù)域縮寫}{業(yè)務(wù)過(guò)程縮寫}[_{自定義表命名標(biāo)簽縮寫}] _{單分區(qū)增量全量標(biāo)識(shí)},pub表示數(shù)據(jù)包括多個(gè)業(yè)務(wù)板塊的數(shù)據(jù)。

      單分區(qū)增量全量標(biāo)識(shí)通常為:i表示增量,f表示全量。例如:dwd_group_create_inf_df(公司社群創(chuàng)建事實(shí)表,日刷新全量)及dwd_group_chat_di(公司社群發(fā)消息事實(shí)表,日刷新增量)。

      (6)dws 層命名規(guī)范

      公共匯總事實(shí)表命名規(guī)范:dws_{業(yè)務(wù)板塊縮寫/pub}{數(shù)據(jù)域縮寫}{數(shù)據(jù)粒度縮寫}[{自定義表命名標(biāo)簽縮寫}]{統(tǒng)計(jì)時(shí)間周期范圍縮寫}。

      • 關(guān)于統(tǒng)計(jì)實(shí)際周期范圍縮寫,缺省情況下,離線計(jì)算應(yīng)該包括最近一天(_1d),最近N天(_nd)和歷史截至當(dāng)天(_td)三個(gè)表。

      • 對(duì)于小時(shí)表(無(wú)論是天刷新還是小時(shí)刷新),都用_hh 來(lái)表示。

      • 對(duì)于分鐘表(無(wú)論是天刷新還是小時(shí)刷新),都用_mm來(lái)表示。

      舉例如下:

      • dws_group_patient_join_1d(公司社群患者加群一日匯總事實(shí)表)

      • dws_group_patient_exit_td(公司社群患者退群截至當(dāng)日匯總表)

      04
      層次調(diào)用約定

      應(yīng)用層應(yīng)優(yōu)先調(diào)用公共層數(shù)據(jù),必須存在中間層數(shù)據(jù),不允許應(yīng)用層跨過(guò)中間層從ODS層重復(fù)加工數(shù)據(jù)。一方面,中間層人員應(yīng)該積極了解應(yīng)用層數(shù)據(jù)的建設(shè)需求,將公用的數(shù)據(jù)沉淀到公共層,為其他人員提供數(shù)據(jù)服務(wù)。

      另一方面,應(yīng)用層人員也應(yīng)積極配合中間層人員進(jìn)行持續(xù)的數(shù)據(jù)公共建設(shè)的改造。必須避免出現(xiàn)過(guò)度的引用ODS層、不合理的數(shù)據(jù)復(fù)制以及子集合冗余。

      • ODS層數(shù)據(jù)不能被應(yīng)用層任務(wù)引用,中間層不能有沉淀的ODS層數(shù)據(jù),必須通過(guò)CDM層的視圖訪問(wèn)。CDM層視圖必須使用調(diào)度程序進(jìn)行封裝,保持視圖的可維護(hù)性與可管理性。

      • CDM層任務(wù)的深度不宜過(guò)大(建議不超過(guò)10層)。

      • 原則上一個(gè)計(jì)算刷新任務(wù)只允許一個(gè)輸出表。

      • 如果多個(gè)任務(wù)刷新輸出一個(gè)表(不同任務(wù)插入不同的分區(qū)),DataWorks上需要建立一個(gè)依賴多個(gè)刷新任務(wù)的虛擬任務(wù),通常下游應(yīng)該依賴此虛擬任務(wù)。

      • CDM匯總層應(yīng)優(yōu)先調(diào)用CDM明細(xì)層。在調(diào)用可累加類指標(biāo)計(jì)算時(shí),CDM匯總層盡量?jī)?yōu)先調(diào)用已經(jīng)產(chǎn)出的粗粒度匯總層,以避免大量匯總直接從海量的明細(xì)數(shù)據(jù)層計(jì)算。

      • CDM明細(xì)層累計(jì)快照事實(shí)表優(yōu)先調(diào)用CDM事務(wù)型事實(shí)表,以保持?jǐn)?shù)據(jù)的一致性產(chǎn)出。

      • 避免應(yīng)用層過(guò)度引用和依賴CDM層明細(xì)數(shù)據(jù),需要針對(duì)性地建設(shè)好CDM公共匯總層。

      05
      數(shù)據(jù)類型規(guī)范

      ODS層的數(shù)據(jù)類型應(yīng)基于源系統(tǒng)數(shù)據(jù)類型轉(zhuǎn)換。例如,源數(shù)據(jù)為MySQL時(shí)的轉(zhuǎn)換規(guī)則如下。

      MySQL數(shù)據(jù)類型和Hive數(shù)據(jù)類型:

      MySQL數(shù)據(jù)類型Hive 數(shù)據(jù)類型
      TINYINTTINYINT
      SMALLINT/MEDIUMINTSMALLINT
      INTEGERINT
      BIGINTBIGINT
      FLOATFLOAT
      DOUBLEDOUBLE
      DECIMALDECIMAL
      CHAR/VARCHARVARCHAR
      LONGTEXT/TEXTSTRING
      DATE/TIMESTAMP/TIME/YEARSTRING
      DATETIMEDATETIME

      CDM數(shù)據(jù)公共層如果是引用ODS層數(shù)據(jù),則默認(rèn)使用ODS層字段的數(shù)據(jù)類型。其衍生加工數(shù)據(jù)字段按以下標(biāo)準(zhǔn)執(zhí)行:

      • 金額類及其它小數(shù)點(diǎn)數(shù)據(jù)使用DOUBLE類型。

      • 字符類數(shù)據(jù)使用STRING類型。

      • ID類和整形數(shù)值使用BIGINT類型。

      • 時(shí)間類型數(shù)據(jù)使用STRING類型(如果有特殊的格式要求,可以選擇性使用DATETIME類型)。

      • 狀態(tài)使用STRING類型。

      06
      公共字段定義規(guī)范

      數(shù)據(jù)統(tǒng)計(jì)日期的分區(qū)字段按以下標(biāo)準(zhǔn):

      • 按天分區(qū):ds(YYYYMMDD)。

      • 按小時(shí)分區(qū):hh(00-23)。

      • 按分鐘:mi (00-59)。

      • is_{業(yè)務(wù)}:表示布爾型數(shù)據(jù)字段。以Y和N表示,不允許出現(xiàn)空值域。

      • 原則上不需要冗余分區(qū)字段。

      07
      數(shù)據(jù)冗余

      一個(gè)表做寬表冗余維度屬性時(shí),應(yīng)該遵循以下建議準(zhǔn)則:

      • 冗余字段與表中其它字段高頻率(大于3個(gè)下游應(yīng)用SQL)同時(shí)訪問(wèn)。

      • 冗余字段的引入不應(yīng)造成其本身的刷新完成時(shí)間產(chǎn)生過(guò)多后延。

      • 公共層數(shù)據(jù)不允許字段重復(fù)率大于60%的相同粒度數(shù)據(jù)表冗余,可以選擇在原表基礎(chǔ)上拓寬或者在下游應(yīng)用中通過(guò)JOIN方式實(shí)現(xiàn)。

      08
      數(shù)據(jù)拆分

      數(shù)據(jù)的水平和垂直拆分是按照訪問(wèn)熱度分布和數(shù)據(jù)表非空數(shù)據(jù)值、零數(shù)據(jù)值在行列二維空間上分布情況進(jìn)行劃分的。

      • 在物理上劃分核心模型和擴(kuò)展模型,將其字段進(jìn)行垂直劃分。

      • 將訪問(wèn)相關(guān)度較高的列在一個(gè)表存儲(chǔ),將訪問(wèn)相關(guān)度較低的字段分開(kāi)存儲(chǔ)。

      • 將經(jīng)常用到的Where條件按記錄行進(jìn)行水平切分或者冗余。水平切分可以考慮二級(jí)分區(qū)手段,以避免多余的數(shù)據(jù)復(fù)制與冗余。

      • 將出現(xiàn)大量空值和零值的統(tǒng)計(jì)匯總表,依據(jù)其空值和零值分布狀況可以做適當(dāng)?shù)乃胶痛怪鼻蟹?,以減少存儲(chǔ)和下游的掃描數(shù)據(jù)量。

      09
      空值處理原則
      • 匯總類指標(biāo)的空值:空值處理,填充為零。

      • 維度屬性值為空:在匯總到對(duì)應(yīng)維度上時(shí),對(duì)于無(wú)法對(duì)應(yīng)的統(tǒng)計(jì)事實(shí),記錄行會(huì)填充為-99(未知),對(duì)應(yīng)維表會(huì)出現(xiàn)一條-99(未知)的記錄。

      10
      設(shè)計(jì)準(zhǔn)則

      • 一致性維度規(guī)范

        公共層的維度表中相同維度屬性在不同物理表中的字段名稱、數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容必須保持一致。除了以下情況:

        • 在不同的實(shí)際物理表中,如果由于維度角色的差異,需要使用其他的名稱,其他名稱也必須是規(guī)范的維度屬性的別名。例如,定義一個(gè)標(biāo)準(zhǔn)的會(huì)員ID時(shí),如果在一個(gè)表中,分別要表示買家ID,賣家ID,那么設(shè)計(jì)規(guī)范階段就預(yù)先對(duì)會(huì)員ID分別定義買家ID和賣家ID。
        • 如果由于歷史原因,在暫時(shí)不一致的情況下,必須在規(guī)范的維度定義一個(gè)標(biāo)準(zhǔn)維度屬性,不同的物理名也必須是來(lái)自標(biāo)準(zhǔn)維度屬性的別名。
      • 維度的組合與拆分

        • 對(duì)于維度屬性過(guò)多,涉及源較多的維度表(例如會(huì)員表),可以做適當(dāng)拆分。
        • 數(shù)據(jù)記錄數(shù)較大的維度表(例如商品表),可以適當(dāng)冗余一些子集合,以減少下游掃描數(shù)據(jù)量。
        • 拆分為核心表和擴(kuò)展表。核心表相對(duì)字段較少,刷新產(chǎn)出時(shí)間較早,優(yōu)先使用。擴(kuò)展表字段較多,且可以冗余核心表部分字段,刷新產(chǎn)出時(shí)間較晚,適合數(shù)據(jù)分析人員使用。
        • 根據(jù)維度屬性的業(yè)務(wù)不相關(guān)性,將相關(guān)度不大的維度屬性拆分為多個(gè)物理表存儲(chǔ)。
        • 可以根據(jù)當(dāng)天是否有行為,產(chǎn)出一個(gè)有活躍行為的相關(guān)維表,以減少應(yīng)用的數(shù)據(jù)掃描量。
        • 可根據(jù)所屬業(yè)務(wù)掃描數(shù)據(jù)范圍大小的不同,進(jìn)行適當(dāng)子集合冗余。
        • 將維度所描述業(yè)務(wù)相關(guān)性強(qiáng)的字段在一個(gè)物理維表實(shí)現(xiàn)。相關(guān)性強(qiáng)是指經(jīng)常需要一起查詢或進(jìn)行報(bào)表展現(xiàn)、兩個(gè)維度屬性間是否存在天然的關(guān)系等。例如,商品基本屬性和所屬品牌。
        • 無(wú)相關(guān)性的維度可以適當(dāng)考慮雜項(xiàng)維度(例如交易),可以構(gòu)建一個(gè)交易雜項(xiàng)維度收集交易的特殊標(biāo)記屬性、業(yè)務(wù)分類等信息。也可以將雜項(xiàng)維度退化在事實(shí)表中處理,不過(guò)容易造成事實(shí)表相對(duì)龐大,加工處理較為復(fù)雜。
        • 所謂的行為維度是經(jīng)過(guò)匯總計(jì)算的指標(biāo),在下游的應(yīng)用使用時(shí)將其當(dāng)維度處理。如果有需要,度量指標(biāo)可以作為行為維度冗余到維度表中。
        • 組合原則。
        • 拆分與冗余。

      11
      數(shù)據(jù)存儲(chǔ)及生命周期管理規(guī)范

      CDM公共維度層的表的類型為維度表,存儲(chǔ)方式為按天分區(qū)。

      模型設(shè)計(jì)者根據(jù)自身業(yè)務(wù)需求設(shè)置表的生命周期管理。您可依據(jù)3個(gè)月內(nèi)的最大需要訪問(wèn)的跨度設(shè)置保留策略,具體計(jì)算方式如下:

      • 當(dāng)3個(gè)月內(nèi)的最大訪問(wèn)跨度小于或等于4天時(shí),建議將保留天數(shù)設(shè)為7天。
      • 當(dāng)3個(gè)月內(nèi)的最大訪問(wèn)跨度小于或等于12天時(shí),建議將保留天數(shù)設(shè)為15天。
      • 當(dāng)3個(gè)月內(nèi)的最大訪問(wèn)跨度小于或等于30天時(shí), 建議將保留天數(shù)設(shè)為33天。
      • 當(dāng)3個(gè)月內(nèi)的最大訪問(wèn)跨度小于或等于90天時(shí),建議將保留天數(shù)設(shè)為93天。
      • 當(dāng)3個(gè)月內(nèi)的最大訪問(wèn)跨度小于或等于180天時(shí), 建議將保留天數(shù)設(shè)為183天。
      • 當(dāng)3個(gè)月內(nèi)的最大訪問(wèn)跨度小于或等于365天時(shí),建議將保留天數(shù)設(shè)為368天。

      12
      總結(jié)

      其實(shí)規(guī)范這個(gè)東西很重要,但是有時(shí)候它的設(shè)計(jì)不那么可續(xù),例如我們公司的天分區(qū)字段是ds而不是pt,但是這個(gè)東西只要大家認(rèn)可就行,但是不能因?yàn)椴徽J(rèn)可就不遵守。

      規(guī)范其實(shí)就是約定,所以需要大家共同去維護(hù)和遵守。

      <END>

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多