天天看點

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

實驗涉及大資料産品

實驗環境準備

必備條件:

  • 開通大資料計算服務MaxCompute
  • 建立大資料開發套件項目空間

進入大資料開發套件,建立DataWorks項目空間

確定阿裡雲賬号處于登入狀态。
  • step1: 點選進入 大資料(數加)管理控制台>大資料開發套件tab頁面下。
  • step2:點選右上角建立項目或者直接在項目清單-->建立項目,跳出建立項目對話框。
    阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
選擇相應的伺服器時如果沒有購買是選擇不了會提示您去開通購買。資料開發、運維中心、資料管理預設是被選擇中。
  • step3:勾選相應的服務單擊 确認,跳轉到下面的界面,填寫相應的資訊單擊确認,建立項目完成。
    阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

項目名需要字母或下劃線開頭,隻能包含字母下劃線和數字。

【注意】項目名稱全局唯一,建議大家采用自己容易區分的名稱來作為本次workshop的項目空間名稱。

  • step4:單擊進入項目跳轉到下面的界面:
    阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

資料品質

資料品質(DQC),是支援多種異構資料源的品質校驗、通知、管理服務的一站式平台。資料品質以資料集(DataSet)為監控對象,目前支援MaxCompute資料表和DataHub實時資料流的監控,當離線MaxCompute資料發生變化時,資料品質會對資料進行校驗,并阻塞生産鍊路,以避免問題資料污染擴散。同時,資料品質提供了曆史校驗結果的管理,以便您對資料品質分析和定級。在流式資料場景下,資料品質能夠基于Datahub資料通道進行斷流監控,第一時間告警給訂閱使用者,并且支援橙色、紅色告警等級,以及告警頻次設定,以最大限度的減少備援報警。

資料品質的使用流程是,針對已有的表進行監控規則配置,配置完規則後可以進行試跑,驗證此規則是否試用。當試跑成功後,可将此規則和排程任務進行關聯。關聯成功後,每次排程任務代碼運作完畢,都會觸發資料品質的校驗規則,以提升任務準确性。在關聯排程後,可根據業務情況,對重要的表進行訂閱。訂閱成功後,此表的資料品質一旦出問題,都會有郵件或者報警進行通知。

注:資料品質會産生額外的計算費用,在使用時請注意。

新增表規則配置

若已完成《日志資料上傳》、《使用者畫像》實驗,我們會得到表:ods_raw_log_d、ods_user_info_d、ods_log_info_d、dw_user_info_all_d、rpt_user_info_d。

資料品質最重要的就是表規則的配置,那麼如何配置表規則才是合理的呢?我們來看一下上面這幾張表應該如何配置表規則。

ods_raw_log_d

中可以看到該項目下的所有表資訊,現在我們來給 ods_raw_log_d 表進行資料品質的監控規則配置。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

選擇ods_raw_log_d表,點選配置監控規則,将會進入如下頁面。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

我們可以回顧一下 ods_raw_log_d 這張表的資料來源,ods_raw_log_d 這張表的資料是從ftp中擷取到的日志資料,其分區是以${bdp.system.bizdate}格式寫入進表中("dbp.system.bizdate" 是擷取到前一天的日期)。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

對于這種每日的日志資料,我們可以配置一下表的分區表達式,分區表達式有如下幾種,我們選擇 dt=$[yyyymmdd-1] 這種表達式,有關排程表達式的詳細解讀,請參考文檔

排程參數

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
注:若表中無分區列,可以配置無分區,請根據真實的分區值,來配置對應的分區表達式。

确認以後,可以見到如下界面,我們可以選擇建立規則。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

選擇建立規則後,出現如下界面:

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

點選添加監控規則,會出現一個提示窗,來配置規則。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

這張表裡的資料來源于FTP上傳的日志檔案,作為源頭表,我們需要盡早判斷此表分區中是否有資料。如果這張表中沒有資料,那麼就需要阻止後面的任務運作,因為來源表沒有資料,後面的任務運作是沒有意義的。

注:隻有強規則下紅色報警會導緻任務阻塞,阻塞會将任務的執行個體狀态置為失敗。

我們在配置規則的時候,選擇模闆類型為表行數,将規則的強度設定為強,比較方式設定為期望值不等于0,設定完畢後點選批量儲存按鈕即可。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
此配置主要是為了避免分區中沒有資料,導緻下遊任務的資料來源為空的問題。

規則試跑

右上角有一個節點試跑的按鈕,可以在規則配置完畢後,進行規則校驗,試跑按鈕可立即觸發資料品質的校驗規則。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

點選試跑按鈕後,會提示一個彈窗,确認試跑日期。點選試跑後,下方會有一個提示資訊,點選提示資訊,可跳轉至試跑結果中。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

