2015-08-18 6 views
5

Ich verwende einen Dienst, der an einen Event Hub ausgibt.Einfachste Möglichkeit, alle Nachrichten von einem Azure Event Hub zu protokollieren

Wir möchten diese Ausgabe speichern, die einmal pro Tag von einem Batch-Job auf Apache Spark gelesen werden soll. Im Grunde genommen haben wir uns gedacht, dass alle Nachrichten in Blobs verschwinden.

Was ist der einfachste Weg, um Nachrichten von einem Event Hub zum Blob Storage zu erfassen?

Unser erster Gedanke war ein Streaming Analytics-Job, aber es erfordert die Analyse der rohen Nachricht (CSV/JSON/Avro), unser aktuelles Format ist keines davon.


aktualisieren Wir lösen dieses Problem durch unser Nachrichtenformat zu ändern. Ich würde immer noch gerne wissen, ob es eine wirkungsvolle Möglichkeit gibt, Nachrichten in Blobs zu speichern. Hatte EventHub eine Lösung dafür, bevor Streaming Analytics eintraf?

+1

Wenn Ihr Event-Hub Serialisierungsformat nicht CSV/JSON/Avro dann ist das, was ist es? – GregGalloway

+0

@GregGalloway - In der Tat ist es JSON, aber mit einem C# Interface-Namen vorangestellt. Unser C# -Code schnüffelt, um zu wissen, in welchen Typ es zu deserialisieren ist. – Iain

+1

Haben Sie diesen Link gesehen? Ich habe nicht alle Antworten darauf, wie man dies automatisieren kann, um es täglich zu starten, oder die beste Möglichkeit, JSON in Spark zu parsen, aber dies scheint ein guter Ausgangspunkt für die Forschung zu sein und vielleicht können andere Kommentare kommentieren: https://azure.microsoft.com/de-de/documentation/articles/hdinsight-apache-funke-csharp-apache-zeppelin-eventhub-streaming/ – GregGalloway

Antwort

2

Sie event-hubs-capture zu einem Blob erfassen können.

+0

Oh OK - sie haben das Event Hubs Archive umbenannt, als sie es waren, jetzt ist es Event Hub Capture. Vielen Dank. – Iain

5

Sie könnten Ihren eigenen Worker-Prozess schreiben, um die Nachrichten von EventHub zu lesen und sie in BLOB-Speicher zu speichern. Sie müssen dies nicht in Echtzeit tun, da Nachrichten auf EH für die festgelegten Aufbewahrungstage verbleiben. Der Client, der den EH liest, ist verantwortlich für die Verwaltung, welche Nachrichten verarbeitet wurden, indem er die EH-Nachrichtenpartitid und den Offset verfolgt. Es gibt eine C# Bibliothek, die diese extrem einfach und skaliert sehr gut macht: https://azure.microsoft.com/en-us/documentation/articles/event-hubs-csharp-ephcs-getstarted/