長文解析:帶你解讀阿里的大數(shù)據(jù)建設(shè)方法論

0 評論 5934 瀏覽 31 收藏 27 分鐘

阿里強大的大數(shù)據(jù)建設(shè)方法論是怎樣的?筆者從數(shù)據(jù)技術(shù)篇、數(shù)據(jù)模型篇以及數(shù)據(jù)管理篇三部分展開介紹,這些將讓你開闊視野,同時也會帶給你啟發(fā)。

最近拜讀了阿里數(shù)據(jù)技術(shù)及產(chǎn)品部的著作《大數(shù)據(jù)之路》,這本書無論是底層的數(shù)據(jù)技術(shù)沉淀、滿足各種數(shù)據(jù)應(yīng)用場景的產(chǎn)品形態(tài),還是在實踐中提煉出來的數(shù)據(jù)管理理念,都有助于開拓視野,亦可結(jié)合實際作為自身數(shù)據(jù)建設(shè)的參考和借鑒。

接下來從數(shù)據(jù)技術(shù)篇、數(shù)據(jù)模型篇、數(shù)據(jù)管理篇三個部分展開介紹。

一、數(shù)據(jù)技術(shù)篇

1.1?日志采集

阿里的日志采集方案包含兩大體系:基于Web端的日志采集方案Aplus.JS和基于APP端的日志采集方案UserTrack。

以下是頁面瀏覽日志的采集流程:

  1. 瀏覽器點擊鏈接;
  2. 瀏覽器解析請求,并按照標準協(xié)議向服務(wù)器發(fā)出HTTP請求(標準的HTTP請求包括請求行、請求報頭、請求正文。請求行會包含請求方法是get還是post、請求資源的URL如taobao.com、HTTP版本協(xié)議號等內(nèi)容,附加信息如cookie會體現(xiàn)在請求報頭);
  3. 服務(wù)器接收并解析請求,將處理結(jié)果以HTTP響應(yīng)形式發(fā)給瀏覽器(標準的HTTP響應(yīng)包括狀態(tài)行、響應(yīng)報頭、響應(yīng)正文。狀態(tài)行是3位數(shù)字組成的狀態(tài)碼,以標識服務(wù)器的處理結(jié)果,如200/404,cookie等附加信息在響應(yīng)報頭。響應(yīng)正文可選但大部分非空,包含HTML文檔、圖片、腳本等);
  4. 瀏覽器接收服務(wù)器響應(yīng),解析并渲染頁面。

這是標準的從請求到最終展示頁面的全流程。瀏覽器解析服務(wù)器的響應(yīng)如下:

  1. 當解析HTML文檔至某個節(jié)點,HTML文檔中植入的JavaScript腳本采集當前頁面參數(shù)、瀏覽行為的上下文信息、運行環(huán)境信息;
  2. 采集完成后發(fā)送給日志服務(wù)器,一般以URL參數(shù)形式體現(xiàn)在請求行;
  3. 日志服務(wù)器接受到日志請求后,立即發(fā)送請求成功的響應(yīng),并把日志內(nèi)容寫入日志緩沖區(qū);
  4. 服務(wù)器端日志處理程序讀取日志并解析,轉(zhuǎn)存為標準的日志文件,并注入實時消息通道供后續(xù)程序消費使用。

除了普通的頁面瀏覽日志采集,還有頁面交互日志的采集,如采集頁面鼠標的移動變化來做精準的用戶行為分析。

流程大致如下:

  1. 采集代碼植入目標頁面,與要監(jiān)測的交互行為做綁定;
  2. 產(chǎn)生指定交互行為時,采集代碼和正常的業(yè)務(wù)互動響應(yīng)代碼一起觸發(fā)執(zhí)行;
  3. 采集完成后發(fā)送給采集服務(wù)器。

1.2?數(shù)據(jù)同步

除了日志采集,數(shù)據(jù)庫同步也是數(shù)據(jù)接入層的重要組成部分。

