首页 > 解决方案 > 使用 Azure Eventhub + Logic 应用的 SQL Server 并行插入

问题描述

我正在使用 Azure 事件中心将 Azure 诊断数据流式传输到逻辑应用程序,以将其保存到 Azure SQL 表中以进行监视。这很好用。但是,有时会发生 EventHub 发送重复的情况。为了避免重复插入,我使用了带有 WHERE NOT EXISTS 子句的 INSERT INTO 语句。但是,我仍然很少出现双排。Logic 应用程序并行运行,所以我猜这是导致问题的原因。我认为有时它会在完全相同的时间执行相同的插入,这会导致 WHERE NOT EXISTS 子句不起作用。

有谁知道解决方法?我不想在之后删除重复的行,因为我想在表上放置一个唯一的键约束。

标签: sqlazurestored-proceduresazure-logic-appsazure-eventhub

解决方案


你必须在你的函数中进行一些幂等性检查。当缩放发生时,新的缩放单元将接管处理分区,从而重新处理相同的消息。

我不知道服务总线是否可以将这些消息排队。我建议您向事件中心团队报告。


推荐阅读