Descripción
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
INSERT y SELECT.
byteses el valor predeterminado y se controla mediante la configuraciónoutput_format_avro_string_column_pattern
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-millistime-microsduration
Configuración de formato
Ejemplos
Lectura de datos en Avro
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
- Comenzar con
[A-Za-z_] - Estar seguidos únicamente de
[A-Za-z0-9_]
output_format_avro_codec y output_format_avro_sync_interval, respectivamente.
Inferir el esquema de Avro
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: