【问题标题】:Configuring raw and analytics databases with dbt使用 dbt 配置原始数据库和分析数据库
【发布时间】:2022-01-19 18:40:57
【问题描述】:

我一直在阅读 dbt 的 How we configure Snowflake 指南,该指南解释了拥有 raw 数据库和 analytics 数据库的基本原理。原始数据被加载到您的仓库到 raw(例如,通过使用 Fivetran),analytics 被 dbt 用于为数据分析师/科学家保存转换后的数据/视图。

但是,我似乎找不到任何有关如何实际设置的指南。 profile.yml 文件需要指向原始数据所在的位置,以便 dbt 可以开始转换。但是,该文件似乎还规定了保存转换后的数据/视图的数据库和架构。

在 dbt 的许多 .yml 文件中,我应该在哪里全局指定保存转换后的数据的位置?

【问题讨论】:

    标签: dbt


    【解决方案1】:

    设置您的profiles.yml,它不在实际项目中,而是在您机器上的~/.dbt 文件夹中,以便它引用您的目标数据库/架构。对于开发,这看起来像您在下面看到的。 For production on dbt Cloud。现在,您只需像往常一样设置您的来源(请参阅下面的第三个块)。没有通用源选项,只有一个目标数据库/模式。

    Profiles.yml DocsSnowflake Profile Docs

    -- profiles.yml
    
    my_profile:
      target: dev
      outputs:
        dev:
          type: snowflake
          account: <snowflake_server>
          user: my_user
          password: my_password
          role: my_role
          database: analytics
          warehouse: dev_wh
          schema: dbt_<myname>
          threads: 1
          client_session_keep_alive: False
    
    -- dbt_project.yml
    
    name: 'my_dbt_models'
    version: '1.0.0'
    config-version: 2
    
    profile: 'my_profile'
    ...
    ...
    ...
    

    Sources Docs

    -- src.yml 
    
    version: 2
    sources:
      - name: jaffle_shop
        database: raw
        tables: 
          - name: orders
    

    在模型中:

    raw.jaffle_shop.orders 变为 {{ source( 'jaffle_shop' , 'orders' ) }}

    注意,dbt 处理这个源,默认情况下它假定名称是模式,但是,我发现你真的可以给它命名任何你想要的名字,如果你想给它一个特殊的名字,你可以添加一个模式. 比如……

    sources:
      - name: my_special_name
        database: raw
        schema: jaffle_shop
        tables: 
          - name: orders
    

    在模型中:

    raw.jaffle_shop.orders 变为 {{ source( 'my_special_name' , 'orders' ) }}

    我希望这一切都有意义。

    【讨论】:

    • 感谢您的回答 Anna,它帮助我更好地理解了 profiles.yml 的角色以及 ~/models 中各种与模型相关的 .yml 文件。我在检查dbt_project.yml 时取得了进一步的突破,并意识到我可以设置包在vars 中查找数据库的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2013-01-08
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多