【问题标题】:Is there a way to force a full refresh for a dbt incremental model if its model changed?如果 dbt 增量模型的模型发生变化,是否有办法强制对其进行完全刷新?
【发布时间】:2022-11-24 01:54:19
【问题描述】:

我将使用增量模型在 Snowflake 中为管道实施 dbt 以节省查询成本,但我想管理非常频繁的架构更改。对于运行 dbt run 的每个环境,我将有一个每日 ETL 作业。 此外,在 qa 和 prod 环境中,我将无法运行任何 cmd,因为我无权访问这些环境以解决安全问题,只能访问 dev。

如果模式更改,是否可以触发模型的完全刷新?

我看到我们可以将 on_schema_change 选项与增量模型一起使用,但这只会添加(或删除)列而不填充它们,这不是我正在寻找的,因为我将无法手动运行强制刷新在质量保证和生产中。

非常感谢

【问题讨论】:

    标签: snowflake-cloud-data-platform dbt


    【解决方案1】:

    对的,这是可能的。 How do I rebuild an incremental model?:

    如果您的增量模型逻辑已更改,则新数据行的转换可能与存储在目标表中的历史转换不同。在这种情况下,您应该重建增量模型。

    要强制 dbt 从头开始​​重建整个增量模型,请在命令行上使用 --full-refresh 标志。此标志将导致 dbt 在一直重建它之前删除数据库中现有的目标表。

    $ dbt run --full-refresh --select my_incremental_model+
    

    还建议重建任何下游模型,如尾随 + 所示。

    【讨论】:

      猜你喜欢
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2013-09-14
      相关资源
      最近更新 更多