¿Qué es Apache Iceberg?

Apache Iceberg es un formato de tabla de datos distribuido, impulsado por la comunidad, con licencia de Apache 2.0 y código abierto al 100 % que ayuda a simplificar el procesamiento de datos en grandes conjuntos de datos almacenados en lagos de datos. Los ingenieros de datos utilizan Apache Iceberg porque es rápido, eficiente y fiable a cualquier escala y mantiene registros de cómo cambian los conjuntos de datos a lo largo del tiempo. Apache Iceberg ofrece integraciones sencillas con marcos de procesamiento de datos populares, como Apache Spark, Apache Flink, Apache Hive y Presto, entre otros.

¿Qué es un lago de datos transaccional?

Un lago de datos es un repositorio centralizado que permite almacenar todos los datos estructurados y no estructurados a cualquier escala. Una transacción de datos es una serie de intercambios de datos que se llevan a cabo en una sola operación. Por ejemplo, cuando un cliente retira dinero de una cuenta bancaria, el banco realiza varios intercambios de datos al mismo tiempo en una transacción de datos, lo que incluye la verificación de que la cuenta tiene un saldo suficiente, la verificación de la identidad y el cargo de la retirada desde la cuenta. Un lago de datos transaccional es un tipo de lago de datos que no solo almacena datos a escala, sino que también admite operaciones transaccionales y garantiza que los datos sean precisos y coherentes, además de permitirle realizar un seguimiento de los cambios de los datos y su estructura a lo largo del tiempo. Estas propiedades se conocen conjuntamente como atomicidad, coherencia, aislamiento y durabilidad (ACID):

  • La atomicidad garantiza que cada transacción sea un evento único que se realiza correctamente o fracasa por completo; no hay ningún estado intermedio. 
  • La coherencia garantiza que todos los datos escritos sean válidos de acuerdo con las reglas definidas del lago de datos, lo que garantiza que los datos sean precisos y fiables. 
  • El aislamiento garantiza que se puedan realizar varias transacciones al mismo tiempo sin interferir entre sí, lo que garantiza que cada transacción se ejecute de forma independiente.
  • La durabilidad significa que los datos no se pierden ni se corrompen una vez que se envía una transacción. Los datos se pueden recuperar en caso de un fallo del sistema, como un corte de energía.

¿Qué beneficios tiene utilizar Apache Iceberg?

Algunos de los beneficios clave de usar Apache Iceberg para lagos de datos transaccionales incluyen:

  • Familiaridad con SQL: el lenguaje de consulta estructurado (SQL) es un lenguaje de consulta muy conocido que se utiliza con frecuencia en todo tipo de aplicaciones. Los analistas de datos y desarrolladores aprenden y utilizan SQL porque se integra bien con diferentes lenguajes de programación y también es bastante fácil de aprender, ya que utiliza palabras clave comunes en inglés en sus instrucciones. Apache Iceberg permite a cualquier persona que esté familiarizada con el lenguaje de consulta estructurado (SQL) crear lagos de datos y realizar la mayoría de las operaciones de lagos de datos sin necesidad de aprender un nuevo idioma.
  • Coherencia de datos: Apache Iceberg ofrece coherencia de datos para garantizar que cualquier usuario que lea y escriba en los datos vea los mismos datos. 
  • Estructura de datos: Apache Iceberg permite realizar cambios sencillos en la estructura de datos, lo que también se conoce como evolución del esquema, lo que significa que los usuarios pueden agregar, cambiar el nombre o eliminar columnas de una tabla de datos sin alterar los datos subyacentes.
  • Control de versiones de datos: Apache Iceberg admite el control de versiones de datos, lo que permite a los usuarios realizar un seguimiento de los cambios en los datos a lo largo del tiempo. Esto habilita la característica de desplazamiento en el tiempo, que permite a los usuarios acceder a las versiones de histórico de los datos y consultarlos, así como analizar los cambios en los datos entre las actualizaciones y eliminaciones.
  • Compatibilidad con varias plataformas: Apache Iceberg admite diversos sistemas de almacenamiento y motores de consulta, incluidos Apache Spark, Apache Hive y Presto. Esto facilita el uso de Iceberg en diversos entornos de procesamiento de datos.
  • Procesamiento incremental: Iceberg admite el procesamiento incremental, que permite a los usuarios procesar solo los datos que han cambiado desde la última ejecución, lo que también se conoce como CDC (captura de datos de cambio). Esto puede ayudar a mejorar la eficiencia y el rendimiento del procesamiento de datos.

¿Cuáles son los casos de uso más comunes de Apache Iceberg?

Apache Iceberg es adecuado para muchos casos de uso de lagos de datos, entre los que se incluyen:

  • Tablas de datos en lagos de datos que requieren eliminaciones frecuentes, por ejemplo cuando se aplican leyes de privacidad de datos.
  • Tablas de datos de un lago de datos que requieren actualizaciones a nivel de registro. Esto resulta útil cuando el conjunto de datos requiere actualizaciones frecuentes después de que los datos se asienten, por ejemplo cuando los datos de ventas pueden cambiar debido a eventos posteriores, como las devoluciones realizadas por los clientes. Iceberg ofrece capacidades para actualizar registros individuales sin necesidad de volver a publicar todo el conjunto de datos.
  • Tablas de datos en lagos de datos que tienen cambios impredecibles, como las tablas de dimensiones que cambian lentamente (SCD). Un ejemplo de SCD es una tabla de registro de clientes que incluye el nombre, la ubicación y la información de contacto, que pueden cambiar con el tiempo a intervalos desconocidos.
  • Cuando las transacciones con el lago de datos requieren una validez, durabilidad y fiabilidad de los datos garantizadas, se pueden implementar formatos de tabla de Apache Iceberg para garantizar las transacciones de ACID.
  • Cuando sea necesario retroceder en el tiempo para consultar versiones de histórico de los datos a fin de realizar análisis de tendencias, analizar los cambios en los datos durante un período de tiempo o restaurar o revertir a una versión anterior para corregir problemas.

