如何使用 Azure 数据工厂将 OData 源文件更新数据放入接收器文件(Azure SQL Server)

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

如何使用 Azure 数据工厂将 OData 源文件更新的数据导入接收器文件(Azure SQL Server)?

如何使用 OData 源文件创建管道以接收更新的记录,使用 Azure 数据工厂?

azure-pipelines azure-sql-database azure-data-factory odata azure-data-lake-gen2
1个回答
0
投票

为了从 ODATA 源增量加载数据到 SQL 数据库,您需要在源中有一个递增的键列。递增键是添加到表的每一行的唯一标识符,并且每当添加新行时该值都会增加。此列将用于标识已经复制的行和要复制到接收器的行。

  • 在 SQL 数据库中创建水印表并插入初始值。
  • 如果您的递增键是日期,请将值保留为
    1900-01-01
    。如果是数字,则以
    0
    .
  • 开头
create table watermark_table ( watermark_column datetime2)
insert into watermark_table values  ('1900-01-01')
  • 在数据工厂管道中,添加查找活动并为水印表创建源数据集。
  • 然后添加复制活动。在源数据集中添加 OData 连接器数据集,在接收器中添加 SQL 数据库表的数据集。
  • 在来源中,输入查询作为
    $filter=<incremental-column-name> gt '@{activity('Lookup1').output.firstRow.watermark_column}'

用相应的键列替换

<incremental-column-name>

enter image description here

  • 然后添加脚本活动并添加SQL数据库的链接服务。输入脚本为,
update watermark_table
set watermark_column=(select max(<incremental-column-name>) from <sink-table-name>)

<incremental-column-name>
<sink-table-name>
分别替换为各自的列名和表名。

这将用新值替换旧水印值,新值将是加载到接收器的行的最新值。

参考使用控制表从数据库进行增量复制 - Azure 数据工厂 |微软学习

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.