Azure 数据工厂 - ADF 通过 SQL 表更改触发管道的建议方法

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

我有一个跟踪 SQL 表,其架构如下:

CREATE TABLE [dbo].[TEST_TABLE](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [value] [nvarchar](50) NULL,
    [status] [nvarchar](50) NULL,
    [source] [nvarchar](50) NULL,
    [timestamp] [datetime] NULL
)

我的应用程序代码将通过插入记录和更新字段来自动维护表

status

我的目标是根据以下查询的结果触发 ADF 管道:

SELECT COUNT(1) AS cnt FROM [dbo].[TEST_TABLE] WHERE [status] = 'active'

如果结果 >0,则触发 ADF 管道。

目前状态:

我目前的工作:

  1. 设置一个存储过程SP_TEST,如果满足条件则返回1;否则 0
  2. 设置如下管道: enter image description here

SP的结果被解析并用于路由触发后续阶段(这会将SQL表状态标记为'inactive'以避免重复处理) 3. 每 5 分钟将管道与调度触发器关联一次。

我现在的工作是“工作”,即每5分钟检测一次DB是否有变化并执行后续处理。

问题:

但是,调度触发器可能过于频繁,并且每次执行都会消耗活动运行单元,这可能会导致成本高昂。有没有像“SQL表更改触发器”这样的触发器?

我尝试过的:

  • 快速谷歌将我指向这个链接,但似乎还没有答案。

  • 我还知道存储事件触发器和自定义事件触发器。不幸的是,我们无权创建其他 Azure 资源。仅向我们提供现有的ADF和SQL服务器。

提前了解任何见解/方向。

azure triggers azure-data-factory
1个回答
1
投票

使用 ADF 进行轮询可能会很昂贵,我们希望避免这种情况。相反,在 Azure 逻辑应用程序中进行轮询会便宜得多。以下是侦听 SQL Server DB(包括 Azure)然后在发现表更改时触发 ADF 管道的步骤。

Azure Logic App Design

以下是 Azure 逻辑应用程序的定价:

Azure Logic App Pricing

我相信这意味着每个触发器都使用标准连接器,因此每触发 1000 次应用程序将收取 12.5 美分(美元),每触发 1000 次操作将收取 2.5 美分(美元)。

对于 ADF,每 1000 项活动为 1 美元 (USD),因此 ADF 的价格要贵得多

如果您有任何问题,请告诉我!

© www.soinside.com 2019 - 2024. All rights reserved.