dbt Core
当您使用dbt Core时,您将使用代码编辑器编辑本地文件,并使用dbt命令行(dbt CLI)运行项目。如果您更愿意使用基于web的集成开发环境(IDE)编辑文件和运行项目,则应参考dbt Cloud快速开始.
准备¶
- 要使用dbt命令行,了解终端的一些基础知识是很重要的。特别是您应该理解
cd、ls和pwd命令,以便轻松浏览计算机的目录结构。 - 请使用安装说明安装dbt Core。
- 完成设置(在BigQuery中)和加载数据(BigQuery)。
- 如果你没有GitHub账户,请创建一个GitHub帐户。
创建启动项目¶
在设置好BigQuery后,您就可以在构建自己的模型之前,使用示例模型创建一个启动项目。
创建一个仓库¶
以下步骤使用GitHub作为本指南的Git服务,但您可以使用任何Git服务。你应该已经创建了一个GitHub帐户.
- 创建一个GitHub仓库 并命名为
dbt-tutorial. - 请设置为 Public 这样仓库可以共享给其他人,你也可以设置为private私有.
- 其它配置荐都设为默认值.
- 点击 Create repository.
- 保存“…or create a new repository on the command line”中的命令,以便稍后在Commit your changes命令中使用。
创建一个项目¶
了解如何使使用一系列命令来创建项目。dbt Core包含一个init命令,它用来创建dbt项目。
创建项目请执行以下操作:
-
确保已安装dbt Core,并使用
dbt--version命令来检查版本: -
使用
init命令来初始化jaffle_shop项目: -
进入你的项目目录:
-
使用
pwd命令确定你在正确的目录: -
使用Atom或VSCode这样的代码编辑器打开上一步骤创建的项目目录jaffle_shop. 里面包含了文件夹,
.sql和.yml文件,这些文件都是由init命令自动生成的.

-
在
dbt_project.yml文件里更新下面的值:
连接BigQuery¶
当在本地开发时,dbt通过profile连接您的数据仓库, 这是一个包含了连接数据仓库配置信息的yaml文件.
- 在
~/.dbt/目录里创建一个文件,命名为profiles.yml. - 将BigQuery的key文件放到这个目录里.
-
将下面代码粘贴到profiles.yml. 并更新有备注的值.
jaffle_shop: # 这需要与dbt_project.yml文件中的配置文件相匹配 target: dev outputs: dev: type: bigquery method: service-account keyfile: /Users/BBaggins/.dbt/dbt-tutorial-project-331118.json # 替换成key的完整路径 project: grand-highway-265418 # 替换成你的project id dataset: dbt_bbagins # 请替换成你的dbt name,比如 dbt_bilbo threads: 1 timeout_seconds: 300 location: US priority: interactive -
运行
debug命令,确认你能够连接正常:
第一次dbt run¶
我们的示例项目中有一些示例模型。我们将检查是否可以运行它们,以确认一切正常。
-
执行
run命令构造示例模型:
你应该能看到下面这样的输出内容::
提交你的更改¶
提交你的更改这样仓库可以保持你的最新代码.
-
通过在命令行中运行以下命令,将您创建的GitHub仓库关联到您的dbt项目。请确保你使用正确的git URL,该URL应该是你在第5步中保存的创建仓库.
-
回到你的GitHub仓库,检查新的文件有被添加进去.
构造你的第一个模型¶
现在您已经设置好了您的示例项目,您可以进入有趣的部分-构造模型!您将获取一个示例查询,并将其转换为dbt项目中的模型。
Checkout一个新的git branch¶
为新代码Check out一个新的branch:
-
使用
checkout -b命令创建一个新的branch:
构造你的第一个模型¶
- 使用你喜欢的编辑器打开项目.
- 在
models目录里创建一个新的SQL文件, 命名为models/customers.sql. -
将以下代码粘贴到
models/customers.sql. -
在命令行里执行
dbt run.
当你回到BigQuery控制台,你可以select这个模型
你还可以探索:
-
target目录存放着所有已编译的SQL。run目录显示正在运行的create或replace表语句,这些语句是符合DDL规范的select语句。 -
logs文件记录项目中发生的所有操作。它显示了正在运行的select语句以及dbt运行时发生的python日志记录。
测试和记录你的项目¶
为你的模型创建test¶
为模型输出文档¶
- 运行
dbt docs serve命令,可以在本地启动一个web服务,并打开浏览器来访问生成的文档.
下一步¶
您还可以探索:
- 在
target目录里查看所有已编译的SQL。run目录显示正在运行的create或replace表语句,这些语句是包装在正确DDL中的select语句。 - 在
logs文件中查看dbt Core是怎么记录所有的动作日志,它显示了正在运行的select语句以及dbt运行时发生的python日志记录。
提交更改¶
你需要提交更改,这样你的仓库会保持最新的代码.
- 添加所有更改文件:
git add -A - 提交更改:
git commit -m "Add customers model, tests, docs" - 将更改提交到仓库:
git push - 回到你的仓库, 执行pull request,将代码merge到你的master branch.
计划作业¶
我们建议使用dbt Cloud来安排计划作业。有关使用dbt Core执行计划作业,请参阅dbt airflow博客文章或部署。