Todos los productos
Search
Centro de documentos

E-MapReduce:Descripción general de Iceberg

Última actualización: Sep 04, 2026

Iceberg es un formato de tabla abierto para lagos de datos que permite el almacenamiento en HDFS o Alibaba Cloud OSS y su análisis mediante Spark, Flink, Hive y Presto.

Capacidades principales

Apache Iceberg surgió como una solución para migrar almacenes de datos de Hive a la nube y desde entonces se ha convertido en el formato de tabla estándar para servicios de lagos de datos basados en la nube. Visite el sitio web oficial de Apache Iceberg para obtener más detalles.

Iceberg ofrece las siguientes capacidades:

  • Almacenamiento de bajo costo para lagos de datos en HDFS u Object Storage Service (OSS).

  • Integración fluida con motores de cómputo de código abierto para la ingesta y el análisis.

  • Semántica ACID completa.

  • Cambios de datos a nivel de fila.

  • Reversiones a versiones históricas.

  • Filtrado eficiente de datos.

  • Evolución de esquema.

  • Evolución del diseño de particiones.

  • Particionamiento oculto.

A continuación se comparan tres arquitecturas: ClickHouse de código abierto (almacén de datos en tiempo real), Hive de código abierto (almacén de datos sin conexión) e Iceberg de Alibaba Cloud (lago de datos).

Criterio de comparación

Subelemento

Almacén de datos en tiempo real ClickHouse de código abierto

Almacén de datos sin conexión Hive de código abierto

Lago de datos Iceberg de Alibaba Cloud

Arquitectura del sistema

Arquitectura

Cómputo y almacenamiento acoplados

Cómputo y almacenamiento desacoplados

Cómputo y almacenamiento desacoplados

Compatibilidad con varios motores de cómputo

No compatible

Compatible

Compatible

Almacenamiento de datos en object storage

No compatible

Parcialmente compatible

Compatible

Almacenamiento de datos en HDFS

No compatible

Compatible

Compatible

Apertura del formato de almacenamiento

Deshabilitado

Abierto

Abierto

Valor empresarial

Oportunidad

Segundos

Horas/días

Minutos

Flexibilidad de cómputo

Baja

Alta

Alta

Transaccionalidad

No compatible

Incompleta

Compatible

Universalidad de la semántica a nivel de tabla

Deficiente

Deficiente

Excelente

Cambios de datos a nivel de fila

No compatible

Compatible de forma limitada

Compatible

Calidad de los datos

Muy alta

Alta

Alta

Costo de mantenimiento

Rendimiento de consultas

Alto

Alto

Alto

Costo de almacenamiento

Muy alto

Medio

Bajo

Autoservicio

No compatible

No compatible

Compatible

Elasticidad de recursos

General

General

Excelente

Comparación con Iceberg de código abierto

La siguiente tabla compara Iceberg de Alibaba Cloud con Iceberg de código abierto en cuanto a funciones básicas, cambios de datos y motores de cómputo.

Nota

√ indica que la función es compatible. x indica que la función aún no es compatible.

Categoría

Elemento

Subelemento

Iceberg de código abierto

Edición comercial de Iceberg (Alibaba Cloud)

Funciones básicas

ACID

N/D

√

√

Reversiones a versiones históricas

N/D

√

√

Integración de origen y destino

Por lotes

√

√

Streaming

√

√

Filtrado eficiente de datos

N/D

√

√

Cambios de datos

Evolución de esquema

N/D

√

√

Evolución de particiones

N/D

√

√

Actualizaciones copy-on-write

N/D

√

√

Actualizaciones merge-on-read

Lectura

√

√

Escritura

√

√

Compactación

x

x

Motores de cómputo

Apache Spark

Lectura

√

√

Escritura

√

√

Apache Hive

Lectura

√

√

Escritura

√

√

Apache Flink

Lectura

√

√

Escritura

√

√

PrestoDB o Trino

Lectura

√

√

Escritura

√

√

Lenguajes de programación

Java

N/D

√

√

Python

N/D

√

√

Funciones avanzadas

Integración nativa con Alibaba Cloud OSS

N/D

x

√

Integración nativa con Alibaba Cloud DLF

N/D

x

√

Aceleración mediante caché de datos local

N/D

x

√

Compactación automática de archivos pequeños

N/D

x

√

Nota

Esta comparación se elaboró en septiembre de 2021 con base en un análisis de Iceberg de código abierto y la edición comercial de Iceberg disponibles en ese momento. La compatibilidad con las funciones puede cambiar en futuras actualizaciones de versión.

Escenarios

Iceberg es un componente fundamental en las soluciones de lagos de datos y resulta adecuado para los siguientes escenarios.

Escenario

Descripción

Importación y consulta de datos en tiempo real

Los flujos de datos upstream ingresan al lago de datos Iceberg en tiempo real y están disponibles para consulta de inmediato. Por ejemplo, en un escenario de registros, inicie un trabajo de streaming de Iceberg o Spark para escribir los registros en una tabla de Iceberg. Posteriormente, consulte los datos con Hive, Spark, Iceberg o Presto. La compatibilidad con ACID garantiza el aislamiento entre la ingesta y las consultas, lo que evita lecturas sucias.

Eliminación o actualización de datos

Los almacenes de datos tradicionales tienen dificultades para ejecutar eliminaciones o actualizaciones a nivel de fila de manera eficiente. Estas operaciones suelen requerir la ejecución de un trabajo sin conexión que lee toda la tabla original, modifica los datos y los vuelve a escribir. Iceberg reduce el alcance de los cambios del nivel de tabla al nivel de archivo, lo que permite actualizaciones parciales eficientes.

En un lago de datos Iceberg, puede modificar directamente los datos de una tabla mediante la ejecución de un comando como DELETE FROM test_table WHERE id > 10.

Control de calidad de datos

Utilice la validación de esquemas de Iceberg para descartar o procesar adicionalmente los datos anómalos durante la importación.

Evolución del esquema de datos

Iceberg admite cambios de esquema mediante instrucciones DDL de Spark SQL sin necesidad de reescribir los datos históricos, lo que agiliza la evolución.

La compatibilidad con ACID aísla los cambios de esquema de los trabajos de lectura existentes y garantiza lecturas consistentes durante todo el proceso.

Aprendizaje automático en tiempo real

En los flujos de trabajo de aprendizaje automático, el procesamiento de datos (limpieza, transformación y extracción de características) consume la mayor parte del tiempo. Iceberg unifica los datos históricos y en tiempo real en un solo flujo confiable, donde cada paso de procesamiento constituye un nodo en la canalización. Esto elimina la necesidad de rutas separadas para lotes y streaming. Además, Iceberg proporciona un SDK nativo de Python para los desarrolladores de algoritmos.