You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dataform增量表中自定义合并逻辑实现求和而非覆盖?

在Dataform中修改增量表的合并逻辑(求和替代默认覆盖)

我正在Dataform中创建增量表,默认的重复行合并逻辑是用新行覆盖现有行,但我需要改为将新重复行的数值与现有行数值求和。

源表是销售数据,其中insert_date为数据插入日期,transaction_date为交易发生日期——部分交易数据会在发生日期之后才被插入到源表中。

示例数据

源表数据

insert_datetransaction_datesales_quantity
2023-12-012023-12-0110
2023-12-022023-12-0220
2023-12-032023-12-015

预期增量更新结果

我希望基于insert_date增量生成以transaction_date为唯一键的汇总表,最终结果如下:

transaction_datesales_quantity
2023-12-0115
2023-12-0220

当前实现及问题

使用默认增量逻辑的SQLX代码如下:

config {
  type: "incremental",
  uniqueKey: ["transaction_date"]
}

pre_operations {
  DECLARE insert_date_checkpoint DEFAULT (
    ${when(incremental(),
    `SELECT MAX(insert_date) FROM ${self()}`,
    `SELECT DATE("2000-01-01")`)}
  )
}

SELECT
  transaction_date,
  SUM(sales_quantity) AS sales_quantity
FROM
  ${ref("table")}
WHERE
  insert_date > insert_date_checkpoint
GROUP BY
  transaction_date

分别在2023-12-01、2023-12-02、2023-12-03执行增量任务后,得到的结果是新行覆盖了原有数据,而非求和:

transaction_datesales_quantity
2023-12-015
2023-12-0220

疑问

是否可以修改增量表的合并逻辑来替代默认的覆盖行为?还是需要创建特定的operations SQLX文件来实现?

注:销售表数据量庞大,且按insert_date分区,全量刷新成本过高,不可行。


内容的提问来源于stack exchange,提问作者Matt Kocak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:22:57