Skip to main content

Description

Apache Avro est un format de sérialisation orienté lignes qui utilise un encodage binaire pour traiter efficacement les données. Le format 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

Le tableau ci-dessous indique tous les types de données pris en charge par le format Apache Avro, ainsi que les types de données ClickHouse correspondants dans les requêtes INSERT et SELECT. ** Le type Variant accepte implicitement 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-millis
  • time-micros
  • duration

Paramètres du format

Exemples

Lecture de données Avro

Pour lire des données à partir d’un fichier Avro dans une table ClickHouse :
Le schéma racine du fichier Avro ingéré doit être de type 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

Pour écrire des données d’une table ClickHouse dans un fichier Avro :
Les noms de colonnes doivent :
  • Commencer par [A-Za-z_]
  • Être suivis uniquement de [A-Za-z0-9_]
La compression de sortie et l’intervalle de synchronisation des fichiers Avro peuvent être configurés respectivement à l’aide des paramètres output_format_avro_codec et output_format_avro_sync_interval.

Inférer le schéma Avro

À l’aide de la fonction ClickHouse 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 :
Dernière modification le 14 août 2026