azure 将增量数据与ADF同步

mbzjlibv  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(369)

在Synapse中,我设置了3个不同的管道,它们都从不同的数据源(SQL、REST和CSV)收集数据,并将其汇集到同一个SQL数据库中。
目前都是晚上运行,但是我已经知道问题是要更频繁地运行,我想防止我的管道在源没有任何变化的情况下贯穿所有的源。
因此,我希望存储每个管道(或管道活动)的最后一次成功同步运行。在每个管道的下一次启动之前,我希望创建一个新管道,即第四个管道,它检查源代码中是否发生了更改。如果发生了更改,它将触发一个、两个或所有三个管道的运行。
我仍然看到这样做的一些并发症,所以我不完全相信如何做到这一点。所以所有的帮助和想法是受欢迎的,不知道是否有人有这样做的经验?

mefy6pfw

mefy6pfw1#

这是(至少是部分)以下Microsoft教程的主题:Incrementally load data from Azure SQL Database to Azure Blob storage using the Azure portal
你走的是正确的道路--问题的关键是为每个源创建和持久化“水印”,从中你可以确定是否有任何更改。对于不同的源类型,你使用的方法可能不同。在上面的教程中,他们创建了一个存储过程,可以存储和检索“最后运行日期”,并使用它来智能地查询表中仅在上次运行日期之后修改的行。当然,这需要数据源的合作来记录数据何时插入或修改。
如果您有一个无法部分智能查询的源(例如CSV文件),您仍然可以选择使用Get Metadata Activity等来查询源文件的lastModified属性(如果使用blob或ADLGen 2,甚至是其contentMD5),并将其与上次运行期间保存的值进行比较(您必须选择一个位置来存储它,例如操作DB、Azure Table或小blob文件)以确定是否需要重新处理它。
如果你想疯狂,你可以研究流模式(可能需要涉猎HDInsights或使用Azure Event Hubs来触发ADF),以便在源中出现新数据时从计划触发器切换到自动摄取。

相关问题