數(shù)據(jù)同步的方式有以下三種:

  1. 直連同步:通過ODBC或JDBC的方式,直接采取規(guī)范統(tǒng)一的標準接口。優(yōu)點為配置簡單,容易實現(xiàn)。但也有缺點,如會降低目標系統(tǒng)的性能。建議采取主備策略,從備庫中抽取數(shù)據(jù)。
  2. 數(shù)據(jù)文件同步:約定好格式,從源系統(tǒng)生成文本文件,通過FTP服務(wù)器,傳輸給目標系統(tǒng)。非常適用于數(shù)據(jù)源含多個異構(gòu)的數(shù)據(jù)庫系統(tǒng),簡單實用,此外日志類數(shù)據(jù)也通常都是文本文件。但上傳、下載過程可能會出現(xiàn)丟包或錯誤。建議上傳時同時加上校驗文件,標明數(shù)據(jù)量及文件大小等校驗信息。
  3. 數(shù)據(jù)庫日志解析同步:源系統(tǒng)的日志文件,按照順序通過TCP/IP的三次握手機制,傳輸給目標系統(tǒng)。目標系統(tǒng)通過數(shù)據(jù)加載模塊完成數(shù)據(jù)導(dǎo)入??蓪崟r或準時同步數(shù)據(jù),延遲低,此外對業(yè)務(wù)系統(tǒng)影響也較小,適用于業(yè)務(wù)系統(tǒng)到數(shù)據(jù)倉庫的增量同步。但缺點在于投入較大,需要部署中間系統(tǒng)來抽取數(shù)據(jù),此外還有數(shù)據(jù)漂移和遺漏問題。

阿里的數(shù)倉同步方式有以下兩種:

  • 批量數(shù)據(jù)同步。DataX是能滿足多方向高自由度的異構(gòu)數(shù)據(jù)交換服務(wù)產(chǎn)品。DataX可通過插件形式支持不同數(shù)據(jù)源,如MySQL、oracle、HDFS、Hbase等。數(shù)據(jù)在DataX中以中間狀態(tài)存在,轉(zhuǎn)換成對應(yīng)的數(shù)據(jù)格式后,寫入目標系統(tǒng)。
  • 實時數(shù)據(jù)同步。TT(time Tunnel)是基于生產(chǎn)者、消費者、Topic消息標識的消息中間件。TT具有支持主動訂閱、被動訂閱,讀取分離、互不影響,支持訂閱歷史數(shù)據(jù)的特性。數(shù)據(jù)交換中心的專門模塊會從每臺服務(wù)器源源不斷地讀取日志數(shù)據(jù),然后將增量數(shù)據(jù)不斷同步到消息隊列中,并通知訂閱的數(shù)據(jù)倉庫系統(tǒng)獲取。

1.3?離線數(shù)據(jù)平臺

整體架構(gòu)中,數(shù)據(jù)計算層包含數(shù)據(jù)存儲計算平臺(MaxCompute、Stream Compute)、數(shù)據(jù)整合及管理體系(OneData)。

MaxCompute包含四個部分:

  1. 客戶端:Web端,以restful API提供離線數(shù)據(jù)處理服務(wù);SDK;客戶端工具CLT,可以提交命令完成project管理、DDL等操作;IDE,上層可視化ETL及BI工具,可完成數(shù)據(jù)同步、任務(wù)調(diào)度及報表生成等操作。
  2. 接入層:提供HTTP服務(wù)、Cache、負載均衡,實現(xiàn)用戶認證和服務(wù)層面的訪問控制。
  3. 邏輯層:又稱控制層,是核心部分,實現(xiàn)命令的解析與執(zhí)行、數(shù)據(jù)對象的訪問控制與授權(quán)等功能。其中,Worker處理所有的RESTful請求;Scheduler負責Instance任務(wù)的調(diào)度和拆解;Excutor負責Instance的執(zhí)行。
  4. 計算層:就是飛天內(nèi)核Apsara Core,包括分布式文件系統(tǒng)、資源調(diào)度系統(tǒng)、監(jiān)控系統(tǒng)等模塊。

