在 Azure 事件中樞探索擷取的 Avro 檔案
本文提供 Azure 事件中樞所擷取的 Avro 檔案架構,以及用來探索檔案的一些工具。
結構描述
事件中樞擷取所產生的 Avro 檔案會有下列 Avro 結構描述︰
Azure 儲存體總管
您可以使用 Azure 儲存體總管等工具來驗證擷取的檔案是在 Azure 儲存體帳戶中建立的。 您可以在本機下載檔案,以對其進行處理。
瀏覽 Avro 檔案的簡易方式是使用 Apache 所提供的 Avro Tools jar。 您也可以使用 Apache Spark 來對內嵌的資料執行複雜的分散式處理。
使用 Apache Spark
Apache Spark 是「進行大規模資料處理的整合分析引擎」。它支援不同的語言 (包括 SQL),而且可以輕鬆地存取 Azure Blob 儲存體。 有幾種選項可以在 Azure 中執行 Apache Spark,每種都可供輕鬆存取 Azure Blob 儲存體:
- HDInsight:定址 Azure 儲存體中的檔案
- Azure Databricks:Azure Blob 儲存體。 請參閱下列範例:使用事件中樞擷取進行大規模串流。
- Azure Kubernetes Service
使用 Avro Tools
Avro Tools 是以 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 Tools 將檔案轉換成 JSON 格式,並執行其他處理。
若要執行更進階的處理,請下載並安裝您所選平台適用的 Avro。 在本文撰寫當下,已有適用於 C、C++、C#、Java、NodeJS、Perl、PHP、Python 和 Ruby 的實作。
Apache Avro 有提供適用於 Java 和 Python 的完整使用者入門指南。 您也可以閱讀開始使用事件中樞擷取一文。
下一步
事件中樞擷取是將資料載入 Azure 中最簡單的方式。 使用 Azure Data Lake、Azure Data Factory 和 Azure HDInsight,即可使用您選擇的工具和平台,以您需要的規模執行批次處理和其他分析。 若要深入了解此功能,請參閱下列文章。