Tous les produits
Search
Centre de documentation

E-MapReduce:Iceberg

Dernière mise à jour :Aug 09, 2026

Iceberg est un format de table open source pour les lacs de données. Il permet le stockage sur HDFS ou Alibaba Cloud OSS et l'analyse via Spark, Flink, Hive et Presto.

Fonctionnalités principales

Apache Iceberg a initialement servi à migrer les entrepôts de données Hive vers le cloud. Il est depuis devenu le format de table standard pour les services de lac de données dans le cloud. Consultez le site web officiel d'Apache Iceberg pour plus de détails.

Iceberg offre les fonctionnalités suivantes :

  • Stockage économique dans un lac de données sur HDFS ou Object Storage Service (OSS).

  • Intégration transparente avec les moteurs de calcul open source pour l'ingestion et l'analyse.

  • Sémantique ACID complète.

  • Modifications des données au niveau des lignes.

  • Restauration des versions historiques.

  • Filtrage efficace des données.

  • Évolution du schéma.

  • Évolution de la disposition des partitions.

  • Partitionnement masqué.

Le tableau suivant compare trois architectures : ClickHouse open source (entrepôt de données en temps réel), Hive open source (entrepôt de données par lots) et Alibaba Cloud Iceberg (lac de données).

Critères de comparaison

Sous-élément

Entrepôt de données en temps réel ClickHouse open source

Entrepôt de données par lots Hive open source

Lac de données Alibaba Cloud Iceberg

Architecture système

Architecture

Calcul et stockage couplés

Calcul et stockage découplés

Calcul et stockage découplés

Prise en charge de plusieurs moteurs de calcul

Non pris en charge

Pris en charge

Pris en charge

Stockage des données sur le stockage d'objets

Non pris en charge

Partiellement pris en charge

Pris en charge

Stockage des données sur HDFS

Non pris en charge

Pris en charge

Pris en charge

Ouverture du format de stockage

Désactivé

Ouvert

Ouvert

Valeur métier

Fraîcheur des données

Secondes

Heures/Jours

Minutes

Flexibilité du calcul

Faible

Élevée

Élevée

Transactionnel

Non pris en charge

Incomplet

Pris en charge

Universalité de la sémantique au niveau des tables

Médiocre

Médiocre

Excellente

Modifications des données au niveau des lignes

Non pris en charge

Faiblement pris en charge

Pris en charge

Qualité des données

Très élevée

Élevée

Élevée

Coût de maintenance

Performance des requêtes

Élevée

Élevée

Élevée

Coût de stockage

Très élevé

Moyen

Faible

Libre-service

Non pris en charge

Non pris en charge

Pris en charge

Élasticité des ressources

Standard

Standard

Excellente

Comparaison avec Iceberg open source

Le tableau suivant compare Alibaba Cloud Iceberg et Iceberg open source selon les fonctionnalités de base, les modifications de données et les moteurs de calcul.

Remarque

√ indique que la fonctionnalité est prise en charge. x indique que la fonctionnalité n'est pas encore prise en charge.

Catégorie

Élément

Sous-élément

Iceberg open source

Iceberg Édition commerciale (Alibaba Cloud)

Fonctionnalités de base

ACID

N/A

Restauration des versions historiques

N/A

Intégration Source et Sink

Lot

Streaming

Filtrage efficace des données

N/A

Modifications de données

Évolution du schéma

N/A

Évolution des partitions

N/A

Mises à jour par copie lors de l'écriture

N/A

Mises à jour par fusion lors de la lecture

Lecture

Écriture

Compactage

x

x

Moteurs de calcul

Apache Spark

Lecture

Écriture

Apache Hive

Lecture

Écriture

Apache Flink

Lecture

Écriture

PrestoDB ou Trino

Lecture

Écriture

Langages de programmation

Java

N/A

Python

N/A

Fonctionnalités avancées

Intégration native avec Alibaba Cloud OSS

N/A

x

Intégration native avec Alibaba Cloud DLF

N/A

x

Accélération par cache de données local

N/A

x

Compactage automatique des petits fichiers

N/A

x

Remarque

Cette comparaison a été établie en septembre 2021 sur la base d'une analyse d'Iceberg open source et de l'édition commerciale d'Iceberg à cette date. La prise en charge des fonctionnalités peut évoluer avec les futures mises à jour.

Scénarios

Iceberg est un composant central des solutions de lac de données, adapté aux scénarios suivants.

Scénario

Description

Importation et requête de données en temps réel

Les flux de données amont alimentent le lac de données Iceberg en temps réel et sont immédiatement interrogeables. Par exemple, dans un scénario de journalisation, lancez une tâche de streaming Iceberg ou Spark pour écrire les journaux dans une table Iceberg. Interrogez ensuite les données avec Hive, Spark, Iceberg ou Presto. La prise en charge ACID garantit l'isolation entre l'ingestion et les requêtes, empêchant ainsi les lectures sales.

Suppression ou mise à jour de données

Les entrepôts de données traditionnels peinent à effectuer efficacement des suppressions ou des mises à jour au niveau des lignes. Ces opérations nécessitent généralement l'exécution d'une tâche par lots qui lit l'intégralité de la table d'origine, modifie les données et les réécrit. Iceberg réduit la portée des modifications du niveau de la table au niveau du fichier, permettant ainsi des mises à jour partielles efficaces.

Dans un lac de données Iceberg, vous pouvez modifier directement les données d'une table en exécutant une commande telle que DELETE FROM test_table WHERE id > 10.

Contrôle de la qualité des données

Utilisez la validation du schéma Iceberg pour écarter ou traiter davantage les données anormales lors de l'importation.

Évolution du schéma de données

Iceberg prend en charge les modifications de schéma via les instructions DDL Spark SQL sans réécriture des données historiques, ce qui accélère l'évolution.

La prise en charge ACID isole les modifications de schéma des tâches de lecture existantes, garantissant ainsi la cohérence des lectures tout au long du processus.

Apprentissage automatique en temps réel

Dans les workflows d'apprentissage automatique, le traitement des données (nettoyage, transformation, extraction de caractéristiques) occupe la majeure partie du temps. Iceberg unifie les données historiques et en temps réel en un seul flux fiable où chaque étape de traitement constitue un nœud du pipeline. Cela élimine la nécessité de chemins distincts pour le lot et le streaming. Iceberg fournit également un SDK Python natif pour les développeurs d'algorithmes.