この記事では、Azure Event Hubs によってキャプチャされた Avro ファイルのスキーマと、これらのファイルを操作するためのいくつかのツールについて説明します。
スキーマ
Event Hubs Capture によって生成された Avro ファイルには、次の 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 への容易なアクセスを提供します。
- HDInsight: Azure Storage 内のファイルのアドレス指定
- Azure Databricks: Azure BLOB ストレージ。 次の例を参照してください: Event Hubs Capture を使用した大規模なストリーミング。
- Azure Kubernetes Service
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 には、Java と Python 向けの完全な入門ガイドが用意されています。 Event Hubs Capture の概要に関する記事を読むこともできます。
次のステップ
Event Hubs Capture は Azure にデータを取得する最も簡単な方法です。 Azure Data Lake、Azure Data Factory、Azure HDInsight を利用することで、使い慣れたツールとプラットフォームを使用して、必要なスケールでバッチ処理やその他の分析を実行できます。 この機能の詳細については、次の記事を参照してください。