使用事件中心捕获的优势

Advantages of using event hubs capture

总的来说,我对 azure 和 cloud 比较陌生。

我正在查看这个 tutorial 关于如何集成事件中心、事件网格和 azure 函数以将数据流式传输到 SQL 仓库。

我的问题是:

与仅使用 HTTP 触发的 Azure 函数直接处理传入数据相比,首先将数据存储在 blob 存储中有什么优势,从而消除了对事件中心和事件网格的需求?

感谢您花时间阅读我的问题。非常感谢任何帮助:-)

此功能用于备份/重复使用事件数据。

默认情况下(如果没有设置捕获),事件数据将在 7 天(最长保留期)内存储在 eventhub 中。在某些情况下,如果您在 7 天内不处理这些事件,那么事件数据将会丢失。

在这种情况下,如果您配置了捕获功能,您可以随时重复使用这些事件数据,因为它们存储在 blob 存储中。

无论如何,如果你应该enable/disable这个功能,你应该考虑你的需要。

This feature is used to backup / reuse the event data.

我不太同意伊万。 OP本身引用的文章显示了捕获的大量使用,而不是backup/recovery。

如果您想使用 Azure Functions 处理来自事件中心的大量事件(在函数执行时使用 EventHub Trigger for Functions), biggest problem is batching. maxBatchSize is just a suggestion to Function Runtime, there are too many variables and you may not (read will not) get big enough batches even if you set maxBatchSize to a big number. Also remember that HTTP triggers have a 230 seconds limit。如果我没记错的话,同样适用于 Blob 触发器(因为 Blob 触发器实现为内部对 Azure 函数的 REST 调用)。

备选方案是使用 OP 发布方式中的捕获。

部分参考资料: