Techno - C’est quoi Apache Hudi ?

Techno - C’est quoi Apache Hudi ?

Date de sortie
July 18, 2024
Auteur
Bertrand Fabre

Aujourd’hui, je vous présente l’outil Apache Hudi.

Présentation

Apache Hudi apporte des fonctionnalités de bases de données et de Data Warehousing aux Data Lake.

C’est-à-dire qu’il va travailler à unifier le stockage, la gestion et le requêtage des données avec SQL, HiveQL, Java ou Spark SQL.

Son nom provient de Hadoop Upserts and Incrementals.

J’ai noté plusieurs fonctionnalités intéressantes pour Apache Hudi.

ACID

Les propriétés ACID sont supportées par Apache Hudi : atomicité, cohérence, isolation, durabilité.

Pour plus de détails, je vous invite à lire mon article : “C’est quoi un modèle de transactions ACID ?”.

Copy-On-Write (COW)

Cette fonctionnalité permet d’écrire des fichiers en colonne (parquet) de manière versionnée.

Cela permet de gérer plus facilement les mises à jour et les suppressions sans avoir besoin de réécrire les fichiers.

Merge-On-Read (MOR)

Approche adaptée pour du stockage en colonne (parquet) et en ligne (Avro).

Il y a plusieurs phases :

  • L’initialisation : écrire des nouvelles données dans des fichiers de bases ;
  • Les modifications : toutes les modifications, mise à jour, insertion ou suppression, sont enregistrés dans des journaux, les Delta Logs ;
  • Le lecture : lors d’une requête, Apache Hudi fusionne les fichiers de bases et les Delta Logs afin de retourner la vue actuelle des données.

Time-travel

Permet de requêter une table à un point temporel précis pour, entre autres, l’audit.

Schémas évolutifs

Il est possible de changer les schémas de tables.

Multi-outils et plateformes

Hudi s’intégrer avec Apache Spark, BigQuery, Presta, dbt, Hive et bien d’autres.

Qualité et validation des données

Possibilité de définir des conditions de qualité des données à vérifier et à appliquer en pré-commit.

Traitement incrémental des nouvelles données

Cette fonctionnalité permet de ne récupérer que les données qui ont été modifié lors d’une période de temps définie.

Cela évite de devoir lire et traiter toute la table.

Il y a tellement de choses à dire sur Apache Hudi mais il faut bien s’arrêter. A vos recherches !

Merci de votre lecture !