curso
Apache Iceberg Explicado: Guía completa para principiantes
Si trabajas con procesamiento de big data, sabes que gestionar y analizar archivos de datos desorganizados puede ser un reto y propenso a errores. El riesgo de perder datos valiosos por un simple error, como un comando de borrado accidental, es una preocupación constante.
Apache Iceberg aborda estos retos proporcionando un formato de tabla robusto y fiable que admite reversiones y restaura estados anteriores de tus datos. Esto garantiza la integridad y coherencia de los datos, haciendo que su gestión sea más eficaz y menos propensa a errores.
En este tutorial, te explicaremos qué es Apache Iceberg, por qué se utiliza y cómo funciona. También aprenderás cómo empezar a utilizarlo mediante instrucciones prácticas, paso a paso, que te permitirán gestionar y analizar tus datos con mayor eficacia.
¿Qué es el Iceberg Apache?
Apache Iceberg es un formato de tabla abierto diseñado para manejar con eficacia enormes conjuntos de datos analíticos. Proporciona una estructura de tablas de alto rendimiento que lleva a tus archivos de datos las ventajas de las bases de datos tradicionales, como las consultas SQL, el cumplimiento de la normativa ACID y la partición.
Esencialmente, Apache Iceberg actúa como una lente, permitiéndote ver y gestionar una colección de archivos de datos como si fueran una única tabla cohesionada.
La principal ventaja de Apache Iceberg es su capacidad para manejar datos a gran escala de forma altamente optimizada. Admite funciones como la evolución de esquemas, la partición oculta y el viaje en el tiempo, lo que la convierte en una solución robusta para gestionar flujos de trabajo de datos complejos.
Al abstraer las complejidades de los formatos de almacenamiento subyacentes, Iceberg permite una gestión y consulta eficaces de los datos, lo que lo convierte en una opción ideal para el procesamiento de big data.
Historia del Iceberg Apache
Netflix desarrolló Apache Iceberg en 2017 para hacer frente a las limitaciones de Hive, en particular en el manejo del procesamiento incremental y el flujo de datos. En 2018, Netflix donó Iceberg a la Apache Software Foundation, convirtiéndolo en un proyecto de código abierto.
Desde entonces, Apache Iceberg se ha convertido en la piedra angular de las arquitecturas modernas de lagos de datos, con una adopción generalizada en diversos sectores.
El proyecto ha evolucionado continuamente, incorporando funciones como la partición oculta y la evolución de esquemas para satisfacer las exigencias de los entornos de datos a gran escala.
En 2024, Databricks anunció su acuerdo para adquirir Tabular, una empresa de gestión de datos fundada por los creadores originales de Apache Iceberg. Esta adquisición pretende unificar Apache Iceberg y Delta Lake, mejorando la compatibilidad de los datos e impulsando la evolución hacia un único estándar abierto de interoperabilidad.
Cronología de la evolución del Iceberg Apache
Año |
Evento |
2017 |
Netflix desarrolla Apache Iceberg para abordar las limitaciones de Hive, especialmente para el procesamiento incremental y el flujo de datos. |
2018 |
Netflix dona Apache Iceberg a la Apache Software Foundation, convirtiéndolo en un proyecto de código abierto. |
2019 |
Apache Iceberg es adoptado por varias industrias por sus capacidades de gestión de datos escalables y eficientes. Se introducen características como la evolución del esquema y la partición oculta. |
2020 |
Las contribuciones de la comunidad y su adopción siguen creciendo, con mejoras en el rendimiento y nuevas funciones como el viaje en el tiempo y la gestión de metadatos. |
2021 |
Apache Iceberg gana una tracción significativa como formato de tabla preferido para los lagos de datos, integrándose con las principales herramientas y plataformas de big data. |
2022 |
Se añaden nuevas funciones y optimizaciones, mejorando la compatibilidad de Iceberg con flujos de trabajo de datos complejos y entornos de datos a gran escala. |
2023 |
Apache Iceberg sigue evolucionando con el objetivo de mejorar la compatibilidad e interoperabilidad de los datos con otros formatos y sistemas de datos. |
2024 |
Databricks anunció su acuerdo para adquirir Tabular. Esta adquisición pretende unificar Iceberg y Delta Lake. |
¿Para qué se utiliza el Iceberg Apache?
Como hemos visto antes, Apache Iceberg es una potente herramienta para la gestión y el análisis de datos en entornos a gran escala.
Aquí tienes un resumen más específico de para qué se utiliza Apache Iceberg.
Analizar los datos
Utilizar formatos de archivo como ORC o Parquet es fácil de implementar, pero ejecutar análisis sobre ellos es ineficaz. Sin embargo, Iceberg les proporciona un formato de tabla con información de metadatos para optimizar las consultas.
Por ejemplo, los archivos de datos brutos no almacenan información sobre a qué tabla pertenecen, pero los archivos de metadatos de Iceberg sí. Esto permite a los motores de consulta decidir qué tablas leer y cuáles omitir, mejorando significativamente la eficacia de la consulta.
Los archivos de metadatos almacenan este tipo de información para una consulta eficaz. Los lenguajes de consulta buscan primero el nombre del archivo relevante en los metadatos y obtienen sólo ese archivo para una consulta rápida, reduciendo las lecturas de datos innecesarias.
Poda de partición
La poda de particiones es una técnica que omite los datos irrelevantes y realiza operaciones sólo con los datos necesarios.
Por ejemplo, si tu columna de partición es "fecha" y especificas un intervalo de fechas concreto, la consulta sólo leerá los datos comprendidos en ese intervalo. Esto reduce la cantidad de datos leídos del disco, haciendo que la consulta de las tablas Iceberg sea más rápida y eficaz.
Viaje en el tiempo
El viaje en el tiempo es una función que te permite acceder a versiones anteriores de tus datos obteniendo instantáneas de un momento determinado.
Una instantánea es un conjunto completo de archivos de datos en un momento determinado.
Los archivos de metadatos rastrean los ID de las instantáneas, las marcas de tiempo y los detalles del historial, lo que permite acceder a cada instantánea por su ID o marca de tiempo.
Integraciones
Muchos sistemas de almacenamiento populares, como Google Cloud, AWS y Microsoft Azure, admiten el formato de tabla Iceberg. Puedes almacenar archivos de datos en esas plataformas en la nube y utilizar un servicio de catálogo externo o incorporado para apuntar a sus metadatos.
Una vez configurado el servicio de catálogo, puedes utilizar marcos de procesamiento de big data como Apache Spark o Apache Flink.
Iceberg también es compatible con varios motores de consulta, como SQL, Trino y Presto, lo que permite una integración perfecta con los flujos de trabajo de datos existentes.
Comunidad
Apache Iceberg tiene una comunidad activa y presencia en línea en varias plataformas de colaboración como Twitter y Github. También tiene un espacio de trabajo Slack dedicado para quienes quieran participar en las últimas conversaciones sobre desarrollo.
Los colaboradores de código abierto y los desarrolladores de Iceberg son accesibles a la comunidad de aprendizaje a través de plataformas sociales. Esto facilita la obtención de una solución cuando te encuentres con problemas al implementar las funciones de Iceberg.
Conceptos básicos de Apache Iceberg
Apache Iceberg presenta un conjunto de conceptos básicos que permiten gestionar y consultar datos de forma eficaz. En esta sección los revisaremos.
Gestión de metadatos
Iceberg gestiona esquemas de tablas, particiones, ubicaciones de archivos y mucho más a través de su capa de metadatos, que mantiene metadatos, listas de manifiestos y archivos de manifiestos en formato JSON.
- Archivo de metadatos: rastrea el esquema y las particiones de la tabla.
- Archivos de manifiesto: contienen información a nivel de archivo, como la ubicación, el tamaño, la partición y las estadísticas de filas y columnas de un archivo de datos.
Iceberg admite el versionado mediante metadatos de instantáneas. Almacena detalles sobre la marca de tiempo de la instantánea, la partición y los archivos de datos relevantes. Una instantánea es una vista de todos tus datos en un momento determinado.
Evolución del esquema
La evolución del esquema es el proceso de modificar el esquema de una tabla para adaptarlo a nuevos elementos de datos o a necesidades cambiantes. Apache Iceberg admite la evolución nativa del esquema, lo que permite actualizarlo sin costosas reescrituras o migraciones de datos.
Por ejemplo, si mantienes datos de empleados y quieres añadir una nueva columna para las métricas de rendimiento, puedes añadir una columna "rendimiento_empleado". Iceberg actualiza sus metadatos para incluir esta columna sin afectar a los datos existentes. La nueva columna tiene inicialmente valores por defecto y se actualiza a medida que se insertan nuevos registros.
Partición
La partición divide los datos en subconjuntos más pequeños, lo que te permite acceder sólo a los datos necesarios para una consulta en lugar de leer todo el conjunto de datos.
Iceberg admite muchas estrategias de partición, por ejemplo:
- Partición de rangos: Divide los datos en función de un rango de valores de la columna de partición, como fechas concretas, valores numéricos o entradas de cadena.
- Partición hash: Aplica una función hash a la clave de partición para dividir los datos.
- Trunca la partición: Trunca los valores de una columna de partición y agrupa los datos. Por ejemplo, truncar los códigos postales 533405, 533404, 533689, 533098, 535209 y 535678 a 3 dígitos agrupa los datos a "533" y "535".
- Partición de listas: Hace coincidir los valores de la clave de partición con los valores de una lista, dividiendo los datos en consecuencia. Esto es adecuado para valores categóricos en la columna de partición. Por ejemplo, dividir las empresas de portátiles en grupos como "Lenovo", "Apple" y "HP".
Instantáneas
Una instantánea es un conjunto de archivos de manifiesto válidos en un momento determinado. Cada cambio que hagas en los datos crea una nueva instantánea con archivos de manifiesto y metadatos actualizados.
Iceberg sigue una consulta basada en instantáneas, lo que significa que puedes acceder a todo el conjunto de archivos de datos en un momento concreto accediendo a una marca de tiempo determinada. Esto te permite acceder a datos históricos y volver a versiones anteriores en caso de pérdida de datos.
Arquitectura técnica de Apache Iceberg
Apache Iceberg no almacena datos en tablas. En su lugar, organiza los archivos de datos para mostrarlos como una única tabla.
Repasemos la arquitectura que lo hace posible.
Fuente de la imagen
Catálogo Iceberg
La capa del catálogo contiene una referencia o puntero al archivo de metadatos actual de la tabla. Cada vez que cambias los datos, se escribe un nuevo archivo de metadatos, y el puntero apunta ahora al archivo de metadatos más reciente del registro.
Esta capa facilita el cumplimiento de ACID en las tablas Iceberg. Por ejemplo, los cambios en curso no son visibles para otras transacciones hasta que se hayan realizado y consignado en la tabla. Hasta entonces, el puntero se refiere al archivo de metadatos actual.
En general, los catálogos simplifican la gestión del cumplimiento de ACID en las tablas Iceberg, al apuntar a versiones específicas de los archivos de metadatos.
Metadata layer
Esta capa contiene tres tipos de archivos:
- Metadata files: Estos archivos almacenan el esquema de la tabla, la ubicación, la información de la partición, las marcas de tiempo de las instantáneas y otra información.
- Archivos de manifiesto: Los archivos de manifiesto rastrean los metadatos a nivel de archivo. Almacenan información de la partición, estadísticas como el recuento de filas, el recuento de columnas, detalles de la instantánea y el formato de cada archivo de datos.
- Listas de manifiestos: Un grupo de archivos de manifiesto que forman una única instantánea es una lista de manifiesto.
Esta capa mantiene la estructura y la integridad de la tabla, permitiendo una consulta y una gestión eficaces de los datos.
Capa de datos
La capa de datos es el componente de almacenamiento de la arquitectura Iceberg, donde residen los datos reales.
Iceberg admite varios formatos de datos, como Parquet, ORC y Avro. Esta flexibilidad permite un almacenamiento optimizado y un procesamiento eficaz de los datos, adaptándose a distintos tipos de datos y casos de uso.
Integración y compatibilidad con Apache Iceberg
Apache Iceberg se integra con muchos marcos de procesamiento de big data y motores informáticos populares.
Integraciones con motores de procesamiento de datos
Apache Spark
Las tablas Iceberg funcionan como grandes sistemas de almacenamiento de datos en los que puedes utilizar las API Spark para leer y escribir datos. Además de la API de marcos de datos, puedes utilizar el módulo SQL de Spark para consultar las tablas de Iceberg.
Apache Spark tiene dos catálogos: org.apache.iceberg.spark.SparkCatalog
y org.apache.iceberg.spark.SparkSessionCatalog
. Estos catálogos ayudan a Spark a descubrir y acceder a los metadatos disponibles de las tablas Iceberg.
metadataorg.apache.iceberg.spark.SparkCatalog
: Para utilizar servicios de catálogo externos como Hive o Hadoop.org.apache.iceberg.spark.SparkSessionCatalog
: El catálogo incorporado de Spark puede manejar tablas Iceberg y no Iceberg en la misma sesión.
Apache Flink
La integración de Apache Flink e Iceberg es conocida por el procesamiento de datos en streaming. Esta integración te permite transmitir datos directamente desde diversas fuentes a las tablas de Iceberg y facilita la realización de análisis sobre datos transmitidos en tiempo real.
Presto y Trino
Preso y Trino son conocidos por su rápida capacidad de procesamiento de datos en comparación con Hive u otros motores SQL. Por lo tanto, si tienes datos masivos que necesitan ser consultados y analizados, la integración de Iceberg y Presto/Trino es una gran elección.
Trino no tiene su catálogo incorporado. Depende de servicios de catálogo externos como Hive Metastore o AWS Glue para apuntar a las tablas Iceberg.
Compatibilidad con el lago de datos
Los lagos de datos tradicionales no admiten propiedades ACID, lo que provoca lecturas de datos incompletas o escrituras de datos concurrentes. Sin embargo, integrar un lago de datos con un Iceberg garantiza la coherencia y precisión de los datos.
- Amazon S3: Amazon S3 es un popular servicio de almacenamiento en la nube que admite varios formatos de archivo. Se utiliza como capa de almacenamiento en la arquitectura del lago de datos. Para utilizar Iceberg con S3, utilizarás AWS glue como servicio de catálogo. Una vez configurado el catálogo, puedes utilizar cualquier lenguaje de consulta para analizar las tablas.
- Almacenamiento en la nube de Google: Un lago de datos en Google Cloud proporciona una arquitectura de datos más escalable y flexible. Muchas empresas que tienen una infraestructura de datos construida en torno a Google Cloud pueden aprovechar el formato de tabla Iceberg. Las tablas de Iceberg pueden consultarse utilizando BigQuery de Google o lenguajes de consulta estándar.
- Azure Blob Storage: Es el sistema de almacenamiento de Microsoft optimizado para almacenar cantidades masivas de datos no estructurados en la nube. Iceberg se integra con Azure y proporciona un acceso rápido y fiable a los datos.
Apache Iceberg vs Delta Lake
Apache Iceberg y Delta Lake son formatos de tabla avanzados diseñados para aportar propiedades ACID a los lagos de datos, pero difieren en sus características, integraciones y casos de uso.
Aquí tienes una comparación detallada de ambos:
Visión general del lago Delta
Delta Lake es un formato de tabla que proporciona propiedades ACID a una colección de archivos Parquet, garantizando que los lectores nunca vean datos incoherentes.
Desarrollado por Databricks, la empresa que está detrás de Apache Spark, Delta Lake es altamente compatible con Spark para el procesamiento y análisis de big data.
Delta Lake utiliza registros transaccionales para gestionar las funciones de viaje en el tiempo. Un registro de transacciones es una lista de archivos JSON que rastrean los cambios realizados en la tabla. Cada inserción, borrado o actualización da lugar a un nuevo archivo de registro que rastrea los cambios específicos.
Delta Lake crea periódicamente archivos de puntos de control, que representan instantáneas de toda la tabla en momentos concretos y se almacenan en formato Parquet.
Apache Iceberg vs. Comparación de las características del lago Delta
Función |
Apache Iceberg |
Delta Lake |
Definición |
El formato de tabla Iceberg proporciona una infraestructura escalable con soporte para múltiples motores de procesamiento. |
Delta Lake es una capa de almacenamiento fiable, especialmente adecuada para el ecosistema Databricks. |
Formato de archivo |
Iceberg admite varios formatos de archivo, como Parquet, Avro y ORC. |
Delta Lake sólo admite de forma nativa el formato de archivo Parquet. |
Soporte de propiedades ACID |
Iceberg admite transacciones ACID. |
El Lago Delta ofrece sólidas propiedades ACID. |
Manipulación de particiones |
Iceberg admite la partición dinámica, lo que significa que las particiones pueden actualizarse sin reescribir el esquema. |
Las particiones son constantes, y debes definirlas al crear tablas. Modificar las particiones definidas puede implicar la reescritura de datos. |
Viaje en el tiempo |
Cada cambio realizado en la tabla crea una nueva instantánea. |
Ofrece funciones de viaje en el tiempo mediante registros de transacciones, con seguimiento de los cambios en archivos JSON. |
Integraciones |
Iceberg es compatible con múltiples motores de procesamiento de datos, como SQL, Spark, Trino, Hive, Flink, Presto, etc. |
Delta Lake está estrechamente acoplado con Apache Spark. |
Apache Iceberg vs. Casos de uso de Delta Lake
Caso práctico |
Apache Iceberg |
Delta Lake |
Flexibilidad del motor |
Es mejor cuando se utilizan varios motores, como Apache Spark, Flink, Presto, Hive, etc. Es ideal para entornos que necesitan distintos motores para distintas tareas de procesamiento. |
Lo mejor para los usuarios que utilizan Apache Spark de forma nativa, ya que ofrece una estrecha integración y un rendimiento óptimo dentro del ecosistema Spark. |
Transmisión de datos |
Admite la ingesta continua de datos de diversas fuentes, procesándolos en tiempo real. |
Unifica el procesamiento por lotes y por flujos, lo que es ideal para casos de uso que requieran ambos en una única canalización. |
Apache Iceberg vs. Consideraciones adicionales sobre el lago Delta
- Comunidad y ecosistema: Tanto Iceberg como Delta Lake tienen comunidades activas y una amplia documentación. Sin embargo, Delta Lake se beneficia del respaldo de Databricks, proporcionando un sólido apoyo dentro del ecosistema Databricks.
- Rendimiento: Aunque ambos formatos ofrecen optimizaciones de rendimiento, la estrecha integración de Delta Lake con Spark puede beneficiar a los flujos de trabajo centrados en Spark. La flexibilidad de Iceberg con diferentes motores puede proporcionar mejoras de rendimiento en entornos multimotor.
En general, Delta Lake es muy adecuado para casos de uso que requieran procesamiento en tiempo real y una estrecha integración con Spark y el ecosistema Databricks. Por otro lado, Apache Iceberg ofrece una mayor flexibilidad para el procesamiento de datos a gran escala y la posibilidad de elegir el mejor motor para casos de uso específicos.
Primeros pasos con Apache Iceberg
Configurar y utilizar Apache Iceberg implica configurar tu entorno y comprender las operaciones básicas y avanzadas. Esta guía te ayudará a empezar a utilizarlo.
Instalación y configuración
Para configurar y ejecutar las tablas Iceberg, necesitas tener configurados los siguientes entornos en tu máquina:
- Java JDK
- PySpark
- Python
- Apache Spark
También es beneficioso tener un conocimiento básico de estas herramientas y tecnologías. Puedes aprenderlos a través de los siguientes cursos:
- Big Data con PySpark
- Introducción a PySpark
- Introducción a Spark SQL en Python
- Fundamentos de Big Data con PySpark
- Programación en Python
Una vez listo, puedes seguir los siguientes pasos para configurar las mesas Iceberg:
- Descarga los archivos JAR de Iceberg y colócalos en un directorio de tu máquina.
- Crea una nueva carpeta llamada
iceberg-warehouse
para almacenar tus tablas Iceberg.
mkdir iceberg-warehouse
- Configura los archivos jar en una sesión Spark, como se muestra a continuación.
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("Iceberg-sample") \
.config("spark.jars", "jars/iceberg-spark-runtime-<version>.jar") \
.getOrCreate()
Sustituye “jars/iceberg-spark-runtime-.jar”
por el directorio real de los archivos jar y la versión que estés utilizando.
- Configura PySpark para utilizar tablas Iceberg.
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("Iceberg-Sample") \
.config("spark.jars", "jars/iceberg-spark-runtime-<version>.jar") \
.config("spark.sql.catalog.catalog_name", "org.apache.iceberg.spark.SparkCatalog") \
.config("spark.sql.catalog.catalog_name.type", "hadoop") \
.config("spark.sql.catalog.catalog_name.warehouse", "file:///C:/HP/iceberg-warehouse") \
.getOrCreate()
Sustituye "jars/iceberg-spark-runtime-.jar"
por la ruta y la versión reales de los archivos JAR de Iceberg, y asegúrate de que la ruta del almacén es correcta.
Ahora puedes crear y utilizar tablas Iceberg utilizando PySpark.
Operaciones básicas
- Crea una tabla Iceberg e inserta datos en ella.
spark.sql(""" CREATE TABLE my_catalog.emp_table ( id INT, data STRING ) USING iceberg """)
spark.sql(""" INSERT INTO catalog_name.emp_table VALUES (14, 'james'),('15','john')""")
- Comando para borrar datos de las tablas Iceberg.
spark.sql("DELETE FROM catalog_name.emp_table WHERE id = 14")
Operaciones avanzadas
Añadir, actualizar o eliminar columnas sin afectar a los datos existentes forma parte de la evolución del esquema.
- Así es como puedes añadir una nueva columna.
spark.sql("ALTER TABLE ADD catalog_name.emp_table COLUMN salary INT")
Evolucionar la partición significa cambiar las columnas de la partición sin sobrescribir los archivos de datos existentes.
- He aquí cómo puedes añadir una nueva columna de partición.
spark.sql("ALTER TABLE catalog_name.emp_table ADD PARTITION FIELD emp_join_date")
Estos pasos y comandos proporcionan un marco básico para empezar con Apache Iceberg y te dan una idea de cómo es trabajar con este formato.
Conclusión
Hoy hemos cubierto mucho terreno; vamos a resumirlo con algunos puntos clave.
Apache Iceberg ofrece una robusta estructura de tablas a un conjunto de archivos de datos, proporcionando soporte para transacciones ACID y asegurando la consistencia y fiabilidad de los datos.
El formato Iceberg introduce la evolución dinámica de esquemas, la partición sin fisuras y la escalabilidad en los sistemas de almacenamiento. Su integración con motores de procesamiento de datos como Apache Spark y Flink permite un manejo eficaz de los datos tanto por lotes como en tiempo real.
Si quieres profundizar en la arquitectura y gestión de datos modernas, considera la posibilidad de explorar estos recursos adicionales:
Preguntas frecuentes
¿Puede Apache Iceberg manejar estructuras de datos anidadas complejas?
Sí, Apache Iceberg puede manejar estructuras de datos anidadas complejas. Admite tipos de datos anidados como structs, mapas y matrices, lo que lo hace adecuado para una amplia gama de escenarios de datos.
¿Cómo garantiza Apache Iceberg la coherencia de los datos durante las escrituras concurrentes?
Apache Iceberg garantiza la coherencia de los datos durante las escrituras concurrentes utilizando un control optimista de la concurrencia. Rastrea los cambios con una capa de metadatos versionada, y cada operación de escritura crea una nueva instantánea. Si se producen escrituras simultáneas, Iceberg comprueba si hay conflictos y se asegura de que sólo una escritura tenga éxito, preservando la integridad de los datos.
¿Qué implicaciones tiene para el rendimiento el uso de Apache Iceberg en comparación con los lagos de datos tradicionales?
Apache Iceberg puede mejorar significativamente el rendimiento en comparación con los lagos de datos tradicionales optimizando la disposición de los datos, soportando la partición dinámica y permitiendo una gestión de metadatos de grano fino. Estas funciones reducen la cantidad de datos escaneados durante las consultas y mejoran el rendimiento general de las mismas.
¿Se puede utilizar Apache Iceberg con soluciones de almacenamiento en la nube que no sean Hadoop?
Sí, Apache Iceberg puede utilizarse con varias soluciones de almacenamiento en la nube, como Amazon S3, Google Cloud Storage y Azure Blob Storage. Está diseñado para ser independiente del almacenamiento, lo que te permite aprovechar las capacidades de Iceberg en múltiples plataformas.
¿Cómo gestiona Apache Iceberg los cambios de esquema sin requerir tiempo de inactividad?
Apache Iceberg gestiona los cambios de esquema mediante su función nativa de evolución de esquemas. Te permite añadir, eliminar o actualizar columnas sin requerir tiempo de inactividad ni reescribir los datos existentes. Estos cambios se aplican a los metadatos, y los nuevos datos se escriben de acuerdo con el esquema actualizado.
¿Existe una interfaz de usuario para gestionar y consultar las tablas Iceberg?
Aunque el propio Apache Iceberg no proporciona una interfaz de usuario integrada, puede integrarse con diversas plataformas de datos y motores de consulta que ofrecen interfaces de usuario. Se pueden utilizar herramientas como Apache Spark, Trino y Presto para interactuar con las tablas de Iceberg a través de sus respectivas interfaces de usuario.
¿Cómo se compara Apache Iceberg con otros formatos de tabla como Apache Hudi?
Tanto Apache Iceberg como Apache Hudi proporcionan transacciones ACID y capacidades de viaje en el tiempo, pero tienen filosofías de diseño y casos de uso diferentes. Iceberg se centra en proporcionar un formato de tabla de alto rendimiento con soporte para múltiples motores, mientras que Hudi hace hincapié en la ingestión de datos en tiempo real y el procesamiento incremental. La elección entre ellos depende de los casos de uso específicos y de las necesidades de integración.
¿Puede utilizarse Apache Iceberg para flujos de trabajo de aprendizaje automático?
Sí, Apache Iceberg puede utilizarse para flujos de trabajo de aprendizaje automático. Su capacidad para gestionar eficazmente grandes conjuntos de datos y su compatibilidad con múltiples formatos de archivo (como Parquet y Avro) lo hacen adecuado para preparar y procesar datos para modelos de aprendizaje automático. La integración con marcos de procesamiento de big data como Apache Spark aumenta aún más su utilidad en los flujos de trabajo de ML.
¿Cómo gestiona Apache Iceberg la seguridad de los datos y el control de acceso?
Apache Iceberg depende de los motores de almacenamiento y procesamiento subyacentes para la seguridad de los datos y el control de acceso. Puedes implementar medidas de seguridad como el cifrado, las políticas IAM y los controles de acceso en la capa de almacenamiento (por ejemplo, Amazon S3, Google Cloud Storage) y en la capa de procesamiento (por ejemplo, Apache Spark, Flink). Además, se pueden utilizar servicios de catálogo como AWS Glue y Hive Metastore para administrar permisos y controles de acceso.
Srujana es una redactora técnica autónoma con una licenciatura de cuatro años en Informática. Escribir sobre diversos temas, como la ciencia de datos, la computación en la nube, el desarrollo, la programación, la seguridad y muchos otros, le resulta natural. Le encanta la literatura clásica y explorar nuevos destinos.
¡Aprende más sobre ingeniería y gestión de datos con estos cursos!
curso
Fundamentos de Big Data con PySpark
curso