圍繞Max Compute,阿里內(nèi)部又基于不同的場景集成了多個子系統(tǒng),作為統(tǒng)一開發(fā)平臺:

  • 在云端D2,定位一站式數(shù)據(jù)開發(fā)平臺,有任務(wù)開發(fā)、調(diào)試、發(fā)布、生產(chǎn)任務(wù)調(diào)度、大數(shù)據(jù)運維、數(shù)據(jù)權(quán)限管理、數(shù)據(jù)分析工作臺等模塊。
  • SQLSCAN,代碼掃描工具,可通過異常SQL問題沉淀為規(guī)則,嵌入到開發(fā)流程中,用戶提交代碼時可觸發(fā)SQLSCAN檢查。校驗規(guī)則有如下幾類:代碼規(guī)范類校驗類,如表命名規(guī)范、生命周期設(shè)置等;代碼質(zhì)量類校驗類,如分母為0提醒、NULL參與計算提醒;代碼性能類校驗類,如分區(qū)裁剪失效、掃描大表提醒、重復(fù)計算檢測等。
  • DQC,數(shù)據(jù)質(zhì)量中心。可進行數(shù)據(jù)監(jiān)控和數(shù)據(jù)清洗:監(jiān)控數(shù)據(jù)質(zhì)量問題并報警,如主鍵監(jiān)控、表數(shù)據(jù)量監(jiān)控、波動監(jiān)控、非空監(jiān)控、業(yè)務(wù)規(guī)則監(jiān)控等;數(shù)據(jù)同步到ODS層完成后,根據(jù)配置的清洗規(guī)則對數(shù)據(jù)進行清洗。
  • 在彼岸,自動化測試平臺,將通用的、重復(fù)性的測試沉淀到測試平臺,提高測試效率。支持數(shù)據(jù)對比、數(shù)據(jù)分布、數(shù)據(jù)脫敏等功能。數(shù)據(jù)對比:支持不同集群、異構(gòu)數(shù)據(jù)庫的表進行對比,如表級的數(shù)據(jù)量、字段級的枚舉值、空值、去重數(shù)、長度值等對比項;數(shù)據(jù)分布:提取表或字段的特征值,并與預(yù)期值進行對比;數(shù)據(jù)脫敏:將敏感數(shù)據(jù)模糊化,以便業(yè)務(wù)聯(lián)調(diào)、數(shù)據(jù)調(diào)研和數(shù)據(jù)交換。

除了統(tǒng)一開發(fā)平臺,任務(wù)調(diào)度系統(tǒng)負責對任務(wù)統(tǒng)一調(diào)度、管理。它由調(diào)度引擎、執(zhí)行引擎構(gòu)成。

  • 調(diào)度引擎:根據(jù)任務(wù)節(jié)點屬性及依賴關(guān)系進行實例化,生成各類參數(shù)的實值,并生成調(diào)度樹;
  • 執(zhí)行引擎:分配CPU、內(nèi)存、運行節(jié)點等資源,在對應(yīng)環(huán)境中執(zhí)行節(jié)點代碼。

任務(wù)調(diào)度系統(tǒng)具有如下特性:

  • 調(diào)度配置:輸入輸出配置與自動識別相結(jié)合,提交任務(wù)時SQL解析引擎自動識別輸入表、輸出表,自動關(guān)聯(lián)相關(guān)任務(wù),避免配置錯誤;
  • 定時調(diào)度/周期調(diào)度:定時/周期性地執(zhí)行任務(wù);
  • 補數(shù)據(jù)任務(wù):進行數(shù)據(jù)回溯工作;
  • 基線管理:按任務(wù)1-9制定優(yōu)先級,分類管理;
  • 監(jiān)控報警:節(jié)點出錯或超時自動告警,實現(xiàn)日常數(shù)據(jù)運維自動化。

