snowflake-cloud-data-platform - 在不同的仓库中运行增量刷新而不是完全刷新

标签 snowflake-cloud-data-platform jinja2 dbt

我想建立一个incremental model它利用两种不同的仓库规范,具体取决于运行的增量版本还是完全刷新版本。

我认为类似以下的事情可能是可能的,但尚未能够使其发挥作用:

{% if is_incremental() %}
    {{ config(snowflake_warehouse=var("m_warehouse")) }}
{% else %}
    {{ config(snowflake_warehouse=var("xl_warehouse")) }} 
{% endif %}

{{
    config(
        materialized="incremental", 
        unique_key="pk_number", 
        on_schema_change="fail"
    )
}}

-- my model logic
select 1;

这个问题的答案应该是config block位于模型文件的顶部。

最佳答案

就您而言,您可以将 Jinja 内联到配置 block 内:

{{
  config({
    "materialized": "incremental", 
    "unique_key": "pk_number", 
    "on_schema_change": "fail",
    "snowflake_warehouse": var('m_warehouse') if is_incremental() else var('xl_warehouse')
  })
}}

注意 - 更复杂的 Jinja 逻辑在这里不起作用。有一个 PR 允许覆盖默认宏,但尚未发布:https://github.com/dbt-labs/dbt-snowflake/pull/503

关于snowflake-cloud-data-platform - 在不同的仓库中运行增量刷新而不是完全刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75795084/

相关文章:

javascript - 如何将无输入元素从html发送到python

amazon-web-services - 如何将 DBT 与 AWS Managed Airflow 结合使用?

sql - 使用数据构建工具(dbt)和雪花,如何检查列是否为日期字段?

python - 如何使用 Flask 应用程序访问现有的(SNOWFLAKE)数据库?

syntax - 更新中的雪花

html - 使用 Bootstrap 格式化 flask-wtf 提交按钮

sql - DBT Jinja 案例

c# - 雪花 : Is there a query that will return data type as I set it when creating Table? int 到 int,不是 int 到数字?

go - 查询数据库时如何将雪花数组转换为Golang中的数组

jinja2 - 如何计算jinja2中整数除法的余数