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

Excel新增行时如何通过Azure Data Factory增量更新MySQL数据库

实现方案:Azure Data Factory 针对SharePoint Excel的增量ETL同步

前置准备

首先确认你的Excel表内存在可用于判断增量的标识字段,比如数据创建时间戳、自增唯一ID这类新增行数值单调递增、不会重复修改的字段。如果没有该类字段,先给Excel新增隐藏列,设置公式让新增行自动生成创建时间,作为后续增量判断的依据。


方案1:水印列增量同步(定时触发,最常用)

该方案适配大部分低/中等实时性要求的场景,配置简单稳定性高:

  • 第一步:创建水印表存储同步位点
    先在你的MySQL库中新建一张水印表,用来记录每次同步的最大位点值,参考建表语句:
    CREATE TABLE adf_watermark (
      source_name VARCHAR(100) PRIMARY KEY COMMENT '数据源标识,填你的SharePoint Excel路径别名即可',
      last_sync_value DATETIME NOT NULL COMMENT '上次同步的最大时间戳/最大ID值',
      update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );
    -- 首次同步初始化记录,全量同步的话填历史最早时间即可
    INSERT INTO adf_watermark (source_name, last_sync_value) VALUES ('sharepoint_excel_business', '2000-01-01 00:00:00');
    
  • 第二步:配置ADF的增量读取逻辑
    1. 在ADF管线中先添加一个Lookup活动,读取MySQL水印表,拿到上次同步的last_sync_value值
    2. 新增第二个Lookup活动读取SharePoint Excel的全量数据(Excel本身不支持服务端过滤,所以需要全量读入内存过滤,只要单表行数不超过10万级别,性能不会有明显损耗)
    3. 新增Filter活动,设置过滤条件为Excel的增量标识列 > 第一步拿到的last_sync_value,筛选出本次需要同步的新增行
  • 第三步:执行ETL逻辑+更新水印
    1. 把Filter输出的新增行接入你原有的数据转换逻辑,处理后写入MySQL目标表
    2. 写入成功后添加Script活动,更新水印表的位点值为本次同步取到的新增行里最大的增量标识值,参考语句:
    UPDATE adf_watermark SET last_sync_value = (SELECT MAX(create_time) FROM your_target_table) WHERE source_name = 'sharepoint_excel_business';
    
  • 第四步:配置触发频率
    给管线配置定时触发器,按你的数据实时性要求设置15分钟到几小时的触发间隔即可。

方案2:事件触发实时增量同步(高实时性场景)

如果需要Excel新增数据后1分钟内完成同步,可以用该方案:

  • 第一步:配置Power Automate触发规则
    登录Power Automate创建自动化流,触发条件设置为「当SharePoint指定文件被修改时」,选择你要同步的Excel文件路径
  • 第二步:配置ADF调用逻辑
    流中添加调用Azure Data Factory管线的动作,把修改后的文件路径作为参数传给ADF管线
  • 后续执行逻辑和方案1完全一致:ADF管线拿到文件后执行新增行过滤、转换、写入目标表、更新水印的流程即可。

注意事项

  • 如果使用Excel公式自动生成时间戳,记得新增行后把公式结果转成固定值,避免旧行的时间戳被刷新导致增量判断出错
  • 单次同步Excel行数超过10万的话,建议先把Excel同步到Azure Blob存储做中间层,再做增量过滤,避免ADF内存不足
  • 写入MySQL前建议加主键去重逻辑,避免网络波动导致的重复写入问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 06:36:10