¿Quién usa Apache iceberg?

Los ingenieros, administradores, analistas y científicos de datos se encuentran entre las personas que utilizan Apache Iceberg.  Los ingenieros y administradores de datos pueden utilizar Apache Iceberg para diseñar y crear sistemas de almacenamiento de datos escalables.  Los analistas y los científicos de datos pueden utilizar Apache Iceberg para analizar grandes conjuntos de datos de manera eficiente. 

¿Por qué elegir Apache Iceberg?

Apache Iceberg ofrece una forma rápida y eficiente de procesar grandes conjuntos de datos a escala. Aporta los siguientes beneficios:

  1. Código abierto: Apache Iceberg es un proyecto de código abierto, lo que significa que es de uso gratuito y se puede personalizar para satisfacer sus necesidades específicas. También cuenta con una comunidad activa de desarrolladores que mejoran y agregan continuamente nuevas características al proyecto. 
  2. Escalabilidad: Apache Iceberg está diseñado para gestionar grandes conjuntos de datos de forma eficiente. Puede dividir y organizar los datos en varios nodos, lo que ayuda a distribuir la carga de trabajo y acelerar el procesamiento de datos. 
  3. Rendimiento: Apache Iceberg cuenta con diversas características para optimizar el rendimiento de las consultas, que incluyen técnicas de almacenamiento y compresión en columnas, como la reducción de predicados y la evolución de esquemas. 
  4. Flexibilidad: Apache Iceberg le permite cambiar la forma en que se organizan los datos para que puedan evolucionar con el tiempo sin necesidad de reescribir las consultas ni reconstruir las estructuras de datos. También admite varios formatos de datos y orígenes de datos, lo que facilita la integración con los sistemas existentes. 
  5. Fiabilidad: Apache Iceberg garantiza la coherencia y fiabilidad de los datos mediante su soporte para transacciones. Puede realizar un seguimiento de los cambios de los datos a lo largo del tiempo y volver a las versiones de histórico para ayudarlo a solucionar problemas.

¿Qué servicios de AWS son compatibles con la IAM?

Apache Iceberg es compatible con los marcos de procesamiento de datos más populares, como Apache Spark, Apache Flink, Apache Hive y Presto. Los servicios de AWS, como Amazon RedshiftAmazon AthenaAmazon EMR y AWS Glue, incluyen soporte nativo para marcos de lagos de datos transaccionales, como Apache Iceberg. Apache Iceberg, en combinación con los servicios de AWS compatibles, permite crear un lago de datos transaccional, a menudo basado en el almacenamiento en S3.

  • Amazon Redshift es un servicio de análisis SQL y almacenamiento de datos completamente administrado y basado en IA para fomentar la toma de decisiones empresariales para los clientes, de forma rápida y rentable. Amazon Redshift ofrece una arquitectura de procesamiento paralelo de forma masiva (MPP), de varios clústeres y sin servidores con capacidades sin ETL que impulsan casos de uso de análisis, IA y ML casi en tiempo real con el intercambio de datos. Los clientes pueden utilizar Amazon Redshift para consultar tablas de Apache Iceberg en el lago de datos, a las que se accede a través del catálogo de datos de AWS Glue, y unirlas con sus tablas en el almacén de datos para obtener análisis completos.
  • Amazon Athena es un servicio de análisis interactivo sin servidor creado en marcos de código abierto, lo que lo hace compatible con formatos abiertos de archivos y tablas. Athena proporciona un método simplificado y flexible de analizar petabytes de datos donde residan. Athena ofrece compatibilidad nativa con consultas de lectura, desplazamiento en el tiempo, escritura y DDL para tablas de Apache Iceberg que utilizan el formato Apache Parquet para los datos y el catálogo de AWS Glue para su tienda de metadatos. 
  • Amazon EMR es una solución de macrodatos para el procesamiento de datos a escala de petabytes, el análisis interactivo y el machine learning mediante marcos de código abierto, como Apache Spark, Hadoop, Presto y Hive. Con Amazon EMR 6.5.0, puede utilizar Apache Spark 3 en clústeres de Amazon EMR con el formato de tabla de Iceberg. Los marcos de EMR, incluidos Spark, Trino, Flink y Hive, son compatibles con Apache Iceberg.
  • AWS Glue es un servicio de integración de datos sin servidor que facilita la detección, preparación, migración e integración de datos provenientes de varios orígenes para el análisis, machine learning (ML) y desarrollo de aplicaciones.  AWS Glue 3.0 y versiones posteriores admiten el marco Apache Iceberg para lagos de datos. Puede utilizar AWS Glue para realizar operaciones de lectura y escritura en tablas de Iceberg en Amazon S3, o trabajar con tablas de Iceberg mediante el catálogo de datos de AWS Glue. También se admiten operaciones adicionales, como insertar, actualizar y todas las consultas y operaciones de escritura de Spark. 

Siguientes pasos en AWS

Descubra otros recursos relacionados con el producto
Eche un vistazo a los servicios de análisis  
Regístrese para obtener una cuenta gratuita

Obtenga acceso instantáneo al nivel Gratuito de AWS.

Regístrese 
Comenzar a crear en la consola

Comience a crear en la consola de administración de AWS.

Iniciar sesión