Azure Event Hubs でキャプチャされた Avro ファイルの操作

この記事では、Azure Event Hubs によってキャプチャされた Avro ファイルのスキーマと、これらのファイルを操作するためのいくつかのツールについて説明します。

スキーマ

Event Hubs Capture によって生成された Avro ファイルには、次の Avro スキーマがあります。

Azure Event Hubs によってキャプチャされた Avro ファイルのスキーマを示す画像。

Azure ストレージ エクスプローラー

キャプチャされたファイルが Azure Storage アカウントに作成されたことを確認するには、Azure Storage Explorer などのツールを使用します。 また、ローカルにファイルをダウンロードして操作することができます。

Avro ファイルを調べるには、Apache の Avro Tools jar を使うと簡単です。 また、Apache Spark を使用して、取り込まれたデータに対する複雑な分散処理を実行することもできます。

Apache Spark を使用する

Apache Spark は、"大規模なデータ処理のための統合された分析エンジンです。" さまざまな言語 (SQL を含む) がサポートされ、Azure Blob Storage に容易にアクセスできます。 Azure で Apache Spark を実行するにはいくつかのオプションがあり、いずれも Azure Blob Storage への容易なアクセスを提供します。

Avro ツールを使用する

Avro ツールは、jar パッケージとして入手できます。 この jar ファイルをダウンロードしたら、次のコマンドを実行することによって、特定の Avro ファイルのスキーマを表示できます。

java -jar avro-tools-1.9.1.jar getschema <name of capture file>

このコマンドによって次の情報が返されます。

{

    "type":"record",
    "name":"EventData",
    "namespace":"Microsoft.ServiceBus.Messaging",
    "fields":[
                 {"name":"SequenceNumber","type":"long"},
                 {"name":"Offset","type":"string"},
                 {"name":"EnqueuedTimeUtc","type":"string"},
                 {"name":"SystemProperties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Properties","type":{"type":"map","values":["long","double","string","bytes"]}},
                 {"name":"Body","type":["null","bytes"]}
             ]
}

また、Avro ツールを使用してファイルを JSON 形式に変換し、その他の処理を実行することもできます。

より高度な処理を実行するには、お好みのプラットフォーム用の Avro をダウンロードしてインストールしてください。 この記事の執筆時点では、C、C++、C#、Java、NodeJS、Perl、PHP、Python、Ruby 向けの実装があります。

Apache Avro には、JavaPython 向けの完全な入門ガイドが用意されています。 Event Hubs Capture の概要に関する記事を読むこともできます。

次のステップ

Event Hubs Capture は Azure にデータを取得する最も簡単な方法です。 Azure Data Lake、Azure Data Factory、Azure HDInsight を利用することで、使い慣れたツールとプラットフォームを使用して、必要なスケールでバッチ処理やその他の分析を実行できます。 この機能の詳細については、次の記事を参照してください。