一般来说,我对天蓝色和云比较陌生。
我正在查看有关如何集成事件中心、事件网格和天蓝色函数以将数据流式传输到 SQL 仓库的教程。
我的问题是:
首先将数据存储在 blob 存储中,而不是直接使用 HTTP 触发的 Azure 函数处理传入数据,从而消除对事件中心和事件网格的需要,有什么优势?
感谢您花时间阅读我的问题。任何帮助是极大的赞赏 :-)
一般来说,我对天蓝色和云比较陌生。
我正在查看有关如何集成事件中心、事件网格和天蓝色函数以将数据流式传输到 SQL 仓库的教程。
我的问题是:
首先将数据存储在 blob 存储中,而不是直接使用 HTTP 触发的 Azure 函数处理传入数据,从而消除对事件中心和事件网格的需要,有什么优势?
感谢您花时间阅读我的问题。任何帮助是极大的赞赏 :-)
此功能用于备份/重用事件数据。
默认情况下(如果未设置捕获),事件数据将在 7 天(最长保留期)存储在 eventthub 中。在某些情况下,如果您在 7 天内未处理这些事件,则事件数据将会丢失。
在这种情况下,如果您已配置捕获功能,则始终可以重用这些事件数据,因为它们存储在 blob 存储中。
无论如何,如果您应该启用/禁用此功能,您应该考虑您的需求。
此功能用于备份/重用事件数据。
我不太同意伊万的观点。OP 本身引用的文章显示了不是备份/恢复的捕获的大量使用。
如果您想使用 Azure Functions 处理来自事件中心的大量事件(使用EventHub Trigger for Functions),最大的问题是批处理。maxBatchSize
只是对函数运行时的一个建议,变量太多,即使你设置maxBatchSize
一个很大的数字,你也可能不会(读取不会)获得足够大的批次。另请记住, HTTP 触发器对函数执行时间有 230 秒的限制。如果我没记错的话,同样适用于 Blob 触发器(因为 Blob 触发器在内部实现为对 Azure Function 的 REST 调用)。
替代方法是以 OP 发布的方式使用捕获。
一些参考资料: