bei weitem einfachste Option Azure-Stream schauen Sie in sollte, ist zu verwenden, Analytics, wie Sie es vorhaben. Aber ja, Sie müssen das XML in JSON oder ein anderes unterstütztes Format konvertieren, bevor Sie die Daten verwenden können.
Die anderen Optionen sind komplexer, erfordert Code und eine Möglichkeit, den Code zu hosten (z. B. mithilfe einer Worker-Rolle oder eines Web-Jobs), bietet aber die größte Flexibilität. Mit dieser Option können Sie mit EventProcessor
die Daten vom Event Hub lesen und in einer Datenbank speichern.
Informationen zum Einrichten finden Sie unter https://azure.microsoft.com/en-us/documentation/articles/event-hubs-csharp-ephcs-getstarted/.
Die Hauptarbeit ist in der Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable messages)
Methode erledigt. Basierend auf dem Beispiel wird es so etwas wie:
async Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
{
foreach (EventData eventData in messages)
{
string xmlData = Encoding.UTF8.GetString(eventData.GetBytes());
// Parse the xml and store the data in db using Ado.Net or whatever you're comfortable with
}
//Call checkpoint every 5 minutes, so that worker can resume processing from 5 minutes back if it restarts.
if (this.checkpointStopWatch.Elapsed > TimeSpan.FromMinutes(5))
{
await context.CheckpointAsync();
this.checkpointStopWatch.Restart();
}
}
Meine Datenbanken ist auf einer VM in der Cloud. Azure Stream Analytics verschiebt es nur in eine azure SQLdb und nicht, wenn es sich in einer VM in der Cloud befindet. – Aparna