iT邦幫忙

2023 iThome 鐵人賽

DAY 5
1

在資料倉庫用dbt實踐DV

看到系列文的標題,我想選擇用dbt來做案例應該是意料中吧!雖然說DV的發明比dbt推出早了約30年,我個人認為在這個時間點上用dbt來架構DV應該是適用大部分實用案例的最佳選項。

如果有對dbt不熟悉的朋友,我建議可以看一下我鐵人賽的隊友們的發文熟悉一下dbt的使用方式。其中,我們團長Stacy寫的dbt入門系列文應該是我看過最適合新手的中文資源,有需要的朋友可以收藏點讚一下~~

為何選擇dbt

推薦大家實用dbt來做DV主要有三大理由:

  1. SQL++
    從本質上來說,dbt 是一個 SQL 字串模板工具(string templating tool),而SQL是資料領域的通用語言,基本上所有的資料工具都會有某種程度的SQL介面。連主推Python Notebook + Spark的Databricks也都在這幾年也加入了SQL兼容性。所以從傳遞性質上來看,用dbt實現DV是兼容性最廣的選項。

  2. DRY設計原則 + dbt 巨集(macro)
    雖然說SQL是一個相對嚴格和冗長的程式語言,通過dbt的巨集功能還是可以相對簡單的堅持DRY原則(Don't Repeat Yourself)。dbt巨集功能基本上就是Jinja模板語言(Template Language)的延伸,再加入了一些針對SQL與資料開發環境的物件介面(Object Interface)。
    之前提到過,相對一般資料倉儲項目,DV的設計雖然複雜但是高重用性與模塊化。通過巨集,你可以把絕大部分的SQL代碼都模板化,而只通過設置與參數來創建資料模型、管道。

  3. dbt packages
    dbt是一個開源專案(Open Source Project),也吸引了很多不同的開發團隊來做貢獻。最近幾年dbt人氣增長後,基本上所有的基本案例都有好幾個可以直接使用的軟體包,就連相對小眾的DV都有好幾個選項!如果第一次使用DV模型的話,直接使用dbt package來做基本設置會把實踐的技術門檻降低很多。


上一篇
用dbt建構Data Vault 2.0:3 DV實踐重點
下一篇
用dbt建構Data Vault 2.0:5 現有的dbt package
系列文
實用Modern Data Stack:資料架構案例分析與分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言