在 Azure 事件中心中浏览捕获的 Avro 文件

本文提供了 Azure 事件中心捕获的 Avro 文件的架构,以及一些用于浏览文件的工具。

架构

事件中心捕获生成的 Avro 文件具有以下 Avro 架构:

Image showing the schema of Avro files captured by Azure Event Hubs.

Azure 存储资源管理器

可以使用 Azure 存储资源管理器等工具验证捕获的文件是否已在 Azure 存储帐户中创建。 可以本地下载这些文件以进行处理。

浏览 Avro 文件的简单方法是使用 Apache 中的 Avro 工具 jar。 还可使用 Apache Spark 对引入的数据执行复杂的分布式处理。

使用 Apache Spark

Apache Spark 是“用于大规模数据处理的统一分析引擎”。它支持各种不同的语言(包括 SQL),并且可以轻松地访问 Azure Blob 存储。 有几个选项可用来在 Azure 中运行 Apache Spark,每个选项都可以轻松访问 Azure Blob 存储:

使用 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 提供了完整的快速入门指南。 还可以参阅事件中心捕获入门一文。

后续步骤

事件中心捕获是将数据加载到 Azure 最简单的方法。 使用 Azure Data Lake、Azure 数据工厂和 Azure HDInsight,可以执行批处理操作和其他分析,并且可以选择熟悉的工具和平台,以所需的任何规模执行。 若要详细了解此功能,请参阅以下文章。