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

如何通过Azure Synapse Link、数据流或Dataverse处理重复记录

问题解答:Dataverse数据通过Synapse Link追加模式重复记录处理方案

一、去重方案选择:ADF数据流 vs Dataverse端处理

1. Dataverse端处理的局限性

  • 仅追加模式下,Dataverse本身不会自动去重——该模式设计逻辑就是每次数据变更(新增/更新)都追加新记录到存储,无法直接在源端阻止重复生成。
  • 若要在Dataverse端干预,需开发自定义插件或配置业务规则,但这会增加源系统复杂度,且无法覆盖已同步到存储的历史重复数据。

2. ADF数据流去重的优势

  • 属于下游ETL处理,完全不影响Dataverse的业务逻辑,符合数据仓库分层架构的最佳实践。
  • 可灵活处理历史及新增重复数据,支持自定义去重规则(按主键、全字段匹配等)。
  • 配合Synapse Link的增量同步,可定期或实时触发数据流完成去重,保障最终数据唯一性。

结论:优先选择ADF数据流聚合去重

二、ADF数据流聚合去重代码使用说明

你提到的代码是ADF的数据流脚本(Data Flow Script),用于基于全字段匹配实现去重,具体使用如下:

1. 代码功能解析

aggregate(groupBy(mycols = sha2(256,columns())),
    each(match(true()), $$ = first($$))) ~> DistinctRows
  • sha2(256,columns()):对所有字段生成SHA256哈希值,作为重复记录的分组依据(全字段相同的记录哈希值一致)。
  • groupBy(mycols = ...):按生成的哈希值分组,把重复记录归为同一组。
  • each(match(true()), $$ = first($$)):对每个分组,保留组内第一条记录,丢弃其他重复项。
  • ~> DistinctRows:输出去重后的数据集,命名为DistinctRows。

2. 具体操作步骤

  1. 在ADF中创建数据流,添加Synapse Link同步的存储数据源作为输入节点。
  2. 点击数据流画布上方的脚本按钮(</>图标),进入脚本编辑界面。
  3. 找到输入数据源对应的脚本行(类似source(output(...), allowSchemaDrift: true, validateSchema: false) ~> Source1),在其下方插入上述聚合脚本,注意将Source1替换为你的实际输入节点名称,示例修改后脚本:
source(output(accountnumber as string, accountname as string), allowSchemaDrift: true, validateSchema: false) ~> Source1
aggregate(Source1, groupBy(mycols = sha2(256,columns())),
    each(match(true()), $$ = first($$))) ~> DistinctRows
  1. 保存脚本后回到画布,会自动生成DistinctRows聚合节点,可继续连接后续转换或输出到目标数据集(如数据湖、Synapse SQL池)。

3. 可视化操作替代方案(无需写脚本)

如果不习惯直接编辑脚本,可通过可视化界面实现相同逻辑:

  • 添加聚合转换节点,连接到输入数据源。
  • 在聚合设置的分组依据中,点击「添加列」,使用表达式sha2(256,columns())生成哈希分组键。
  • 在聚合列中,对每个字段选择first()函数(或last(),根据你需要保留的记录版本),最终实现全字段去重。

三、参考文档中文说明

  • 《Azure Synapse Link 高级配置》:介绍Synapse Link连接Dataverse的进阶设置,包括同步模式、数据过滤等配置项。
  • 《ADF数据流脚本:使用所有字段实现去重行》:讲解如何通过数据流脚本实现基于全字段匹配的去重操作,即你引用的代码片段来源。

内容的提问来源于stack exchange,提问作者Developer Rajinikanth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:25:30