Avro (Apache Avro)
Apache Avro est un format de stockage orienté ligne de conteneurs d'objets pour Hadoop, ainsi qu'un framework d'appel de procédures à distance (RPC, Remote Procedure Call) et de sérialisation de données. Hadoop est une infrastructure de programmation gratuite qui repose sur Java et qui prend en charge le traitement de jeux de données volumineux au sein d'environnements informatiques distribués. Avro est optimisé pour les opérations d'écriture et comprend un format filaire pour la communication entre les noeuds.
Avro assure la conversion entre des noeuds différents au moyen de la définition de données et de données permanentes sérialisées. Il utilise JSON (JavaScript Object Notation) pour définir les types de données et protocoles. Les données sont sérialisées dans un format binaire efficace et compact. Un fichier conteneur Avro se compose d'un en-tête et d'un ou plusieurs blocs de stockage de fichiers.
L'en-tête comporte les éléments suivants :
- 4 octets ASCII « OBJ1 » ;
- les métadonnées du fichier, y compris la définition de schéma ;
- un marqueur de synchronisation : 16 octets de code généré de façon aléatoire.
Avro comprend son propre langage de description d'interface (IDL, Interface Descriptor Language), également appelé Avro, qui permet, comme JSON, de définir des types de données et protocoles. Ce format est conçu pour faciliter son adoption par les utilisateurs habitués à des IDL plus traditionnels, avec une syntaxe similaire à C/C++.
Avro est un projet de haut niveau parrainé par l'Apache Software Foundation (ASF).