Skip to main content

Descripción

Apache Avro es un formato de serialización orientado a filas que utiliza codificación binaria para procesar datos de forma eficiente. El formato Avro permite leer y escribir archivos de datos de Avro. Este formato espera mensajes autodescriptivos con un esquema integrado. Si utiliza Avro con un registro de esquemas, consulte el formato AvroConfluent.

Correspondencia de tipos de datos

La siguiente tabla muestra todos los tipos de datos admitidos por el formato Apache Avro y sus correspondientes tipos de datos de ClickHouse en las consultas INSERT y SELECT. ** El tipo Variant acepta implícitamente null como valor de un campo, por lo que, por ejemplo, union(T1, T2, null) de Avro se convertirá en Variant(T1, T2). Como resultado, al generar Avro desde ClickHouse, siempre tenemos que incluir el tipo null en el conjunto de tipos de union de Avro, ya que durante la inferencia del esquema no sabemos si algún valor es realmente null. *** Tipos lógicos de Avro Tipos de datos lógicos de Avro no compatibles:
  • time-millis
  • time-micros
  • duration

Configuración de formato

Ejemplos

Lectura de datos en Avro

Para leer datos desde un archivo Avro en una tabla de ClickHouse:
El esquema raíz del archivo Avro ingerido debe ser de tipo record. Para determinar la correspondencia entre las columnas de la tabla y los campos del esquema Avro, ClickHouse compara sus nombres. Esta comparación distingue entre mayúsculas y minúsculas, y los campos no utilizados se omiten. Los tipos de datos de las columnas de la tabla de ClickHouse pueden diferir de los de los campos correspondientes en los datos Avro insertados. Al insertar datos, ClickHouse interpreta los tipos de datos según la tabla anterior y luego convierte los datos al tipo de columna correspondiente. Al importar datos, si no se encuentra un campo en el esquema y la configuración input_format_avro_allow_missing_fields está habilitada, se utilizará el valor predeterminado en lugar de generar un error.

Escritura de datos en Avro

Para escribir datos de una tabla de ClickHouse en un archivo Avro:
Los nombres de las columnas deben:
  • Comenzar con [A-Za-z_]
  • Estar seguidos únicamente de [A-Za-z0-9_]
La compresión de salida y el intervalo de sincronización de los archivos Avro pueden configurarse mediante las opciones output_format_avro_codec y output_format_avro_sync_interval, respectivamente.

Inferir el esquema de Avro

Con la función DESCRIBE de ClickHouse, puede ver rápidamente el formato inferido de un archivo Avro, como en el siguiente ejemplo. Este ejemplo incluye la URL de un archivo Avro disponible públicamente en el bucket público de S3 de ClickHouse:
Última modificación el 14 de agosto de 2026