聯機到 dbt Core
注意
本文涵蓋 dbt Core,這是本機開發機器的 dbt 版本,可與 Azure Databricks 工作區內的 Databricks SQL 倉儲和 Azure Databricks 叢集互動。 若要改用裝載的 dbt 版本(稱為 dbt Cloud),或使用 Partner Connect 快速在工作區內建立 SQL 倉儲,然後將它連線到 dbt Cloud,請參閱 連線到 dbt Cloud。
dbt (資料組建工具) 是一個開發環境,可讓資料分析師和資料工程師只要撰寫 select 陳述式即可轉換資料。 dbt 負責將這些 select 陳述式轉換成資料表和檢視。 dbt 會將程式碼編譯成原始 SQL,然後在 Azure Databricks 的指定資料庫中執行該程式碼。 dbt 支援共同作業編碼模式和最佳做法,例如版本控制、檔、模組化等等。
dbt 不會擷取或載入數據。 dbt 僅著重於轉換步驟,使用「載入後轉換」架構。 dbt 假設您在資料庫中已有一份資料複本。
本文著重於使用 dbt Core。 dbt Core 讓您能在本機開發電腦上,使用您選擇的文字編輯器或 IDE 撰寫 dbt 程式碼,然後從命令列執行 dbt。 dbt Core 包含 dbt 命令列介面 (CLI)。 dbt CLI 是免費的使用和 開放原始碼。
您也可以使用名為 dbt Cloud 的託管 dbt 版本。 dbt Cloud 具有對排程作業、CI/CD、服務文件、監視和警示,以及整合式開發環境 (IDE)的周全支援。 如需詳細資訊,請參閱 連線到 dbt Cloud。 dbt Cloud Developer 方案提供一個免費的開發人員席位;您也可以使用Team和 Enterprise 付費方案。 如需詳細資訊,請參閱 dbt 網站上的 dbt 定價 。
因為 dbt Core 和 dbt Cloud 可以使用託管的 Git 存放庫(例如,在 GitHub、GitLab 或 BitBucket 上),所以您可以使用 dbt Core 來建立 dbt 專案,然後將它提供給 dbt Cloud 使用者。 如需詳細資訊,請參閱 在 dbt 網站上建立 dbt 專案 和使用 現有的專案 。
如需 dbt 的一般概觀,請觀看下列 YouTube 影片(26 分鐘)。
需求
安裝 dbt Core 之前,您必須在本機開發電腦上安裝下列專案:
您也需要下列其中一項來驗證:
(建議) 在您的帳戶中以 OAuth 應用程式身分啟用 dbt Core。 此功能預設為啟用。
個人存取令牌
步驟 1:建立並啟用 Python 虛擬環境
在此步驟中,您會使用 pipenv
來建立 Python 虛擬環境。 我們建議使用 Python 虛擬環境,因為它會將套件版本和程式代碼相依性隔離至該特定環境,而不論其他環境中的套件版本和程式代碼相依性為何。 這有助於減少非預期的套件版本不符和程式代碼相依性衝突。
從終端機切換至空白目錄,必要時先建立該目錄。 此程式會在使用者主目錄的根目錄中建立名為
dbt_demo
的空白目錄。Unix、Linux、macOS
mkdir ~/dbt_demo cd ~/dbt_demo
Windows
mkdir %USERPROFILE%\dbt_demo cd %USERPROFILE%\dbt_demo
在此空白目錄中,使用下列內容建立名為
Pipfile
的檔案。 此 Pipfile 會pipenv
指示使用 Python 3.8.6 版。 如果您使用不同的版本,請將 取代3.8.6
為您的版本號碼。[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] dbt-databricks = "*" [requires] python_version = "3.8.6"
注意
上一行
dbt-databricks = "*"
會pipenv
指示使用最新版本的dbt-databricks
套件。 在生產案例中,您應該以您想要使用的特定套件版本取代*
。 Databricks 建議 1.6.0 版或更新版本的 dbt-databricks 套件。 請參閱 Python 套件索引 (PyPI) 網站上的 dbt-databricks 發行歷程記錄 。執行 並指定要使用的 Python 版本,在此目錄中
pipenv
建立 Python 虛擬環境。 此命令指定 Python 3.8.6 版。 如果您使用不同的版本,請將 取代3.8.6
為您的版本號碼:pipenv --python 3.8.6
使用 選項執行
pipenv
install
來安裝 dbt Databricks 配接器。 這會在您的 中Pipfile
安裝套件,其中包含來自 PyPI 的 dbt Databricks 配接器套件dbt-databricks
。 dbt Databricks 配接器套件會自動安裝 dbt Core 和其他相依性。重要
如果您的本機開發計算機使用下列任何操作系統,您必須先完成其他步驟:CentOS、MacOS、Ubuntu、Debian 和 Windows。 請參閱使用 pip 在 dbt Labs 網站上安裝 dbt 的一節。
pipenv install
執行
pipenv shell
來啟用此虛擬環境。 若要確認啟用,終端機會顯示(dbt_demo)
在提示之前。 虛擬環境會開始使用指定的 Python 版本,並隔離這個新環境中的所有套件版本和程式代碼相依性。pipenv shell
注意
若要停用此虛擬環境,請執行
exit
。(dbt_demo)
會在提示之前消失。 如果您執行python --version
或pip list
使用此虛擬環境停用,您可能會看到不同版本的 Python、不同的可用套件或套件版本清單,或兩者。使用 選項執行,確認您的虛擬環境正在執行
python
--version
預期的 Python 版本。python --version
如果 Python 出現非預期的版本,請執行
pipenv shell
,確定您已啟動虛擬環境。使用 選項執行
dbt
,確認您的虛擬環境正在執行預期的 dbt 版本和 dbt Databricks 配接器--version
。dbt --version
如果 dbt 或 dbt Databricks 配接器顯示非預期的版本,請執行
pipenv shell
,確定您已啟動虛擬環境。 如果仍然顯示非預期的版本,請嘗試在啟用虛擬環境之後,再次安裝 dbt 或 dbt Databricks 配接器。
步驟 2:建立 dbt 專案並指定及測試連線設定
在此步驟中,您會建立 dbt 專案,這是使用 dbt 所需的相關目錄和檔案集合。 接著,您可以設定連線 配置檔,其中包含 Azure Databricks 叢集、 SQL 倉儲或兩者的連接設定。 為了增加安全性,dbt 專案和配置文件預設會儲存在不同的位置。
提示
您可以連線到現有的叢集或 SQL 倉儲,也可以建立新的叢集。
- 現有的叢集或 SQL 倉儲對於多個 dbt 專案、在小組中使用 dbt 或開發使用案例而言,可能更有效率。
- 新的叢集或 SQL 倉儲可讓您針對生產使用案例隔離執行單一 dbt 專案,並利用自動終止來節省該 dbt 專案未執行時的成本。
使用 Azure Databricks 建立新的叢集或 SQL 倉儲,然後從 dbt 配置文件參考新建立或現有的叢集或 SQL 倉儲。
在虛擬環境仍啟用之後,請使用專案的名稱執行 dbt init 命令。 此程式會建立名為
my_dbt_demo
的專案。dbt init my_dbt_demo
當系統提示您選擇
databricks
或spark
資料庫時,請輸入對應至databricks
的數位。出現值提示
host
時,請執行下列動作:- 針對叢集,輸入 Azure Databricks 叢集的 [進階選項]、[JDBC/ODBC] 索引標籤中的 [伺服器主機名] 值。
- 針對 SQL 倉儲,從 SQL 倉儲的 [連線詳細數據] 索引標籤輸入 [伺服器主機名] 值。
出現值提示
http_path
時,請執行下列動作:- 針對叢集,從 Azure Databricks 叢集的 [進階選項]、[JDBC/ODBC] 索引標籤輸入 HTTP 路徑值。
- 針對 SQL 倉儲,從 SQL 倉儲的 [連線詳細數據] 索引標籤輸入 HTTP 路徑值。
若要選擇驗證類型,請輸入與
use oauth
(建議) 或use access token
對應的數位。如果您選擇
use access token
驗證類型,請輸入 Azure Databricks 個人存取令牌的值。出現值提示
desired Unity Catalog option
時,請輸入與use Unity Catalog
或not use Unity Catalog
對應的數位。如果您選擇使用 Unity 目錄,請在出現提示時輸入所需的值
catalog
。在出現提示時,輸入和
threads
的所需值schema
。dbt 會將專案寫入檔案
profiles.yml
。 這個檔案的位置會列在命令的dbt init
輸出中。 您也可以稍後執行dbt debug --config-dir
命令來列出此位置。 您現在可以開啟此檔案,以檢查並驗證其內容。如果您選擇
use oauth
驗證類型,請將電腦對電腦 (M2M) 或使用者對電腦 (U2M) 驗證設定檔新增至profiles.yml
。如需範例,請參閱 使用 Microsoft Entra ID 從 dbt Core 設定 Azure Databricks 登入。
Databricks 不建議直接在 中
profiles.yml
指定秘密。 相反地,將用戶端標識碼和客戶端密碼設定為環境變數。藉由周遊至
my_dbt_demo
目錄並執行dbt debug
命令,確認連線詳細數據正確無誤。如果您選擇
use oauth
驗證類型,系統會提示您使用您的識別提供者登入。重要
開始之前,請確認叢集或 SQL 倉儲正在執行中。
您應該會看到如下輸出:
cd my_dbt_demo dbt debug
... Configuration: profiles.yml file [OK found and valid] dbt_project.yml file [OK found and valid] Required dependencies: - git [OK found] Connection: ... Connection test: OK connection ok
下一步
- 在本機建立、執行及測試 dbt Core 模型。 請參閱 dbt Core 教學課程。
- 以 Azure Databricks 作業工作的形式執行 dbt Core 專案。 請參閱 在 Azure Databricks 作業中使用 dbt 轉換。
其他資源
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: