【问题标题】:incremental load with bigquery isn't working with dbt unique_keybigquery 的增量负载不适用于 dbt unique_key
【发布时间】:2021-06-06 19:41:43
【问题描述】:

我正在尝试在 BigQuery 上使用 dbt 构建增量模型,但我似乎遗漏了有关我的代码或增量模型工作方式的一些细节。

我正在构建我的五个功能键的唯一哈希,它们是 POSStoreCode, StoreSystemType, TargetStartDate, TargetEndDate and TargetSalesType

我的增量模型如下所示。

{{ config(materialized='incremental', alias='Sales_Target_Oblique_v1', schema='bq_ed_harmonized_'+var('env'), unique_key='Checksum') }}


with salestarget as (

  select
    store_code as POSStoreCode,
    store_name as StoreName,
    'SID' as StoreSystemType,
    target_qty as TargetQuantity,
    target_start_date as TargetStartDate,
    target_end_date as TargetEndDate,
    concat('Women ', ProductCategory) as TargetSalesType,
    cast(NULL as float64) as TargetAmount,
    '{{ var("transaction_id") }}' as ProcessingId,
    CURRENT_DATETIME() as CreationDatetime,
    CURRENT_DATETIME() as LastUpdateDatetime
  from {{ ref('salestarget') }} ),

  harmonized_salestarget as (
  select
    * ,
    {{ dbt_utils.surrogate_key(['POSStoreCode', 'StoreName', 'StoreSystemType', 'TargetQuantity', 'TargetStartDate', 'TargetEndDate', 'TargetSalesType', 'TargetAmount']) }} as Checksum
  from salestarget 
)

select * from harmonized_salestarget
{% if is_incremental() %}
    where Checksum != {{ dbt_utils.surrogate_key(['POSStoreCode', 'StoreName', 'StoreSystemType', 'TargetQuantity', 'TargetStartDate', 'TargetEndDate', 'TargetSalesType', 'TargetAmount']) }}
{% endif %}

当我第一次执行模型时,它通过创建表 Sales_Target_Oblique_v1 并将数据加载到那里运行良好,此外,当我再次执行它时,它不会合并任何正常的东西。

现在我在某些值上手动更新表源{{ ref('salestarget') }},例如为TargetQuantity 设置一个新值,当我再次执行模型时,它应该检测到发生的更改并将其合并,因为新计算的校验和会和旧的不一样,但是不起作用,最后合并了0行。

我的校验和有什么问题吗?

【问题讨论】:

    标签: google-bigquery dbt


    【解决方案1】:

    要将数据添加到 dbt 增量模型,您只需返回您希望附加(或更新)到现有表的新行。

    在您的情况下,您没有返回任何新行,因为您正在将查询的校验和与其自身进行比较(因为您是从 harmonized_salestarget 中选择的)。实际上你是在说where 1 != 1

    您在文件顶部的校验和定义是正确的 - 您要做的是更改查询的底部以查找自上次运行模型以来已更改的记录。例如,您是否有可以过滤的修改日期列?

    这些文档将帮助您走上正轨:https://docs.getdbt.com/docs/building-a-dbt-project/building-models/configuring-incremental-models

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 2019-06-26
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多