有什么办法可以从上次处理的文件中获取上次修改日期的最大值并将其存储在配置表中
答案 0 :(得分:0)
从 Supported data stores and formats 您可以看到支持 Salesforce、Salesforce 服务云和营销云。
您必须执行以下步骤:
按照 this 在 Azure 数据工厂中使用 Salesforce 设置链接服务
从 Salesforce 复制数据时,您可以使用 SOQL 查询或 SQL 查询。请注意,这两者具有不同的语法和功能支持,请勿混用。建议您使用 Salesforce 原生支持的 SOQL 查询。
通过水印对数据进行增量加载或增量加载的过程:
在这种情况下,您在源数据库中定义水印。水印是具有上次更新时间戳或递增键的列。增量加载解决方案在旧水印和新水印之间加载更改的数据。此方法的工作流程如下图所示:
ADF 将扫描源存储中的所有文件,按其 LastModifiedDate 应用文件过滤器,并且仅将自上次以来的新文件和更新文件复制到目标存储。
有关功能、先决条件和 Salesforce 请求限制,请参阅 Copy data from and to Salesforce by using Azure Data Factory
请参阅文档:Delta copy from a database with a control table 本文介绍了一个模板,该模板可用于通过使用存储高水印值的外部控制表将新行或更新行从数据库表增量加载到 Azure。
此模板要求源数据库的架构包含时间戳列或递增键以标识新行或更新行。
模板包含四个活动:
转到来自数据库的增量副本模板。创建到要从中复制数据的源数据库的新连接。
创建与您创建的外部控制表和存储过程的连接,然后选择使用此模板。
选择可用的管道
对于存储过程名称,选择[dbo].[update_watermark]。选择导入参数,然后选择添加动态内容。
点击添加动态内容并输入以下查询。这将在您的水印列中获得一个最大日期,我们可以将其用于增量切片。
您可以使用此查询从上次处理的文件中获取上次修改日期的最大值
select MAX(LastModifytime) as NewWatermarkvalue from data_source_table"
或
仅对于文件,您可以使用 Incrementally copy new and changed files based on LastModifiedDate by using the Copy Data tool
参考:来源:ADF Incremental loading with configuration stored in a table