gpt4 book ai didi

azure - 与 ADF 同步增量数据

转载 作者:行者123 更新时间:2023-12-03 03:29:42 25 4
gpt4 key购买 nike

在 Synapse 中,我设置了 3 个不同的管道。它们都从不同来源(SQL、REST 和 CSV)收集数据,并将其汇入同一个 SQL 数据库。

目前它们都在夜间运行,但我已经知道问题在于更频繁地运行它。我想防止我的管道在源中没有任何更改的情况下运行所有​​源。

因此,我想存储每个管道(或管道事件)的最后一次成功同步运行。在每个管道下一次启动之前,我想创建一个新管道,即第四个管道,它检查源中是否发生了某些更改。如果是,则触发执行一个、两个或全部三个管道来运行。

我仍然看到这样做有些复杂,所以我不完全相信如何做到这一点。所以欢迎所有的帮助和想法,不知道是否有人有这方面的经验?

最佳答案

这是(至少部分)以下 Microsoft 教程的主题: Incrementally load data from Azure SQL Database to Azure Blob storage using the Azure portal

您走在正确的道路上 - 问题的关键是为每个源创建并保留“水印”,您可以从中确定是否有任何更改。对于不同的源类型,您使用的方法可能有所不同。在上面的教程中,他们创建了一个可以存储和检索“上次运行日期”的存储过程,并使用它来智能地查询表以仅查找在上次运行日期之后修改的行。当然这需要数据源的配合来记录数据何时插入或修改。

如果您的源无法部分智能查询(例如 CSV 文件),您仍然可以选择使用 Get Metadata Activity 之类的内容。例如查询源文件的 lastModified 属性(如果使用 blob 或 ADLGen2,甚至是其 contentMD5),并将其与上次运行期间保存的值进行比较(您必须选择存储此信息的位置,例如操作数据库、Azure 表或小 blob 文件)以确定是否需要重新处理。

如果您想疯狂,您可以研究流模式(可能需要涉足 HDInsights 或使用 Azure 事件中心来触发 ADF),以在新数据出现时从计划触发器转移到自动摄取来源。

关于azure - 与 ADF 同步增量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75004205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com