1.4 數(shù)據(jù)服務(wù)

數(shù)據(jù)服務(wù)架構(gòu)演進:

  • 第一階段:DWSOA,即一個需求一個接口。實現(xiàn)簡單,但擴展性差、復(fù)用率低,屬于煙囪式開發(fā)。
  • 第二階段:OPENAPI,即一類需求一個接口。調(diào)研需求,將數(shù)據(jù)按照既定的統(tǒng)計粒度聚合,可收斂接口數(shù)量。
  • 第三階段:SmartDQ,在OPENAPI的基礎(chǔ)上繼續(xù)抽象,用DSL描述取數(shù)需求。即封裝跨數(shù)據(jù)源及分布式查詢功能,采用標準SQL語法方式,簡單查詢服務(wù)直接開放給業(yè)務(wù)方。

SmartDQ的元數(shù)據(jù)模型及處理流程如下:

SmartDQ只是滿足了簡單查詢服務(wù)。在Oneservice的統(tǒng)計數(shù)據(jù)服務(wù)層,還有如下三個模塊:

  • Lego:滿足中度、重度的個性化取數(shù)業(yè)務(wù)場景,采取插件方式,并做成微服務(wù)docker隔離。
  • iPush:實時數(shù)據(jù)服務(wù)。
  • uTiming:運行大數(shù)據(jù)量任務(wù),不直接暴露給用戶,而是通過數(shù)據(jù)超市工具或Lego的個性化取數(shù)API來建立任務(wù)。

二、數(shù)據(jù)模型篇

2.1?大數(shù)據(jù)建模綜述

數(shù)據(jù)模型定義:數(shù)據(jù)模型就是數(shù)據(jù)組織或存儲的方法,強調(diào)從業(yè)務(wù)、數(shù)據(jù)存儲、數(shù)據(jù)使用的角度來合理存儲數(shù)據(jù)。

數(shù)據(jù)模型的意義:

  1. 在性能上,提高查詢性能,減少IO吞吐;
  2. 在成本上,減少冗余,結(jié)果復(fù)用,降低數(shù)據(jù)存儲和計算成本;效率上,可以提高數(shù)據(jù)使用效率;
  3. 質(zhì)量上,改善統(tǒng)計口徑不一致性。

數(shù)據(jù)倉庫建模方法:

  • ER模型。強調(diào)數(shù)據(jù)整合。特點為建模人員要求高,需全面了解業(yè)務(wù)和數(shù)據(jù);實施周期長。如果業(yè)務(wù)處于不成熟或快速變化階段,則不適合用ER模型。
  • 維度模型。從需求出發(fā),重點關(guān)注如何快速響應(yīng)需求,包括星型模型、雪花模型等。阿里目前在維度模型的基礎(chǔ)上進行升級和擴展。
  • DataVault模型。ER模型的衍生,強調(diào)數(shù)據(jù)的歷史性、可追溯性、原子性,而不進行過度地一致性處理和整合。該模型更易設(shè)計和產(chǎn)出(與ER模型相比),ETL加工也可實現(xiàn)配置化。
  • Anchor模型。K-V結(jié)構(gòu)化模型,高度可擴展。

2.2 數(shù)據(jù)整合及管理體系

Onedata是阿里巴巴數(shù)據(jù)公共層建設(shè)的指導(dǎo)方法。它的定位與價值在于:通過數(shù)據(jù)服務(wù)和數(shù)據(jù)產(chǎn)品,完成數(shù)據(jù)公共層建設(shè),建立標準化的、共享的數(shù)據(jù)服務(wù)能力,降低數(shù)據(jù)互通成本,釋放數(shù)據(jù)計算、存儲、人力等資源,消除業(yè)務(wù)與技術(shù)之痛。

