【问题标题】:Execute Data Factory pipeline based on event in table根据表中的事件执行数据工厂管道
【发布时间】:2021-06-22 06:08:29
【问题描述】:

我需要在表中有新记录时触发 Azure 数据工厂管道。有什么办法可以做到这一点。

【问题讨论】:

    标签: azure-data-factory azure-data-factory-2 azure-data-factory-pipeline


    【解决方案1】:

    不,Event-based trigger 目前仅支持 Azure Blob 存储。 您可以投票here 以在 Azure 数据工厂中推进此功能。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        虽然目前不支持此功能,但这里有一个关于如何伪造它的想法。 (只是分享一个想法,不确定是否可行。)

        1. 在 INSERT 上创建触发器
        2. 触发器执行存储过程
        3. 存储过程使用 Polybase 在 Blob 存储中创建带有相关信息(如新行 ID)的文本文件。
        4. 在 ADF 或逻辑应用中的该存储位置上创建 BlobCreated 事件触发器。

        这样做应该会在插入新行时触发一个事件触发器。

        【讨论】:

        • 我认为您在@JoelCochran 那里混合和匹配了一些东西,所以我不确定这是否可行。 Azure SQL DB 支持触发器,但不支持 Polybase。 OP 在链接讨论中提到了 Azure SQL DB。 Azure Synapse Analytics(专用 SQL 池)支持 Polybase,不支持触发器。 VM 上的 IaaS / SQL 支持两者(我认为),但 OP 没有提到这一点。明白了吗?我确实认为 Logic App 触发 ADF 管道会起作用,但尚未对其进行测试。有趣的问题,但总是可以通过定期轮询来伪造,例如每 15 分钟一次。
        • 谢谢@wBob,我主要是在大声思考,想出一个主意。我认为您是正确的,轮询可能是要走的路,我们在内部管道管理系统中这样做:逻辑应用程序每隔几分钟触发一次并调用存储过程来检查表中是否有要处理的行。
        【解决方案4】:

        我们可以使用逻辑应用来触发基于查询的管道,该查询查找在过去 x 分钟/秒内插入的数据

        【讨论】:

          【解决方案5】:

          在 ADF 中没有直接的方法来做到这一点(目前)。正如其他人指出的那样,您可以投票支持要添加的功能,微软可能会添加它。但仍有办法做到这一点:

          您可以设置逻辑应用。这里有一个非常好的视频教程:https://www.youtube.com/watch?v=z0sMIN4xMSY

          您可以将逻辑应用设置为使用 SQL 数据库作为触发器,然后您可以根据在特定表中新创建的内容或在特定表中修改的内容来决定是否要让它触发。然后,您可以操作逻辑应用以触发 Azure 数据工厂管道的运行。您可以将逻辑应用设置为根据需要检查表格的频率,例如每分钟、3 分钟或更长时间等。

          如果您希望 ADF 管道在每次修改或插入某个表时运行,但相关表非常大,您可以通过创建跟踪更改表来减少计算。基本上有另一个非常小的表来记录更改,然后将此表用于逻辑应用程序监控的表。在这种情况下,这将使其更快、更高效。

          观看视频。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-11-27
            • 2019-04-24
            • 1970-01-01
            • 2020-12-22
            • 2018-10-02
            • 2019-10-24
            相关资源
            最近更新 更多