Tous les produits
Search
Centre de documentation

E-MapReduce:Hudi

Dernière mise à jour :Aug 09, 2026

Apache Hudi est un format de stockage pour data lake qui prend en charge la mise à jour, la suppression et la consommation des données modifiées sur les systèmes de fichiers Hadoop.

Types de table Hudi

Hudi prend en charge les deux types de table suivants :

  • Copy On Write

    Stocke les données au format Parquet. Les mises à jour d'une table Copy On Write nécessitent une réécriture complète.

  • Merge On Read

    Stocke les données de base dans un format colonnaire (Parquet) et les données incrémentielles dans un format orienté ligne (Avro). Une opération de compaction fusionne périodiquement les données incrémentielles dans les fichiers colonnaires selon une politique configurable.

Le tableau suivant compare ces deux types de table.

Compromis

Copy On Write

Merge On Read

Latence des données

Élevée

Faible

Latence des requêtes

Faible

Élevée

Coût de mise à jour (E/S)

Élevé (réécrit l'intégralité du fichier Parquet)

Faible (ajoute aux journaux delta)

Taille des fichiers Parquet

Petite (surcharge élevée des E/S de mise à jour)

Grande (faible surcharge de mise à jour)

Amplification en écriture

Élevée (forte amplification en écriture)

Faible (dépend de la politique de fusion)

Types de requête Hudi

Hudi prend en charge les trois types de requête suivants :

  • Snapshot Queries

    Interroge les données à partir du dernier snapshot de validation. Pour une table Merge On Read, une requête snapshot fusionne les données colonnaires de base avec les données de journal en temps réel. Pour une table Copy On Write, une requête snapshot renvoie la dernière version des données Parquet.

    Les tables Copy On Write et Merge On Read prennent toutes deux en charge ce type de requête.

  • Incremental Queries

    Interroge les données écrites après une validation spécifique.

    Les tables Copy On Write et Merge On Read prennent toutes deux en charge ce type de requête.

  • Read Optimized Queries

    Renvoie les données compactées les plus récentes. Pour les tables Merge On Read, ce type de requête réduit la latence en ignorant la fusion en ligne des données de journal, au détriment de la fraîcheur des données.

Le tableau suivant compare les types de requête.

Compromis

Snapshot Queries

Read Optimized Queries

Latence des données

Faible

Élevée

Latence des requêtes

Élevée pour les tables Merge On Read

Faible

Scénarios

  • Ingestion de données en quasi-temps réel

    Hudi prend en charge les opérations d'insertion, de mise à jour et de suppression. Ingérez les données de journal provenant de services tels que Kafka et Simple Log Service (SLS) dans Hudi en temps réel. Hudi prend également en charge la synchronisation en temps réel des données modifiées issues des journaux binaires de base de données (binlog).

    Hudi optimise les petits fichiers générés lors des écritures de données, ce qui le rend plus efficace sur HDFS que les formats de fichier traditionnels.

  • Analyse des données en quasi-temps réel

    Hudi fonctionne avec plusieurs moteurs d'analyse, notamment Hive, Spark, Presto et Impala. En tant que format de fichier, Hudi ne nécessite aucun processus de service supplémentaire, ce qui le rend léger.

  • Traitement incrémentiel des données

    Hudi prend en charge les requêtes incrémentielles, qui vous permettent d'utiliser Spark Streaming pour récupérer les données modifiées après une validation spécifique et consommer les données changées depuis HDFS.