apache avro


Avro es un marco de serialización de datos y llamada a procedimiento remoto orientado a filas desarrollado dentro del proyecto Hadoop de Apache . Utiliza JSON para definir tipos de datos y protocolos , y serializa datos en un formato binario compacto. Su uso principal es en Apache Hadoop , donde puede proporcionar tanto un formato de serialización para datos persistentes como un formato de conexión para la comunicación entre los nodos de Hadoop y desde los programas cliente a los servicios de Hadoop. . Avro utiliza un esquema para estructurar los datos que se codifican. Tiene dos tipos diferentes de lenguajes de esquema; uno para edición humana (Avro IDL) y otro que es más legible por máquina basado en JSON. [3]

Es similar a Thrift y Protocol Buffers , pero no requiere ejecutar un programa de generación de código cuando cambia un esquema (a menos que se desee para lenguajes de tipado estático ).

Para los bloques de datos, Avro especifica dos codificaciones de serialización: [6] binario y JSON. La mayoría de las aplicaciones usarán la codificación binaria, ya que es más pequeña y rápida. Para aplicaciones de depuración y basadas en web, la codificación JSON a veces puede ser adecuada.

Los esquemas de Avro se definen mediante JSON. Los esquemas se componen de tipos primitivos (null, boolean, int, long, float, double, bytes y string) y tipos complejos (record, enum, array, map, union y fixed). [7]

Los datos en Avro pueden almacenarse con su esquema correspondiente, lo que significa que un elemento serializado se puede leer sin conocer el esquema de antemano.

El archivo "users.avro" contendrá el esquema en JSON y una representación binaria compacta [9] de los datos: