dbt中特定列数据的增量更新

Pas*_*ake 3 dbt

给定一个包含 20 列的表,我当前的模型已经将所有记录插入到表中。不过,我想将增量更新专门集中在几个专栏上。

例如,给出下表模型。当新值可用时,我想仅使用新值增量更新 C 列,而不是删除并重新插入整行,这从索引/性能角度来看成本更高。

现存的:

ID C
n1 X 1
n2 2
n3 Z 3

新的:

ID C
n1 X 1.2
n2 2.1
n3 Z 3.5

gas*_*lho 5

看来这个功能将被添加到dbt的下一版本(v0.20.0)中。但总而言之,用于指定列的新选项(merge_update_columns)将在 model\xe2\x80\x99s 配置块中可用。

\n
{{\n  config(\n    materialized = \'incremental\',\n    unique_key = \'id\',\n    merge_update_columns = [\'c\'],\n    ...\n  )\n}}\n\nselect ...\n
Run Code Online (Sandbox Code Playgroud)\n

检查文档以了解更多详细信息:\n https://next.docs.getdbt.com/docs/building-a-dbt-project/building-models/configuring-incremental-models#strategy-specific-configs

\n