指標命名規(guī)范:

派生指標=時間周期+修飾詞+原子指標

如近7天APP新增用戶數(shù)。

指標種類可劃分為:事務(wù)型指標(如新增注冊會員數(shù))、存量型指標(如商品總數(shù))、復(fù)合型指標(如比例、變化量、變化率、排名、均值/分位數(shù)等統(tǒng)計)。

2.3?維度設(shè)計

度量為“事實”,維度為“環(huán)境”。維度用于描述事實發(fā)生的多樣環(huán)境,可以用來約束查詢、分類匯總以及排序。

維度通常用主鍵來標識其唯一性。主鍵有兩種:具有業(yè)務(wù)含義的自然鍵以及自增列或全局唯一標識的代理鍵。

數(shù)倉的重要特點是要反映歷史變化,所以如何處理維度的變化是維度設(shè)計的重點工作。對于緩慢變化維,通常有如下三種處理方法:

  • 重寫緯度值:始終取最新數(shù)據(jù),適用于歷史數(shù)據(jù)毫無保留和分析價值的情況。
  • 插入新的維度行:維度值變化前/后的事實,分別與歷史/當前的緯度值進行關(guān)聯(lián)。
  • 添加維度列:互不影響,而且還便于統(tǒng)一歸為歷史維度值或當前維度值來統(tǒng)計。

阿里采用快照維表的方式記錄維度變化:基于計算周期,每天可保留一份全量快照數(shù)據(jù)。優(yōu)點在于簡單高效,開發(fā)和維護成本低;缺點在于存儲成本高。所以阿里提出了極限存儲的方法。

極限存儲采取歷史拉鏈存儲的方式,即新增時間字段(start_dt和end_dt),與全量存儲相比,優(yōu)點在于不變的數(shù)據(jù)不再重復(fù)存儲。

但歷史拉鏈存儲也有缺點,即下游使用理解成本高;時間分區(qū),還有可能超出數(shù)據(jù)庫的分區(qū)限制。

所以可以針對性地做兩點優(yōu)化:

  1. 透明化(即上層對用戶做視圖操作,映射關(guān)聯(lián),用戶不感知極限存儲表的存在);
  2. 按月做歷史拉鏈表(與按天相比,可大幅降低分區(qū)數(shù)量)。

2.4?事實表設(shè)計

事實用于度量業(yè)務(wù)過程。常用的事實有三種類型:

  • 可加性事實;
  • 半可加性事實(如庫存可以按地區(qū)加和,但不可按時間加和);
  • 不可加性事實(如比率型事實)。

按照生產(chǎn)方法,事實表可分為如下三種:

  • 事務(wù)事實表:也叫原子事實表,描述業(yè)務(wù)過程。
  • 周期快照事實表:按照規(guī)律性、可預(yù)見的時間間隔來記錄事實。
  • 累積快照事實表:保存歷史全量數(shù)據(jù),每行代表一個實體的整個生命周期。

事實表的幾點設(shè)計原則:

  • 盡可能包含所有與業(yè)務(wù)過程相關(guān)的事實,只選擇與業(yè)務(wù)過程相關(guān)的事實;
  • 不可加性事實,拆分為可加的組件(如比率型指標拆分為分子和分母);
  • 選擇維度和事實之前,先聲明粒度,盡可能到原子粒度,以支持無法預(yù)期的差異化需求;
  • 使用退化維度,提高事實表的易用性。

事實表的設(shè)計方法:選擇業(yè)務(wù)過程→聲明粒度→確定維度→確定事實。此方法同樣適用于收集數(shù)據(jù)分析需求。

三、數(shù)據(jù)管理

3.1?元數(shù)據(jù)

