2016-07-13 19 views
0

xml形式のデータが収集されています。何かのように見えるAzure Eventhub受信データをSQLデータベースに送信する方法

<OLDI_MODULE xmlns=""> 
<StStoHMI_IBE> 
<PRack>0</PRack> 
<PRackSlotNo>0</PRackSlotNo> 
<RChNo>0</RChNo> 
<RChSlotNo>0</RChSlotNo> 

このデータはAzure Eventhubに送信されます。私はこのデータをSQLデータベースに送りたいと思っていました。 Azure Stream Analyticsでこの入力を受け取り、SQLデータベースに格納するストリームを作成しました。しかし、入力ストリームに入力フォーマットが要求されると、JSON、CVS、Avroだけが存在します。どのフォーマットを使用できますか?または、私はEventHubからSQLデータベースにデータを移動するために紺色のサービスを使用する必要がありますか?

答えて

0

からデータを移動するためになるはずですAzureのリソースになり

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

をアナリティクスは意図したとおりに分析します。しかし、はい、データを使用する前にxmlをjsonまたは別のサポートされている形式に変換する必要があります。

他のオプションはより複雑で、コードやコードをホストする方法(たとえば、ワーカーロールやWebジョブなど)が必要ですが、最も柔軟性があります。そのオプションは、EventProcessorを使用してイベントハブからデータを読み取り、データベースに格納することです。

これを設定する方法については、https://azure.microsoft.com/en-us/documentation/articles/event-hubs-csharp-ephcs-getstarted/を参照してください。

主な作業は、Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable messages)メソッドで行われます。この例に基づいて、次のようになります。

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はAzure Event Hubで使用するのに適したデータフォーマットです。 Azure Event Hubでデータを受信すると、 Azure Stream Analyticsを使用して、データSQL DBを移動できます。

Azure Stream Analyticsは、入力、クエリ、および出力の3つの部分で構成されています。入力がイベントハブの場合、出力はSQL DBです。クエリーは、あなたが希望するフィールドを選択して出力するように記述する必要があります。

以下の記事チェックアウト:ストリームAnalyticsは、あなたが最も簡単なオプションは、Azureのストリームを使用することですはるかにすることにより、イベントのハブ

+0

私のdatabsesはクラウド内のVM上にあります。 Azureストリーム分析は、Azure SQLdbに移動するだけで、クラウド内のVM内には存在しません。 – Aparna

関連する問題