2016-07-13 4 views
0

Ich habe einige Daten gesammelt, die in einem XML-Format ist. Etwas, das wie folgt aussiehtIn Azure Eventhub wie eingehende Daten an eine SQL-Datenbank gesendet werden

Diese Daten werden an Azure Eventhub gesendet. Ich wollte diese Daten an eine SQL-Datenbank senden. Ich habe in Azure Stream Analytics einen Stream erstellt, der diese Eingaben übernimmt und in einer SQL-Datenbank ablegt. Wenn das Eingabeformat jedoch nach dem Eingabestream gefragt wird, gibt es nur JSON, CVS und Avro. Welches dieser Formate kann ich verwenden? Oder welchen der azurblauen Dienste sollte ich verwenden, um Daten von Eventhub in die SQL-Datenbank zu verschieben?

Antwort

0

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(); 
    } 
} 
0

JSON wäre ein gutes Datenformat für die Verwendung in Azure Event Hub. Sobald Sie die Daten in Azure Event Hub erhalten haben. Sie können Azure Stream Analytics verwenden, um die Daten-SQL-DB zu verschieben.

Azure Stream Analytics besteht aus 3 Teilen: Eingabe, Abfrage und Ausgabe. Wenn Eingabe der Ereignis-Hub ist, ist Ausgabe die SQL DB. Die Abfrage sollte von Ihnen geschrieben werden, um die gewünschten Felder auszuwählen und auszugeben.

Überprüfen Sie die folgenden Artikel aus:

https://azure.microsoft.com/en-us/documentation/articles/stream-analytics-define-outputs/

Stream-Analytics Azure Ressource würden Sie die Daten von Event-Hub zum Bewegen

+0

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

Verwandte Themen