元數(shù)據(jù)(Metadata),就是數(shù)據(jù)的數(shù)據(jù),記錄數(shù)據(jù)從產(chǎn)生到消費的全過程:數(shù)倉中模型的定義、各層級之間的映射關(guān)系、監(jiān)控數(shù)據(jù)的數(shù)據(jù)狀態(tài)、ETL任務(wù)運行狀態(tài)等。

根據(jù)用途,元數(shù)據(jù)可以細分為技術(shù)元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù):

  • 技術(shù)元數(shù)據(jù):用于開發(fā)和管理數(shù)倉使用的數(shù)據(jù)。其包括但不限于:存儲元數(shù)據(jù),如表、列、分區(qū)等信息;運行元數(shù)據(jù),即所有作業(yè)運行信息;數(shù)據(jù)同步、計算任務(wù)、任務(wù)調(diào)度等信息;數(shù)據(jù)質(zhì)量和運維相關(guān)元數(shù)據(jù),如運行日志、監(jiān)控告警配置等。
  • 業(yè)務(wù)元數(shù)據(jù):從業(yè)務(wù)角度描述了數(shù)倉中的數(shù)據(jù),便于讓用戶了解和使用數(shù)據(jù)。如指標業(yè)務(wù)含義、指標計算方法等。

統(tǒng)一元數(shù)據(jù)體系建設(shè)目標:打通數(shù)據(jù)接入、加工、消費整個鏈路,提供統(tǒng)一規(guī)范的元數(shù)據(jù)服務(wù)出口,保障元數(shù)據(jù)產(chǎn)出的穩(wěn)定性和質(zhì)量。

統(tǒng)一元數(shù)據(jù)體系建設(shè)目標過程:

  1. 梳理底層數(shù)據(jù),對元數(shù)據(jù)做分類,減少數(shù)據(jù)重復(fù)建設(shè),豐富表和字段使用說明;
  2. 建設(shè)中間層,提供計算、存儲、質(zhì)量、安全等治理領(lǐng)域的數(shù)據(jù)支持;
  3. 對外提供統(tǒng)一的元數(shù)據(jù)服務(wù)出口。

元數(shù)據(jù)應(yīng)用非常廣泛:

  • 對于數(shù)據(jù)使用者,可以快速找到所需數(shù)據(jù);
  • 對于ETL工程師,可指導(dǎo)其進行模型設(shè)計、任務(wù)優(yōu)化、任務(wù)下線等;
  • 對于運維工程師:集群存儲、計算和系統(tǒng)優(yōu)化等運維操作。

阿里的應(yīng)用主要是以下幾方面:

(1)Data Profile

為數(shù)據(jù)建立血緣圖譜,解決研發(fā)初期尋找數(shù)據(jù)、確認口徑算法、數(shù)據(jù)處理的繁雜困境,節(jié)約研發(fā)成本,更加高效的理解利用數(shù)據(jù),通過標簽對數(shù)據(jù)打標、整理、歸檔。

數(shù)據(jù)的標簽主要分為四類:

  • 基礎(chǔ)標簽:數(shù)據(jù)的存儲情況、訪問情況、安全等級;
  • 數(shù)倉標簽:對數(shù)據(jù)增量還是存量、是否可再生,數(shù)據(jù)的全生命周期進行標簽化處理;
  • 業(yè)務(wù)標簽:數(shù)據(jù)所屬的主題域、產(chǎn)品線、業(yè)務(wù)類型等;
  • 潛在標簽:說明潛在應(yīng)用場景,如廣告、金融等。

(2)元數(shù)據(jù)門戶

通過數(shù)據(jù)地圖檢索、理解數(shù)據(jù),通過數(shù)據(jù)管理進行計算、存儲、安全管理。

(3)血緣關(guān)系分析

表級血緣、字段血緣及間接使用的表應(yīng)用血緣,用于影響分析、重要性分析、下線分析、下線分析、鏈路分析、故障排查等。

(4)數(shù)據(jù)建模

