Cómo funciona Iceberg - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo funciona Iceberg

Iceberg rastrea los archivos de datos individuales en una tabla en lugar de directorios. De esta forma, los escritores pueden crear archivos de datos in situ (los archivos no se mueven ni se modifican). Además, los escritores solo pueden agregar archivos a la tabla mediante una confirmación explícita. El estado de la tabla se mantiene en los archivos de metadatos. Todos los cambios en el estado de la tabla crean un nuevo archivo de metadatos que reemplaza atómicamente a los metadatos anteriores. El archivo de metadatos de la tabla rastrea el esquema de la tabla, la configuración de las particiones y otras propiedades.

También incluye instantáneas del contenido de la tabla. Cada instantánea es un conjunto completo de archivos de datos de la tabla en un momento dado. Las instantáneas se muestran en el archivo de metadatos, pero los archivos de una instantánea se almacenan en archivos de manifiesto independientes. Las transiciones atómicas de un archivo de metadatos de una tabla al siguiente aíslan las instantáneas. Los lectores utilizan la instantánea que estaba actualizada cuando cargaron los metadatos de la tabla. Los lectores no se ven afectados por los cambios hasta que actualizan y eligen una nueva ubicación de metadatos. Los archivos de datos de las instantáneas se almacenan en uno o varios archivos de manifiesto que contienen una fila para cada archivo de datos de la tabla, sus datos de partición y sus métricas. Una instantánea es la unión de todos los archivos de sus manifiestos. Los archivos de manifiesto también se pueden compartir entre instantáneas para evitar reescribir los metadatos que cambian con poca frecuencia.

Diagrama de instantáneas de Iceberg

Diagrama de dos instantáneas. Cada instantánea tiene su propia lista de manifiestos, que almacena metadatos sobre varios manifiestos reutilizables. Cada manifiesto hace referencia a uno o varios archivos de datos.

Iceberg ofrece las siguientes características:

  • Soporta ACID transacciones y viajes en el tiempo en su lago de datos de Amazon S3.

  • Los reintentos confirmados se benefician de las ventajas de rendimiento de una simultaneidad optimista.

  • La resolución de conflictos a nivel de archivo da como resultado una alta simultaneidad.

  • Con estadísticas mínimas y máximas por columna en los metadatos, puede omitir archivos, lo que mejora el rendimiento de las consultas selectivas.

  • Puede organizar las tablas en diseños de particiones flexibles, y la evolución de las particiones permite actualizar los esquemas de particiones. De este modo, las consultas y los volúmenes de datos pueden cambiar sin tener que depender de directorios físicos.

  • Admite evolución de los esquemas y cumplimiento.

  • Las tablas de Iceberg actúan como receptores idempotentes y orígenes reproducibles. Esto permite la transmisión y la compatibilidad de lotes con canalizaciones que se ejecutan exactamente una sola vez. Los receptores idempotentes rastrean las operaciones de escritura que han tenido éxito en el pasado. Por lo tanto, el receptor puede volver a solicitar datos en caso de error y descartarlos si se han enviado varias veces.

  • Consulte el historial y el linaje, incluida la evolución de la tabla, el historial de operaciones y las estadísticas de cada confirmación.

  • Migre desde un conjunto de datos existente con una selección de formatos de datos (ParquetORC, Avro) y motor de análisis (Spark, Trino, PrestoDB, Flink, Hive).