Skip to content

dbt Core

当您使用dbt Core时,您将使用代码编辑器编辑本地文件,并使用dbt命令行(dbt CLI)运行项目。如果您更愿意使用基于web的集成开发环境(IDE)编辑文件和运行项目,则应参考dbt Cloud快速开始.

准备

创建启动项目

在设置好BigQuery后,您就可以在构建自己的模型之前,使用示例模型创建一个启动项目。

创建一个仓库

以下步骤使用GitHub作为本指南的Git服务,但您可以使用任何Git服务。你应该已经创建了一个GitHub帐户.

  1. 创建一个GitHub仓库 并命名为 dbt-tutorial.
  2. 请设置为 Public 这样仓库可以共享给其他人,你也可以设置为private私有.
  3. 其它配置荐都设为默认值.
  4. 点击 Create repository.
  5. 保存“…or create a new repository on the command line”中的命令,以便稍后在Commit your changes命令中使用。

创建一个项目

了解如何使使用一系列命令来创建项目。dbt Core包含一个init命令,它用来创建dbt项目。

创建项目请执行以下操作:

  1. 确保已安装dbt Core,并使用dbt--version命令来检查版本:

    dbt --version
    
  2. 使用init命令来初始化jaffle_shop项目:

    dbt init jaffle_shop
    
  3. 进入你的项目目录:

    cd jaffle_shop
    
  4. 使用pwd命令确定你在正确的目录:

    $ pwd
    > Users/BBaggins/dbt-tutorial/jaffle_shop
    
  5. 使用Atom或VSCode这样的代码编辑器打开上一步骤创建的项目目录jaffle_shop. 里面包含了文件夹,.sql.yml文件,这些文件都是由init 命令自动生成的.

Image title

  1. dbt_project.yml文件里更新下面的值:

    name: jaffle_shop # 从默认值里更改, `my_new_project`
    
    ...
    
    profile: jaffle_shop # 从默认值里更改, `default`
    
    ...
    
    models:
      jaffle_shop: # Change from `my_new_project` to match the previous value for `name:`
        ...
    

连接BigQuery

当在本地开发时,dbt通过profile连接您的数据仓库, 这是一个包含了连接数据仓库配置信息的yaml文件.

  1. ~/.dbt/目录里创建一个文件,命名为profiles.yml.
  2. 将BigQuery的key文件放到这个目录里.
  3. 将下面代码粘贴到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
    

  4. 运行debug命令,确认你能够连接正常:

    $ dbt debug
    > Connection test: OK connection ok
    

第一次dbt run

我们的示例项目中有一些示例模型。我们将检查是否可以运行它们,以确认一切正常。

  1. 执行run命令构造示例模型:

    dbt run
    

你应该能看到下面这样的输出内容::

提交你的更改

提交你的更改这样仓库可以保持你的最新代码.

  1. 通过在命令行中运行以下命令,将您创建的GitHub仓库关联到您的dbt项目。请确保你使用正确的git URL,该URL应该是你在第5步中保存的创建仓库.

    git init
    git branch -M main
    git add .
    git commit -m "Create a dbt project"
    git remote add origin https://github.com/USERNAME/dbt-tutorial.git
    git push -u origin main
    
  2. 回到你的GitHub仓库,检查新的文件有被添加进去.

构造你的第一个模型

现在您已经设置好了您的示例项目,您可以进入有趣的部分-构造模型!您将获取一个示例查询,并将其转换为dbt项目中的模型。

Checkout一个新的git branch

为新代码Check out一个新的branch:

  1. 使用checkout -b命令创建一个新的branch:

    $ git checkout -b add-customers-model
    >  Switched to a new branch `add-customer-model`
    

构造你的第一个模型

  1. 使用你喜欢的编辑器打开项目.
  2. models目录里创建一个新的SQL文件, 命名为models/customers.sql.
  3. 将以下代码粘贴到models/customers.sql.

  4. 在命令行里执行dbt run.

当你回到BigQuery控制台,你可以select这个模型

你还可以探索:

  • target目录存放着所有已编译的SQL。run目录显示正在运行的create或replace表语句,这些语句是符合DDL规范的select语句。

  • logs文件记录项目中发生的所有操作。它显示了正在运行的select语句以及dbt运行时发生的python日志记录。

测试和记录你的项目

为你的模型创建test

为模型输出文档

  1. 运行dbt docs serve命令,可以在本地启动一个web服务,并打开浏览器来访问生成的文档.

下一步

您还可以探索:

  • target目录里查看所有已编译的SQL。run目录显示正在运行的create或replace表语句,这些语句是包装在正确DDL中的select语句。
  • logs文件中查看dbt Core是怎么记录所有的动作日志,它显示了正在运行的select语句以及dbt运行时发生的python日志记录。

提交更改

你需要提交更改,这样你的仓库会保持最新的代码.

  1. 添加所有更改文件: git add -A
  2. 提交更改: git commit -m "Add customers model, tests, docs"
  3. 将更改提交到仓库: git push
  4. 回到你的仓库, 执行pull request,将代码merge到你的master branch.

计划作业

我们建议使用dbt Cloud来安排计划作业。有关使用dbt Core执行计划作业,请参阅dbt airflow博客文章或部署