可實現(xiàn)經(jīng)驗建模到元數(shù)據(jù)驅(qū)動的升級,提供數(shù)據(jù)化指導(dǎo),提高建模效率。使用的元數(shù)據(jù)有:表的基礎(chǔ)元數(shù)據(jù),如表的下游情況、查詢/關(guān)聯(lián)/聚合次數(shù);表的關(guān)聯(lián)元數(shù)據(jù):關(guān)聯(lián)表、關(guān)聯(lián)類型、關(guān)聯(lián)次數(shù)、關(guān)聯(lián)字段等;字段的基礎(chǔ)元數(shù)據(jù),如字段名稱、注釋、查詢/關(guān)聯(lián)/關(guān)聯(lián)/聚合/過濾次數(shù)。

(5)驅(qū)動ETL開發(fā)

可利用OneClick進行日常的數(shù)據(jù)運維,如任務(wù)查詢定位、加字段、表刪除、表備份、任務(wù)下線、任務(wù)刪除等。如Data Profile判斷數(shù)據(jù)可下線后,OneClick一鍵點擊,觸發(fā)數(shù)據(jù)下線的工作流,直接自動刪除數(shù)據(jù)、刪除元數(shù)據(jù)、下線調(diào)度任務(wù)、下線DQC監(jiān)控。

3.2?計算管理

計算管理的目的在于降低計算資源消耗,提高任務(wù)執(zhí)行性能,計算優(yōu)化可分為任務(wù)優(yōu)化和系統(tǒng)優(yōu)化。

  • 系統(tǒng)優(yōu)化:一般根據(jù)數(shù)據(jù)輸入量來進行靜態(tài)評估。Map任務(wù)用于處理輸入,任務(wù)穩(wěn)定的情況下,可基于考慮:HBO,基于歷史的優(yōu)化器,根據(jù)穩(wěn)定任務(wù)的歷史執(zhí)行,合理分配內(nèi)存、CPU等資源;CBO,基于代價的優(yōu)化器,根據(jù)收集的統(tǒng)計信息,計算每種執(zhí)行方式的計算代價,選擇最優(yōu)執(zhí)行方式。
  • 任務(wù)優(yōu)化:以MR/SQL任務(wù)為例,可采取map傾斜、reduce傾斜等方式。

3.3?存儲和成本管理

從以下幾個方面介紹存儲優(yōu)化:

  • 數(shù)據(jù)壓縮,可通過數(shù)據(jù)壓縮節(jié)省物理空間;
  • 數(shù)據(jù)重分布,避免列熱點來節(jié)省存儲空間,主要通過修改distribute by和sort by字段來進行數(shù)據(jù)重分布;
  • 存儲治理項優(yōu)化:對數(shù)據(jù)無更新無任務(wù)表、無更新有任務(wù)表、空表、近2個月無訪問表、長周期表等形成治理項;
  • 生命周期管理:通過最少的存儲成本,使數(shù)據(jù)價值最大化。制定合理的數(shù)據(jù)周期性刪除策略、永久刪除策略、永久保留策略、歷史拉鏈存儲策略、冷備策略、增量merge全量策略等。

3.4?數(shù)據(jù)質(zhì)量

數(shù)據(jù)質(zhì)量是一切分析有效和準備的基礎(chǔ)和前提,所以數(shù)據(jù)質(zhì)量的保障是數(shù)據(jù)倉庫建設(shè)中的重要環(huán)節(jié)。

數(shù)據(jù)質(zhì)量保障原則主要是四個方面:

  • 完整性:指數(shù)據(jù)的記錄和信息是否完整,是否有記錄的缺失或記錄中某些字段的缺失。
  • 準確性:數(shù)據(jù)中記錄的信息和數(shù)據(jù)是否準確,是否有異?;蝈e誤的信息。
  • 一致性:跨度很大的數(shù)倉體系中,多個業(yè)務(wù)數(shù)倉分支中,對于同一份數(shù)據(jù),是否保持一致。
  • 及時性:保障數(shù)據(jù)及時產(chǎn)出,才能得以應(yīng)用,釋放數(shù)據(jù)價值。

