一学就会 2-2 建立我的第一个dbt项目

一学就会 2-2 建立我的第一个dbt项目

还没有把Postgres弄好的小伙伴请先参考老徐的上一个教程

一学就会 2-1 - 架设Postgres练习环境
为了简化大家设置调试本地服务器,我们这次的教程引入PostgreSQL数据库。上次的SQL Server大家可以继续使用继续练习,大家也可以替换成PostgreSQL,这样dbt的setup部分就会简单很多。 老徐的教程会在Mac下面演示,由于每个人的电脑,环境都不太一样,很难保证教程适用于每个小伙伴,大家需要自己在学习过程中调整命令,设置,这里就不一一解答了。 需要用到的软件 (点击展开) VSCode:https://code.visualstudio.com/download 开发用的IDE DBeaver: https://dbeaver.io/download/ 连接数据库跑…

这次教程架设大家已经安装好了所有上一个教程中提到的软件,这边就不再复述了。

我们首先在任意一个位置建立一个文件夹作为我们的项目目录。然后安装相应的dbt包,我们这里使用的是Postgres的数据库,所以用pipenv/pip安装dbt-postgres就行了。

这里,打开VSCode,打开刚刚创建好的空文件夹,然后在VSCode里面打开一个新的terminal窗口,输入:pipenv install dbt-postgres
然后激活我们的Python开发环境:pipenv shell

注意,这里不想使用pipenv的小伙伴可以用pip install dbt-postgres来进行安装。就不存在激活Python开发环境的这一步了。

好了,安装好以后,我们就可以初始化我们的第一个dbt项目了,大家可以任意起名,老徐这里把项目叫做dbt_tutorial,下面这个指令会帮我们建立好dbt项目的基本结构,
输入dbt init dbt_tutorial,因为我们安装的是postgres对应的dbt,所以下一步就选择 [1] postgres 就好了。
完成后dbt会在我们现在的文件夹里创造一个新的文件夹,叫dbt_tutorial,里面会生成一些需要用到的东西。

大家可以展开新的dbt_tutorial文件夹看到刚刚生成的文件。

假设大家都安装了direnv,没有的小伙伴请参考上一篇教程。

在dbt_tutorial文件夹内,建立一个新的文件叫做.envrc,不需要后缀,这个就是我们的开发环境的环境变量,可以和系统的环境变量完全独立开,互相不影响,然后在里面写入下面这一行:
export DBT_PROFILES_DIR=$(pwd)
这一步的目的是让dbt使用我们这个项目文件夹里的设置,这个可以做到让练习环境完全独立。

这时候,在我们的terminal里面,如果你输入cd dbt_tutorial进入这个文件夹,就会看到一行类似这样红色的字:direnv: error <xxxxxxxxx>/.envrc is blocked. Run direnv allow to approve its content,这里就是告诉我们刚刚新设置的环境变量没有读出来。这时候只要我们输入direnv allow,这个环境变量就可以被terminal读出来了。

再在同一个文件夹下建立一个新的文件,叫做profiles.yml这个就是我们的设置文件了。

这个文件里的内容如果大家跟着老徐前面的教程架设好了postgres服务器,那么完全不需要修改,直接复制粘贴就能用了:

dbt_tutorial:
  outputs:
    dev:
      type: postgres
      host: localhost
      user: postgres
      pass: mysecretpassword
      port: 5432
      dbname: pagila
      schema: dw
  target: dev

注意:这里的schema: dw是我们后面需要让dbt自动建立的schema,大家这样写就好,下一篇教程会解释。

然后在terminal里面输入dbt debug就能测试我们的connection是不是成功了

到此,我们的dbt项目就建立并且设置好了。老徐理解到这一步可能对于刚刚接触terminal的小伙伴有些复杂,多看,多读,使用google,chatgpt一类的工具帮你解决setup的问题是最简单和容易的方式。

下一篇,使用dbt创建我们的第一个model

一学就会 2-3 让dbt开跑
上一次教程我们成功的建立了自己的第一个dbt项目并且测试了连接,还没有搞定的小伙伴请参考上一期教程 一学就会 2-2 建立我的第一个dbt项目还没有把Postgres弄好的小伙伴请先参考老徐的上一个教程 一学就会 2-1 - 架设Postgres练习环境为了简化大家设置调试本地服务器,我们这次的教程引入PostgreSQL数据库。上次的SQL Server大家可以继续使用继续练习,大家也可以替换成PostgreSQL,这样dbt的setup部分就会简单很多。 老徐的教程会在Mac下面演示,由于每个人的电脑,环境都不太一样,很难保证教程适用于每个小伙伴,大家需要自己在学习过程中调整命令,设置,…