可根據試跑結果,來确認此次任務産出的資料是否符合預期。建議每個表規則配置完畢後,都進行一次試跑操作,以驗證表規則的适用性。

在規則配置完畢,且試跑又都成功的情況下。我們需要将表和其産出任務進行關聯,這樣每次表的産出任務運作完畢後,都會觸發資料品質規則的校驗,以保證資料的準确性。

關聯排程

資料品質支援任務關聯排程,在表規則和排程任務綁定後,每次任務運作完畢,都會觸發資料品質的檢查。可以在表規則配置界面,點選關聯排程,配置規則與任務的綁定關系。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

點選關聯排程,可以與已送出到排程的節點任務進行綁定,我們會根據血緣關系給出推薦綁定的任務,也支援自定義綁定。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

選中搜尋結果後,點選添加,添加完畢後即可完成與排程節點任務的綁定。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

關聯排程後,表名後面的小圖示會變成藍色。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

配置任務訂閱

關聯排程後,每次排程任務運作完畢,都會觸發資料品質的校驗,但是我們如何去跟進校驗結果呢?資料品質支援設定規則訂閱,可以針對重要的表及其規則設定訂閱,設定訂閱後會根據資料品質的校驗結果,進行告警。若資料品質校驗結果異常,則會根據配置的告警政策進行通知。

點選訂閱管理,設定接收人以及訂閱方式,目前支援郵件通知及郵件和短信通知。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

訂閱管理設定完畢後,可以在我的訂閱中進行檢視及修改。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

建議将全部規則訂閱,避免校驗結果無法及時通知。

ods_user_info_d

ods_user_info_d 表的資料來至于rds的資料庫,為使用者資訊表。我們在配置規則的時候,需要配置表的行數校驗;還需要配置主鍵唯一的校驗,避免資料重複。

同樣,我們還是需要先配置一個分區字段的監控規則,監控的時間表達式為:dt=$[yyyymmdd-1],配置成功後,在已添加的分區表達式中可以看到成功的分區配置記錄。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

分區表達式配置完畢後,點選右側的建立規則,進行資料品質的校驗規則配置。

添加表行數的監控規則,規則強度設定為強,比較方式設定為期望值不等于0。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

添加列級規則,設定主鍵列(uid)為監控列,模闆類型為:字段重複值個數校驗,規則設定為弱,比較方式設定為字段重複值個數小于1,設定完畢後,點選批量儲存按鈕即可。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
此配置主要是為了避免資料重複,導緻下遊資料被污染的情況。

請不要忘記試跑->關聯排程->規則訂閱。

ods_log_info_d

ods_log_info_d 這張表的資料,主要是解析ods_raw_log_d 表裡的資料,鑒于日志中的資料無法配置過多監控,隻需配置表資料不為空的校驗規則即可。

先配置表的分區表達式為:dt=$[yyyymmdd-1]

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

配置表資料不為空的校驗規則,規則強度設定為強,比較方式設定為期望值不等于0,設定完畢後,點選批量儲存按鈕即可。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

dw_user_info_all_d

dw_user_info_all_d 這個表是針對ods_user_info_d 和 ods_log_info_d 表的資料彙總,由于此流程較為簡單,ods層又都已配置了表行數不為空的規則,是以此表不進行資料品質監控規則的配置,以節省計算資源。

rpt_user_info_d

rpt_user_info_d 表是資料彙總後的結果表,根據此表的資料,我們可以進行表行數波動監測,針對主鍵進行唯一值校驗等。

先配置表的分區表達式:dt=$[yyyymmdd-1]

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

然後配置監控規則,單擊右側建立規則,點選添加監控規則。

添加列級規則,設定主鍵列(uid)為監控列,模闆類型為:字段重複值個數校驗,規則設定為弱,比較方式設定為字段重複值個數小于1。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇

繼續添加監控規則,添加表級規則,模闆類型為:SQL任務表行數,7天波動檢測;規則強度設定為弱,橙色門檻值設定成0%,紅色門檻值設定成50%(此處門檻值範圍根據業務邏輯進行設定),配置完畢後,點選批量儲存即可。

阿裡雲MVP Meetup 《雲資料·大計算:海量日志資料分析與應用》之《資料品質監控》篇
注:此處我們監控表行數主要是為了檢視每日uv的波動,好及時了解應用動态。

大家可能注意到了,我們在設定表規則強度的時候,資料倉庫中越底層的表,設定強規則的次數越多。那是因為ods層的資料作為數倉中的原始資料,一定要保證其資料的準确性,避免因ods層的資料品質太差而影響其他層的資料,及時止損。

資料品質還提供了一個任務查詢的界面,在此界面上,我們可以檢視已配置規則的校驗結果。

繼續閱讀