À propos du projet

Apache Hudi (Hadoop Upserts Deletes and Incrementals) est une plateforme de data lakehouse open source construite autour d'un format de table ouvert haute performance. Elle permet aux organisations d'ingérer, d'indexer, de stocker, de servir, de transformer et de gérer des données dans plusieurs environnements de données cloud tout en conservant les données dans des formats ouverts sur le stockage cloud. Les capacités clés incluent : **Ingestion** : Outils intégrés pour les utilisateurs d'Apache Spark et d'Apache Flink, prenant en charge une demi-douzaine de formats de fichiers, les journaux de modifications de bases de données et les systèmes de données en streaming. Inclut un connecteur Kafka Connect pour intégrer des sources de données externes. **Stockage** : Format de stockage optimisé prenant en charge les données en lignes et en colonnes. Comprend des métadonnées de timeline pour suivre l'historique des modifications, la gestion automatique de la taille et de la disposition des fichiers à l'aide de statistiques, des points de sauvegarde pour le versionnage et la récupération des données, ainsi que le suivi des schémas avec évolution. **Indexation** : Sous-système d'indexation évolutif qui accélère les requêtes snapshot, maintenu automatiquement par les écritures. Suit les listes de fichiers, les statistiques au niveau des colonnes et des partitions pour une planification efficace des requêtes. Fournit une indexation au niveau des enregistrements via des formats de fichiers orientés lignes et des filtres de Bloom, ainsi qu'un partitionnement logique utilisant des index d'expression découplés du partitionnement physique du stockage. **Écriture** : Commits atomiques avec prise en charge de l'annulation/restauration. Opérations upsert/delete rapides exploitant les index au niveau des enregistrements. Isolation snapshot entre les rédacteurs et les requêtes. Offre à la fois un contrôle de concurrence optimiste (Read-Modify-Write pour le modèle de données relationnel) et un contrôle de concurrence non bloquant (modèle de données en streaming avec gestion des données hors ordre/en retard). **Requêtes** : Plusieurs types de requêtes sur une seule table : Snapshot Query (dernier état commité), Incremental Query (modifications depuis un point dans le temps), Change-Data-Capture Query (flux de modifications avec images avant/après), Time-Travel Query (table à un instant donné) et Read Optimized Query (performances de stockage en colonnes via la compaction). **Gestion des tables** : Services de table automatiques et sans intervention intégrés aux rédacteurs Spark/Flink ou exploités indépendamment. Planification configurable avec gestion des échecs. Nettoyage et gestion TTL pour la récupération de l'espace de stockage. Algorithmes de clustering et de courbes remplissant l'espace pour l'optimisation de la disposition des données. Compaction asynchrone des données orientées lignes vers des formats en colonnes. Construction d'index cohérente pendant les opérations en cours. Synchronisation du catalogue avec Hive Metastore, AWS Glue, Google BigQuery, Apache XTable, et plus encore. Hudi prend en charge la construction avec plusieurs versions de Spark (3.3 à 4.2) et de Flink (1.18 à 2.2), avec des options Scala 2.12/2.13. Le projet utilise Maven pour les builds et fournit des profils de test complets (unitaires, fonctionnels, d'intégration).