DBT - 合并 - 仅更新条件

问题描述 投票:0回答:1

嗨,我目前正在开发一个 dbt 解决方案,该解决方案使用必须合并到目标表的 2 个源,我正在使用

{{
    config(
      unique_key = ['col1', 'col2', 'col3'],
      merge_exclude_columns = ['col1', 'col2', 'col3']
    )
}}

问题是我需要使用其他两个表来仅更新某些行(与这 3 列(col1、col2 和 col3)匹配)。我不需要使用在连接时插入和更新行的标准合并,而只在匹配时更新行,

我怎样才能做到这一点?

谢谢

snowflake-cloud-data-platform dbt
1个回答
0
投票

如果我理解正确,您需要

LEFT JOIN
操作,而不是
incremental
dbt 模型。
merge_exclude_columns
用于
materialized='incremental'
模型,而不是视图或表格。

我猜你需要一个像这样的 dbt 模型:

{{
    config(
      materialized='table'
    )
}}

SELECT
  a.*,
  b.*
FROM {{ source('source', 'table_1') }} a
LEFT JOIN {{ source('source', 'table_2') }} b
  ON
    b.col1 = a.col1
    b.col2 = a.col2
    b.col3 = a.col3

dbt 将在每次运行时从头开始重新创建此表。

如果我误解了您的问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.