记录Azure Event Hub中所有消息的最简单方法

时间:2015-08-18 03:13:18

标签: azure azure-eventhub azure-stream-analytics

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

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

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

我们首先想到的是Streaming Analytics工作,但它需要解析原始消息(CSV / JSON / Avro),我们目前的格式都不是。

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

Azure现在具有此内置功能:Event Hubs Archive (预览中)

答案 3 :(得分:1)

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

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

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