Avro是一个数据序列化的系统,它可以提供:
1 丰富的数据结构类型
2 快速可压缩的二进制数据形式
3 存储持久数据的文件容器
4 远程过程调用RPC
5 简单的动态语言结合功能,Avro和动态语言结合后,读写数据文件和使用RPC协议都不需要生成代码,而代码生成作为一种可选的优化只值得在静态类型语言中实现。
Avro依赖于模式(Schema)。Avro数据的读写操作是很频繁的,而这些操作都需要使用模式,这样就减少写入每个数据资料的开销,使得序列化快速而又轻巧。这种数据及其模式的自我描述方便于动态脚本语言的使用。
当Avro数据存储到文件中时,它的模式也随之存储,这样任何程序都可以对文件进行处理。如果需要以不同的模式读取数据,这也很容易解决,因为两个模式都是已知的。
当在RPC中使用Avro时,服务器和客户端可以在握手连接时交换模式。服务器和客户端有着彼此全部的模式,因此相同命名字段、缺失字段和多余字段等信息之间通信中需要解决的一致性问题就可以容易解决
还有,Avro模式是用JSON(一种轻量级的数据交换模式)定义的,这样对于已经拥有JSON库的语言可以容易实现。
Avro提供着与诸如Thrift和Protocol Buffers等系统相似的功能,但是在一些基础方面还是有区别的,主要是:
1 动态类型:Avro并不需要生成代码,模式和数据存放在一起,而模式使得整个数据的处理过程并不生成代码、静态数据类型等等。这方便了数据处理系统和语言的构造。
2 未标记的数据:由于读取数据的时候模式是已知的,那么需要和数据一起编码的类型信息就很少了,这样序列化的规模也就小了。
3 不需要用户指定字段号:即使模式改变,处理数据时新旧模式都是已知的,所以通过使用字段名称可以解决差异问题。
分享到:
相关推荐
赠送jar包:parquet-avro-1.10.0.jar; 赠送原API文档:parquet-avro-1.10.0-javadoc.jar; 赠送源代码:parquet-avro-1.10.0-sources.jar; 赠送Maven依赖信息文件:parquet-avro-1.10.0.pom; 包含翻译后的API文档...
赠送jar包:flink-avro-1.10.0.jar; 赠送原API文档:flink-avro-1.10.0-javadoc.jar; 赠送源代码:flink-avro-1.10.0-sources.jar; 赠送Maven依赖信息文件:flink-avro-1.10.0.pom; 包含翻译后的API文档:flink-...
Avro工具jar包是Avro的一部分,主要用于处理Avro格式的数据,包括编译Avro模式,转换数据,以及合并或拆分Avro文件等。在这个版本1.8.2中,它已经被验证为功能正常且可直接从Maven官方库免费获取。 首先,让我们...
**Avro C API接口库接口调用示例详解** Avro是一种数据序列化系统,它设计用于高效地处理大量数据,特别是在分布式计算环境中。Avro提供了多种语言的API,包括C,使得开发者能够轻松地在C应用程序中使用Avro数据...
Avro是Apache Hadoop项目的一部分,它是一种高效的数据序列化系统,被广泛应用于大数据处理和分布式计算领域。作为Hadoop开发基础知识的重要组成部分,理解并掌握Avro对于开发高效率、可扩展的分布式应用至关重要。 ...
《深入理解Avro工具与Java应用:以avro-tools-1.8.2.jar为例》 在大数据处理领域,Avro扮演着至关重要的角色。它是由Apache Hadoop项目开发的一种数据序列化系统,旨在提高数据交换的效率和便利性。本文将详细探讨...
赠送jar包:avro-1.8.2.jar; 赠送原API文档:avro-1.8.2-javadoc.jar; 赠送源代码:avro-1.8.2-sources.jar; 赠送Maven依赖信息文件:avro-1.8.2.pom; 包含翻译后的API文档:avro-1.8.2-javadoc-API文档-中文...
赠送jar包:avro-1.10.0.jar; 赠送原API文档:avro-1.10.0-javadoc.jar; 赠送源代码:avro-1.10.0-sources.jar; 赠送Maven依赖信息文件:avro-1.10.0.pom; 包含翻译后的API文档:avro-1.10.0-javadoc-API文档-...
这是一个关于avro的1.8.2版本的avro-tools-1.8.2的jar包
Java读写Avro所需Jar是Java开发者在处理Avro数据时必须依赖的库文件。Avro是由Apache Hadoop项目开发的一个数据序列化系统,它的设计目标是提供高效的、跨语言的数据交换方式。在这个场景中,"avro-1.7.7.jar" 和 ...
赠送jar包:avro-1.11.0.jar; 赠送原API文档:avro-1.11.0-javadoc.jar; 赠送源代码:avro-1.11.0-sources.jar; 赠送Maven依赖信息文件:avro-1.11.0.pom; 包含翻译后的API文档:avro-1.11.0-javadoc-API文档-...
这是关于avro的avro-1.8.1版本的avro-tools的一个jar包
赠送jar包:avro-1.8.2.jar; 赠送原API文档:avro-1.8.2-javadoc.jar; 赠送源代码:avro-1.8.2-sources.jar; 赠送Maven依赖信息文件:avro-1.8.2.pom; 包含翻译后的API文档:avro-1.8.2-javadoc-API文档-中文...
赠送jar包:avro-1.10.0.jar; 赠送原API文档:avro-1.10.0-javadoc.jar; 赠送源代码:avro-1.10.0-sources.jar; 赠送Maven依赖信息文件:avro-1.10.0.pom; 包含翻译后的API文档:avro-1.10.0-javadoc-API文档-...
Avro是一种高效的序列化框架,由Apache开发,广泛应用于大数据处理和存储。它提供了一种紧凑、快速且可跨语言的数据交换格式,使得不同编程语言之间的数据交换变得简单。在Linux环境中,C++开发者通常会使用Avro的...
赠送jar包:avro-ipc-1.8.2.jar; 赠送原API文档:avro-ipc-1.8.2-javadoc.jar; 赠送源代码:avro-ipc-1.8.2-sources.jar; 赠送Maven依赖信息文件:avro-ipc-1.8.2.pom; 包含翻译后的API文档:avro-ipc-1.8.2-...
**Avro RPC简介** Avro是Hadoop生态系统中的一个关键组件,由Apache软件基金会开发,主要用作数据序列化系统。它提供了一种高效的、语言无关的、版本化的数据序列化机制,使得不同编程语言之间可以方便地交换数据。...
Apache Avro是一个数据序列化系统,用于支持丰富的数据结构,支持快速的序列化和反序列化,并具有跨语言能力。Avro Schema是Avro系统用于定义数据结构的一种方式,它能够描述复杂的数据类型,并为数据序列化提供明确...
标题中的"avro_sample.rar"表明这是一个关于Avro的示例项目,Avro是一种数据序列化系统,由Apache Hadoop项目开发。它被设计用来高效地处理和交换各种语言之间的数据。Avro提供了丰富的数据模式定义,允许在不同的...
赠送jar包:avro-1.7.4.jar; 赠送原API文档:avro-1.7.4-javadoc.jar; 赠送源代码:avro-1.7.4-sources.jar; 赠送Maven依赖信息文件:avro-1.7.4.pom; 包含翻译后的API文档:avro-1.7.4-javadoc-API文档-中文...