上一篇 “data quality 系列 - 怎麼儲存和查詢 dbt test 結果?” 介紹 dbt test —store_failures 會幫你上傳 dbt test 結果,但少了通知功能, elementary 就補足了最後這段路。elementary 是一款全方位的 dbt package 套件
source: elementary 官方文件
elementary 的特色是透過標準差的原理幫你偵測數據是否異常,可以自行設定時間區間及標準差敏感度。其他還有”更新時間異常”, “group_by dimension異常”, “欄位異常”…等各種偵測,看更多 test
除了 dbt package,你的機器還要安裝 elementary 程式,要產生上面的漂亮介面還要設定 profiles.yml,步驟看這,完成後 command 執行 edr report 就會像 dbt docs 跑出介面
如果你們團隊不是用 slack 當通訊軟體怎麼辦? 那就要自己開發通知程式,那通知程式要去哪裡找 dbt test 的結果?
dbt 安裝完 elementary 後,你的 dbt run & dbt test 執行完都會上傳各項結果,如下圖,想了解上傳細節可以看這。我們就是從裡面挖到寶!
上傳的表幫我們解決什麼問題?
有張 elementary_test_results 表,裡面有各種 dbt test 的 metadata, e.g.執行時間, database dataset table column 名稱, test name, severity, 執行結果…等等,migo 就是透過這些資訊做到客製化 dbt test 通知
流程如下
💡 dbt test → result upload bigquery → 通知程式在 elementary_test_results table 篩選 fail 結果及對應的 dataset → email, teams 通知