如何做到这一点,以便每次运行 dbt 中的增量负载时,它只会更新上次运行时的新行?
{% if is_incremental() %}
/* code */
{% endif %}
您执行此操作的两个主要资源将在 dbt 文档中:
如何在 dbt 中构建增量模型: https ://docs.getdbt.com/docs/building-a-dbt-project/building-models/configuring-incremental-models/
bigquery 特有的增量模型: https ://docs.getdbt.com/reference/resource-configs/bigquery-configs/#merge-behavior-incremental-models
该模型很可能看起来像:
{{
config(
materialized='incremental'
)
}}
select <columns>
from <my_table>
{% if is_incremental() %}
where <my_table>.<record_update_timestamp> >= (
select max(<my_table>.<record_update_timestamp>) from {{ this }}
)
{% endif %}