连接到 dbt Core
本文介绍了什么是 dbt、如何安装 dbt Core 以及如何连接。 也可使用名为 dbt Cloud 的托管版本 dbt。 有关详细信息,请参阅连接到 dbt Cloud。
什么是 dbt?
dbt(数据生成工具)是一个通过编写 select 语句来转换数据的开发环境。 dbt 可将这些 select 语句转换为表和视图。 dbt 将代码编译为原始 SQL,然后在 Azure Databricks 中指定的数据库上运行该代码。 dbt 支持协作编码模式和最佳做法,包括版本控制、文档和模块化。
dbt 不会提取或加载数据。 dbt 使用“加载后转换”体系结构,仅专注于转换步骤。 dbt 假定数据库中已有数据的副本。
dbt Core 使你能够在本地开发计算机上所选的 IDE 中编写 dbt 代码,然后从命令行运行 dbt。 dbt Core 包括 dbt 命令行接口 (CLI)。 dbt CLI 是一个免费的开放源代码工具。
dbt Core(和 dbt Cloud)可使用托管的 git 存储库。 有关详细信息,请参阅 dbt 网站上的 Creating a dbt project(创建 dbt 项目)和 Using an existing project(使用现有项目)。
安装要求
安装 dbt Core 之前,必须在本地开发计算机上安装以下工具:
还需要使用以下方法之一进行身份验证:
(推荐)dbt Core 在帐户中作为 OAuth 应用程序启用。 此项已默认启用。
个人访问令牌
步骤 1:安装 dbt Databricks 适配器
建议使用 Python 虚拟环境,因为它将包版本和代码依赖项隔离到该特定环境,而不管其他环境中的包版本和代码依赖项如何。 这有助于减少意外的包版本不匹配和代码依赖项冲突。
Databricks 建议使用 dbt-databricks 包的 1.8.0 或更高版本。
重要
如果本地开发计算机使用以下任何操作系统,则必须先完成附加步骤:CentOS、MacOS、Ubuntu、Debian 和 Windows。 请参阅 dbt Labs 网站上的使用 pip 安装 dbt 中的“我的操作系统是否需要满足先决条件”部分。
步骤 2:创建 dbt 项目并指定和测试连接设置
创建一个 dbt 项目(使用 dbt 所需的相关目录和文件的集合)。 然后,配置连接配置文件,其中包含与 Azure Databricks 计算和/或 SQL 仓库的连接设置。 为了增强安全性,默认情况下 dbt 项目和配置文件存储在不同的位置。
在虚拟环境仍处于激活状态的情况下,结合项目名称运行 dbt init 命令。 此示例将创建名为
my_dbt_demo
的项目。dbt init my_dbt_demo
当系统提示选择是使用
databricks
还是spark
数据库时,请输入对应于databricks
的数字。当系统提示输入
host
值时,请执行以下操作:当系统提示输入
http_path
值时,请执行以下操作:若要选择身份验证类型,请输入
use oauth
(推荐)或use access token
对应的数字。如果为身份验证类型选择了
use access token
,请输入 Azure Databricks 个人访问令牌的值。当系统提示输入
desired Unity Catalog option
值时,输入与use Unity Catalog
或not use Unity Catalog
对应的数字。如果选择使用 Unity Catalog,请在出现提示时输入
catalog
所需的值。出现提示时,请输入
schema
和threads
的所需值。dbt 将条目写入
profiles.yml
文件。dbt init
命令的输出中列出了此文件的位置。 以后还可通过运行dbt debug --config-dir
命令列出此位置。 现在可以打开此文件来检查并验证其内容。Databricks 不建议直接在
profiles.yml
中指定机密, 而是将客户端 ID 和客户端密码设置为环境变量。通过运行
dbt debug
命令(在my_dbt_demo
目录上)来确认连接详细信息。如果为身份验证类型选择了
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 教程。