阿里的數(shù)據(jù)質(zhì)量建設(shè)方法包括以下幾個方面:

  • 消費場景知曉。通過數(shù)據(jù)資產(chǎn)定級、基于元數(shù)據(jù)的鏈路分析,解決消費場景知曉的問題。根據(jù)應(yīng)用影響程度,來確定資產(chǎn)等級,如毀滅性質(zhì)/全局性質(zhì)/局部性質(zhì)/一般性質(zhì)/未知;根據(jù)數(shù)據(jù)鏈路血緣,將資產(chǎn)等級上推至數(shù)據(jù)生產(chǎn)加工的各個環(huán)節(jié)。
  • 數(shù)據(jù)生產(chǎn)加工各個環(huán)節(jié)卡點校驗。主要針對數(shù)據(jù)生產(chǎn)加工過程中的卡點監(jiān)控。在線系統(tǒng)卡點校驗,根據(jù)資產(chǎn)等級不同,當對應(yīng)的業(yè)務(wù)系統(tǒng)變更時,決定是否將變更通知下游;對于高資產(chǎn)等級的業(yè)務(wù),當出現(xiàn)新業(yè)務(wù)數(shù)據(jù)時,是否納入統(tǒng)計,需要卡點審批。離線系統(tǒng)卡點校驗,代碼開發(fā)、測試、發(fā)布、歷史數(shù)據(jù)或錯誤數(shù)據(jù)回溯等環(huán)節(jié)的卡點校驗。
  • 風險點監(jiān)控。主要針對數(shù)據(jù)運行過程中可能出現(xiàn)的數(shù)據(jù)質(zhì)量和時效問題進行監(jiān)控。對于在線數(shù)據(jù),使用實時業(yè)務(wù)檢測平臺BCP,針對在線系統(tǒng)日常運行產(chǎn)出的數(shù)據(jù)進行預(yù)置業(yè)務(wù)規(guī)則的校驗;對于離線數(shù)據(jù),使用DQC進行數(shù)據(jù)質(zhì)量監(jiān)控,使用摩薩德進行時效性監(jiān)控。

摩薩德可提供強保障監(jiān)控和自定義告警。強保障監(jiān)控圍繞運維目標即業(yè)務(wù)監(jiān)控而設(shè)計,業(yè)務(wù)預(yù)警時間收到威脅及報警。如生意參謀的每日離線數(shù)據(jù)任務(wù),業(yè)務(wù)產(chǎn)出時間為9點。薩摩德根據(jù)當前業(yè)務(wù)所有任務(wù)最近7天的平均運行時長,將預(yù)警時間可設(shè)置為如果7點數(shù)據(jù)未產(chǎn)出,可提前發(fā)出預(yù)警。此外,當任務(wù)出錯時,可自定義告警配置。

  • 質(zhì)量衡量。事前衡量如DQC覆蓋率,事后衡量進行數(shù)據(jù)事故復(fù)盤及數(shù)據(jù)質(zhì)量事故報告。離線數(shù)據(jù)運行通常是在夜里,因此可用“起夜率”來定性衡量。
  • 質(zhì)量配套工具。除了離線數(shù)據(jù)質(zhì)量監(jiān)控系統(tǒng)DQC、實時業(yè)務(wù)檢測平臺BCP、時效性監(jiān)控報警系統(tǒng)薩摩德,還有ETL研發(fā)過程中的代碼掃描工具SQLSCAN、發(fā)布上線過程中的自動化測試系統(tǒng)在彼岸等等,通過這些工具來將制定的數(shù)據(jù)質(zhì)量規(guī)范落地。

 

作者:Herman Lee,公眾號:產(chǎn)品方法論(ID:HermanLee2018)

本文由 @Herman Lee 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!