iT邦幫忙

2023 iThome 鐵人賽

DAY 14
1

elementary 是什麼?

上一篇 “data quality 系列 - 怎麼儲存和查詢 dbt test 結果?” 介紹 dbt test —store_failures 會幫你上傳 dbt test 結果,但少了通知功能, elementary 就補足了最後這段路。elementary 是一款全方位的 dbt package 套件

主要特色

  1. 特別的 dbt test 項目,像是如下圖的數據異常檢測

https://ithelp.ithome.com.tw/upload/images/20230929/20162689x285k1Yab4.png
source: elementary 官方文件

elementary 的特色是透過標準差的原理幫你偵測數據是否異常,可以自行設定時間區間及標準差敏感度。其他還有”更新時間異常”, “group_by dimension異常”, “欄位異常”…等各種偵測,看更多 test

  1. 漂亮的 dashboard 可以視覺化看 dbt 執行時間長短

https://ithelp.ithome.com.tw/upload/images/20230929/20162689eEuOAJcJHm.png

除了 dbt package,你的機器還要安裝 elementary 程式,要產生上面的漂亮介面還要設定 profiles.yml,步驟看這,完成後 command 執行 edr report 就會像 dbt docs 跑出介面

  1. 透過 slack 傳送 dbt test 通知
    elementary 幫我們做到通知 dbt test 結果的最後這段路,當你設定完 slack 步驟,你只要 command 執行 edr monitor 你的 slack 就會收到如下的通知結果囉! 之後只要在你的排程 dbt run & dbt test 執行完再執行 edr monitor 就可以自動化通知囉!

https://ithelp.ithome.com.tw/upload/images/20230929/20162689scP2e0CGGQ.png

  1. dbt artifacts 儲存 dbt run, test 的執行結果到你的 database

如果你們團隊不是用 slack 當通訊軟體怎麼辦? 那就要自己開發通知程式,那通知程式要去哪裡找 dbt test 的結果?

dbt 安裝完 elementary 後,你的 dbt run & dbt test 執行完都會上傳各項結果,如下圖,想了解上傳細節可以看這。我們就是從裡面挖到寶!

https://ithelp.ithome.com.tw/upload/images/20230929/20162689hgxIJcBbIl.png

上傳的表幫我們解決什麼問題?

有張 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 通知


上一篇
data quality 系列 - 怎麼儲存和查詢 dbt test 結果?
下一篇
如何使用 dbt incremental 增量更新你的資料?
系列文
如何借助 dbt 優化當代資料倉儲及資料工程師的水肥之路分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言