Description
Avro prend en charge la lecture et l’écriture des fichiers de données Avro. Ce format requiert des messages auto-descriptifs avec un schéma intégré. Si vous utilisez Avro avec un registre de schémas, consultez le format AvroConfluent.
Correspondance des types de données
INSERT et SELECT.
bytesest la valeur par défaut, contrôlée par le paramètreoutput_format_avro_string_column_pattern
null comme valeur de champ. Ainsi, par exemple, le union(T1, T2, null) d’Avro sera converti en Variant(T1, T2).
Par conséquent, lors de la génération d’Avro à partir de ClickHouse, nous devons toujours inclure le type null dans l’ensemble des types du union Avro, car nous ne savons pas, lors de l’inférence du schéma, si une valeur est effectivement null.
*** Types logiques Avro
Types de données logiques Avro non pris en charge :
time-millistime-microsduration
Paramètres du format
Exemples
Lecture de données Avro
record.
Pour établir la correspondance entre les colonnes de la table et les champs du schéma Avro, ClickHouse compare leurs noms.
Cette comparaison est sensible à la casse, et les champs inutilisés sont ignorés.
Les types de données des colonnes de la table ClickHouse peuvent différer de ceux des champs correspondants dans les données Avro insérées. Lors de l’insertion des données, ClickHouse interprète les types de données conformément au tableau ci-dessus, puis convertit les données dans le type de colonne correspondant.
Lors de l’importation des données, si un champ est introuvable dans le schéma et que le paramètre input_format_avro_allow_missing_fields est activé, la valeur par défaut est utilisée au lieu de générer une erreur.
Écrire des données Avro
- Commencer par
[A-Za-z_] - Être suivis uniquement de
[A-Za-z0-9_]
output_format_avro_codec et output_format_avro_sync_interval.
Inférer le schéma Avro
DESCRIBE, vous pouvez afficher rapidement le format inféré d’un fichier Avro, comme dans l’exemple suivant.
Cet exemple inclut l’URL d’un fichier Avro accessible au public dans le bucket public S3 de ClickHouse :