Apache Avro (Sérialisation basée sur les lignes)
Apache Avro est un format de sérialisation basé sur les lignes conçu pour les échanges de données et le stockage dans l'écosystème Hadoop. Il utilise JSON pour les définitions de schéma et un format binaire compact pour les données.
Type MIME
application/avro
Type
Binaire
Compression
Sans perte
Avantages
- + Schema evolution — add/remove fields without breaking readers
- + Compact binary encoding with efficient compression
- + Self-describing — schema embedded in the file
- + Standard in Kafka and the Hadoop ecosystem
Inconvénients
- − Row-based — less efficient than Parquet for analytical queries
- − Not human-readable in binary form
- − JSON schema specification has a learning curve
Quand utiliser .AVRO
Utilisez Avro pour les sujets Kafka, les pipelines de données Hadoop, la communication RPC entre services et lorsque l'évolution des schémas est importante. Préférez Parquet pour le stockage analytique.
Détails techniques
Avro utilise des schémas JSON définissant les types d'enregistrements avec des champs nommés et des valeurs par défaut pour l'évolution. Le format binaire utilise l'encodage variable-length avec l'écriture en blocs et une compression optionnelle (deflate, snappy). Le schéma est intégré dans les fichiers conteneurs.
Historique
Doug Cutting (créateur d'Hadoop) a développé Avro en 2009 comme un format de sérialisation compatible avec Hadoop qui prend en charge l'évolution des schémas. Il est devenu le format par défaut pour les sujets Apache Kafka et les pipelines d'ingestion de données.