8

我正在使用输出到事件中心的服务。

我们希望存储该输出,每天由运行在 Apache Spark 上的批处理作业读取一次。基本上我们认为,只需将所有消息转储到 blob 即可。

将消息从事件中心捕获到 Blob 存储的最简单方法是什么?

我们的第一个想法是流分析工作,但它需要解析原始消息(CSV/JSON/Avro),我们当前的格式不是这些。


更新我们通过更改消息格式解决了这个问题。我仍然想知道是否有任何低影响的方式将消息存储到 blob。在 Streaming Analytics 出现之前,EventHub 是否有解决方案?

4

4 回答 4

5

您可以编写自己的工作进程来从 EventHub 中读取消息并将它们存储到 blob 存储中。您不需要实时执行此操作,因为 EH 上的消息会在设置的保留天数内保留。读取 EH 的客户端负责通过跟踪 EH 消息的 partitionid 和偏移量来管理已处理的消息。有一个 C# 库使这变得非常容易并且可以很好地扩展:https ://azure.microsoft.com/en-us/documentation/articles/event-hubs-csharp-ephcs-getstarted/

于 2015-08-19T04:33:22.990 回答
3

您可以使用event-hubs-capture捕获到 blob。

于 2017-07-27T06:03:04.123 回答
2

您还可以通过从事件中心触发器触发的 Azure 函数(无服务器代码)来执行此操作。

根据您的要求,如果您需要它没有的功能(例如另存为 GZIP 或写入更自定义的 blob 虚拟目录结构),这可能比事件捕获功能更好。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs#trigger-usage

于 2017-10-28T12:32:28.127 回答
1

Azure 现在具有此内置功能:事件中心存档 (预览版)

于 2016-10-03T06:29:02.123 回答