<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          數(shù)據(jù)治理實踐 | 數(shù)據(jù)表合規(guī)治理

          共 8712字,需瀏覽 18分鐘

           ·

          2023-07-06 16:41

          我猜各位數(shù)倉同學可能會經(jīng)常收到下游抱怨,例如:數(shù)據(jù)表難用、想要的指標都不知道存放在哪個數(shù)據(jù)表、數(shù)據(jù)表命名缺少規(guī)范不易讀等,由于設計數(shù)據(jù)表是一個“經(jīng)驗活”(包括業(yè)務了解、設計中的經(jīng)驗沉淀等),因此對于數(shù)倉同學來說有時候想做好一個完美的數(shù)據(jù)表其實頗有挑戰(zhàn),也從另外角度證實線上數(shù)據(jù)表大多數(shù)來說都不夠合規(guī),需要持續(xù)治理。

          本期語興從數(shù)據(jù)表治理角度出發(fā),探討數(shù)據(jù)表合規(guī)治理的最佳實踐及相關挑戰(zhàn)。


          0 1 數(shù)據(jù)表合規(guī)治理的背景

          隨著業(yè)務的快速迭代,同時數(shù)倉也在擴張期高速支持,產生的數(shù)據(jù)量越來越大,劃分的數(shù)據(jù)域也愈來越多,但很多數(shù)倉在初步搭建時都沒有確定好數(shù)據(jù)標準、模型設計規(guī)范、沒有一套完整數(shù)據(jù)的生命周期管理體系、同時組內成員技術/業(yè)務水平質量參差不齊導致,從而導致煙囪數(shù)據(jù)表大量產生,無規(guī)范/無元數(shù)據(jù)維護的數(shù)據(jù)表讓人無法看懂,數(shù)據(jù)表很難發(fā)揮出數(shù)據(jù)的價值(這里特指復用性),為了快速支持業(yè)務導致分層混亂(這里不代表非要做完數(shù)據(jù)表再去支持業(yè)務、而是在支持業(yè)務后能否沉淀資產)。

          從語興自身去說,當前所在的業(yè)務線數(shù)據(jù)表也混亂,有時候想查一個指標甚至發(fā)現(xiàn)線上有5個以上數(shù)據(jù)表出現(xiàn)重復加工(存在之前指標中心未建設導致情況),歷史字段名/表命名起的也很隨意沒有規(guī)范,線上數(shù)據(jù)鏈路較長錯綜復雜依賴導致產出數(shù)據(jù)也晚,同時有23%的ODS穿透率(ODS穿透率:代表ODS跨層引用率,常見為ODS層到ADS層引用,口徑為:被跨層依賴的ODS表數(shù)量/ODS層表數(shù)量)。


          0 2 數(shù)據(jù)表合規(guī)治理前的思考

          由于數(shù)據(jù)表之間相互依賴過多、鏈路過長且繁雜,因此直接上手可能會造成線上事故,需要與團隊多次頭腦風暴后對當前治理優(yōu)先級進行排期,語興這邊為大家提供一個思路,可以先從簡單的數(shù)據(jù)標準重制定->無用/臨時數(shù)據(jù)表下線->應用指標公共下沉復用->解決ODS穿透問題->煙囪數(shù)據(jù)表重構及下線->元數(shù)據(jù)非合規(guī)數(shù)據(jù)表(包括元數(shù)據(jù)字段信息)修改。

          同時在初期我們需要完成各類元數(shù)據(jù)接入,搭建治理看板,開發(fā)團隊治理產出統(tǒng)計數(shù)據(jù)表,保障治理進度以及人力資源協(xié)調。

          這里我們可以借助網(wǎng)易的easy data和數(shù)據(jù)治理360平臺完成模型質量的評估幫助大家更快找到治理方向。

          1e552ccce1e4950ae39ecc6f3565ab1a.webp

          (網(wǎng)易easy data-模型設計中心Demo圖)

          7363df7abe76deb25db599b0aa76b176.webp

          (網(wǎng)易easy data-數(shù)據(jù)治理360 Demo圖)

          0 3 數(shù)據(jù)表合規(guī)治理的過程

          1.數(shù)據(jù)標準重制定

          對當前數(shù)據(jù)域/主題域按照業(yè)務流程及應用重新劃分,重新制定元數(shù)據(jù)規(guī)范(表名、字段命名、字段數(shù)據(jù)格式等)用于新數(shù)據(jù)表建設中規(guī)范內容。

          (1)數(shù)據(jù)域與主題域區(qū)別及如何劃分

          主題域:從業(yè)務視角自上而下分析,從整體業(yè)務環(huán)節(jié)中升華出來大的專項分析模塊,結合對接的業(yè)務范圍和行業(yè)形態(tài)從更高的視角去洞察整個業(yè)務流程;

          數(shù)據(jù)域:從數(shù)據(jù)視角自下而上搭建,對每個業(yè)務環(huán)節(jié)進行切割劃分,形成不同環(huán)節(jié)的數(shù)據(jù)集,組裝為完整的業(yè)務流程;

          可能大家看到這還是有點懵,那在這里舉個例子:假如現(xiàn)在的業(yè)務是金融產品(例如貸款、賒購等),按照金融產品業(yè)務生命周期拆解,可以分為貸前(準入、授信等)、貸中(支用、還款等)、貸后(催回等),那這里貸前中的環(huán)節(jié)內容就是數(shù)據(jù)域,假如我們想從更高角度(風控、營銷活動分析)去看整個業(yè)務流程并從中得到一些專題分析內容,那這里升華的部分就叫主題域。

          (2)元數(shù)據(jù)規(guī)范(具體內容在附錄)

          除了已知的詞根/命名等內容,還需要保證元數(shù)據(jù)的清洗包括數(shù)據(jù)表使用說明、存儲標準、數(shù)據(jù)表負責人注明、字段類型統(tǒng)一等。

          2.無用/臨時數(shù)據(jù)表下線

          根據(jù)數(shù)據(jù)血緣及任務依賴(這里建議在數(shù)倉側開發(fā)血緣數(shù)據(jù)表,可不到字段血緣,如有條件可將范圍擴大到可視化側)對線上長期無用表、下游無血緣且空跑數(shù)據(jù)表、臨時表進行掃描及下線,降低無用存儲及計算損耗。

          元數(shù)據(jù)信息采集:可使用云端數(shù)據(jù)平臺自帶功能如下圖,如使用開源組件同學可使用三方工具Apache Ambari、Apache Atlas、等對Hive元數(shù)據(jù)信息收集,并后續(xù)存儲在數(shù)據(jù)表中存放,并可以根據(jù)數(shù)據(jù)表進行重要等級打標,給予表檢索及使用熱度,這里建議使用DataHub開源數(shù)據(jù)中心,DataHub提供了可擴展的元數(shù)據(jù)管理平臺,可以滿足數(shù)據(jù)發(fā)現(xiàn),數(shù)據(jù)可觀察與治理。這也極大的解決了數(shù)據(jù)復雜性的問題,地址:datahubproject.io。

          bed3a6d373947ecd92b28ba3c76fe5fd.webp

          (網(wǎng)易easy data-數(shù)據(jù)治理360 推薦表下線治理Demo圖)

          3. 應用指標公共下沉復用

          由于在數(shù)倉擴張期切沒有指標中心前提下大量開發(fā)應用側數(shù)據(jù)表導致指標復用性較差問題,首先我們查看應用層指標是否口徑一致,如不一致需要與下游再次溝通后修改,其次我們對應用層模型指標按照數(shù)據(jù)域、周期(1D(1天)、30D(最近30天)、60D(最近60天)、90D(最近90天)、MTD(月初至今)、TD(歷史至今))拆解并將不同顆粒度下的指標放入對應數(shù)據(jù)表驗證后復用,并切換線上數(shù)據(jù)表直接引用指標。

          4. 解決ODS穿透問題

          依靠我們在下線無用/臨時數(shù)據(jù)表時的數(shù)據(jù)血緣找到跨層引用數(shù)據(jù)表,并對這些數(shù)據(jù)表按照模型5要素(數(shù)據(jù)域、顆粒度、度量、維度、事實表類型)構建CDM(DWD與DWS)層,并驗證ADS/DWS標簽/指標引用新DWD數(shù)據(jù)表的質量情況,最后完成DWD/DWS數(shù)據(jù)表上線,及DWS/ADS的引用數(shù)據(jù)表切換。

          2b7210611879d77fad0ca3aed6750b92.webp

          (網(wǎng)易easy data-數(shù)據(jù)資產地圖數(shù)據(jù)血緣Demo圖)

          5.煙囪數(shù)據(jù)表重構/下線

          對于線上歷史多次重復開發(fā)煙囪數(shù)據(jù)表進行重構/下線,可復用公共指標以及整合其他相似場景下數(shù)據(jù)表字段內容到一個或多個數(shù)據(jù)表中,提升數(shù)據(jù)表易用性,使數(shù)據(jù)表清晰明了,由于對煙囪數(shù)據(jù)表重構/下線,從而也避免由內容不足而導致的相互依賴和任務鏈路延長問題發(fā)生。

          6. 元數(shù)據(jù)非合規(guī)數(shù)據(jù)表重構/修改

          對原來非合規(guī)數(shù)據(jù)表元數(shù)據(jù)進行內容按照新定的標準重構,切記在建設同時需要修改下游表名依賴及代碼中字段引用信息,避免線上故障發(fā)生,可以先重構ODS、DWD、DWS數(shù)據(jù)表的元數(shù)據(jù)信息,保障數(shù)據(jù)準確性后上線,后續(xù)可按照主題域分工,讓組內每位同學加入進來切換ADS數(shù)據(jù)表,但在切換前需要與下游知會溝通,并拉會對切換工作計劃排期,溝通后并與下游一起調整。

          7. 數(shù)據(jù)表合規(guī)后續(xù)維護

          可以從數(shù)據(jù)表價值(被引用次數(shù)、查詢次數(shù)、被收藏次數(shù)等)、數(shù)據(jù)表元數(shù)據(jù)規(guī)范(按照新數(shù)據(jù)標準去檢測打分)設定數(shù)據(jù)表合規(guī)評判分,并設立紅黑榜,以及對應獎懲措施,后續(xù)可通過Python等開發(fā)不合規(guī)數(shù)據(jù)表信息提示(可日推、周推提醒),可通過郵件或者群信息方式,指定負責人定時治理不規(guī)范的數(shù)據(jù)表,維護好數(shù)據(jù)表的質量,同時還需要建設數(shù)據(jù)表設計中心,強制數(shù)據(jù)表上線前審核,以及按照強管控方式強行限定數(shù)據(jù)表名、詞根內容、字段名等達到易讀有保障效果。

          9d0e06e2f295a823da04ba88690ce159.webp

          (網(wǎng)易easy-data模型設計中心主題域建設Demo圖)

          9a601fd744d6f1ab07109090f1240dee.webp

          (網(wǎng)易easy-data模型設計中心數(shù)據(jù)表內容建設Demo圖)

          0 4 數(shù)據(jù)表合規(guī)治理的結果

          (1)下線各層無用/臨時數(shù)據(jù)表總計80+,釋放存儲資源3.7T;

          (2)完成30+個應用層煙囪數(shù)據(jù)表整合,及370+公共指標下沉;

          (3)ODS穿透率由原來23%下降至4%;

          (4)推出治理紅黑榜的,維持整體的資產健康分在80分以上;

          (5)數(shù)據(jù)產出平均時間由原來每日最晚8:30產出降低至7:10(任務鏈路縮短);

          (6)與團隊配合完成網(wǎng)易某業(yè)務線數(shù)倉數(shù)據(jù)表命名、字段命名、字段類型、數(shù)據(jù)表標注規(guī)范、數(shù)據(jù)表分區(qū)生命周期等6個方向規(guī)范制定;

          0 5 數(shù)據(jù)表合規(guī)治理中遇到的難點

          由于在治理中后期涉及煙囪數(shù)據(jù)表重構問題,與下游多次對接無果(包含數(shù)據(jù)表遷移時需要下游配合報表改動,但只會徒增下游工作量),導致治理難推動,并且在想出合理方案時,也會因為下游各類情況導致治理進展不斷Delay,后續(xù)經(jīng)過多次磨合才實現(xiàn)數(shù)據(jù)表的更換,相互之間協(xié)調都較困難。

          0 6 數(shù)據(jù)表合規(guī)治理思考

          對于數(shù)據(jù)表合規(guī)治理是持續(xù)性的工作,數(shù)倉側無法保障每個數(shù)據(jù)表就一定是合規(guī)的、易用的,要把數(shù)據(jù)表治理常態(tài)化,強制規(guī)范化從而減少問題發(fā)生。

          對于本次遇到治理困難為部門之間協(xié)調配合問題,其實在事后自己也有一個復盤思考,我覺得治理工作配合要從3個點出發(fā):

          (1)讓下游配合其實最重要的是調動他們積極性,因為數(shù)據(jù)表治理對于下游來說可有可無 ,沒有你數(shù)據(jù)表治理線上任務依舊在跑著,數(shù)倉只是修改了數(shù)據(jù)表內容,保障了易用性,可能對于下游來說毫無感知,所以可以從下游使用數(shù)據(jù)中的痛點去溝通,在優(yōu)先業(yè)務支持的同時給予時間設計數(shù)據(jù)表內容,共同維護好數(shù)據(jù)標準。

          (2)除了這些還可以加一些獎懲措施活動,讓下游覺得配合是有價值的,例如通過紅黑榜定期也給他們發(fā)送郵件或者信息,并開展簡單的培訓,讓下游具備治理的意識,同時在他們自助治理后提供激勵。

          (3)如果治理在周邊部門起到了效果,可以做更大的推進作用,比如我們在和下游一起做治理并取到了效果,可以發(fā)治送理效果月報/周報 發(fā)送全部門,讓其他人也有感知,并定期分享自己治理心得與其他部門數(shù)據(jù)部溝通,提升數(shù)據(jù)部在公司的影響力。

          0 7 數(shù)據(jù)標準(附錄)

          1.數(shù)據(jù)表命名規(guī)范

          • ODS層(接入層):

            ods__{業(yè)務數(shù)據(jù)庫名}_{業(yè)務數(shù)據(jù)表名}(可以在結尾補充增量或全量情況,或者在元數(shù)據(jù)側補充)


          • DWD層(明細層):

            dwd_{一級數(shù)據(jù)域}_{二級數(shù)據(jù)域}_{三級數(shù)據(jù)域}_{業(yè)務過程(不清楚或沒有寫detail)}_存儲策略(df/di,df為全量數(shù)據(jù),di為增量數(shù)據(jù)))


          • DWS層(匯總層):

            dws_{一級數(shù)據(jù)域}_{二級數(shù)據(jù)域}_{三級數(shù)據(jù)域}_{顆粒度}(例如員工/部門)_{業(yè)務過程}_{周期粒度}(例如近30天寫30d、90天寫3m)


          • ADS層(應用層):

            ads_{應用主題/應用場景}_{顆粒度}(例如買家/賣家)_{業(yè)務過程}_{調度周期}(例如1天調度一次寫1d)


          • DIM表(維度表):

            dim_{維度定義}_{更新周期(可不添加)}(例如日期寫date)


          • TMP表(臨時表):

            tmp_{表名}_{臨時表編號}


          • VIEW(視圖):

            {表名}_view


          • 備份表:

            {表名}_bak


          2.數(shù)據(jù)表命名詞根

          (1)存儲策略

          • df:日全量

          • di:日增量

          • hf:小時全量

          • hi:小時增量

          • mf:月全量

          • mi:月增量

          • wf:周全量

          • wi:周增量


          (2)顆粒度

          • buyer:買家

          • seller:賣家

          • user:用戶

          • emp:員工

          • order:訂單


          (3)統(tǒng)計周期

          • 1d:近一天指標統(tǒng)計

          • 1m:近一月指標統(tǒng)計

          • 1y:近一年指標統(tǒng)計

          • 3m:近三個月指標統(tǒng)計

          • 6m:近六個月指標統(tǒng)計

          • nd:近n天指標統(tǒng)計(無法確定具體天可用nd替代)

          • td:歷史累計


          (4)調度周期

          • 1d:天調度

          • 1m:月調度

          • 1y:小時調度


          3.字段命名規(guī)范

          • 是否某某類型用戶,字段命名規(guī)范:is_{內容}

          • 枚舉值類型字段命名規(guī)范:xxx_type

          • 時間戳類型字段命名規(guī)范:xxx_date,xxx_time

          • 周期指標命名:{內容}_{時間描述}(如最近一次lst1,最近兩次lst2,歷史his,最近第二次last2nd_date)

          • 百分比命名:{內容}_rate

          • 數(shù)值類型(整型)命名:{內容}_cnt_{周期}(周期看情況添加)

          • 數(shù)值類型(小數(shù))金額命名:{內容}_amt_{周期}(周期看情況添加)


          4.字段類型規(guī)范

          • 文本:String

          • 日期:String

          • 整數(shù):Bigint

          • 小數(shù):高精度用Decimal、正常使用Double

          • 枚舉值:單枚舉-'Y'/'N'用String、多枚舉用String

          • 各類:IDString


          5.數(shù)據(jù)表中其他元數(shù)據(jù)規(guī)范

          • 數(shù)據(jù)表負責人(Owner);

          • 數(shù)據(jù)表中文名及使用說明;

          • 每個開發(fā)字段中文名(中文名需要包含該字段內容,例如是否為某某類型用戶,需要寫出包含內容(Y/N));

          • 數(shù)據(jù)表的顆粒度;

          • 數(shù)據(jù)表的主鍵或聯(lián)合主鍵;


          6.數(shù)據(jù)表中存儲周期規(guī)范

          • ODS層1年

          • DWD層3-5年

          • DWS層10年(部分可永久)

          • ADS層10年(部分可永久)

          • DIM層3-5年(部分可永久)


          數(shù)據(jù)表分區(qū)建議最多2級分區(qū),超過2級分區(qū)會造成數(shù)據(jù)長周期存儲問題,1級分區(qū)為業(yè)務日期,2級根據(jù)業(yè)務場景設置。

          瀏覽 59
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷五月天综合导航 | 操出白浆视频 | 人人摸人人搞 | 97人妻一区二区三区 | 在线观看免费视频黄 |