Entender Parquet, Iceberg y el data lakehouse de BroadIn
(davidgomes.com)Entender: Parquet, Iceberg y el data lakehouse de BroadIn
-
Formas de almacenamiento de datos (archivos y en memoria)
- Existen varios formatos de archivo para acceder y almacenar datos
- Algunos sistemas usan principalmente formatos de datos cerrados, pero la mayoría soporta formatos de datos abiertos
- Entre los principales formatos de archivo open source están Apache Avro, Parquet, ORC, Arrow, Feather y Protobuf
- Estos formatos proporcionan especificaciones sobre cómo organizar los datos en el layout binario real
- Parquet ofrece buen soporte para compresión, y Avro es adecuado para leer bloques de filas específicos
- Soportan evolución de esquema y división de archivos, algo esencial para el procesamiento en paralelo
- Es posible trabajar con estos formatos desde distintos lenguajes de programación y herramientas
-
Gestión de datos a gran escala: Iceberg y Delta Lake
- Se necesita una forma de almacenar varias tablas, evolucionar esquemas individuales, particionar datos de manera eficiente y permitir que herramientas externas lean fácilmente los esquemas
- Hive, Iceberg y Delta Lake soportan registros de esquema o metastores
- Iceberg y Delta Lake usan Parquet como formato de archivo individual
- Iceberg y Delta Lake no son motores de consulta ni de almacenamiento, sino especificaciones abiertas que permiten a los motores de consulta hacer su trabajo
- Hacen posible funciones como evolución del particionado, evolución del esquema, compresión de datos, transacciones ACID, optimización eficiente de consultas y time travel
-
¿Qué son el data lake y el data lakehouse?
- Un data lake es donde las empresas almacenan grandes volúmenes de datos en formatos sin procesar, como archivos OCR, Parquet o CSV
- Un data lakehouse es una combinación de capacidades sobre el data lake que permite ejecutar consultas SQL, configurar trabajos batch y establecer gobernanza de datos
- El data lakehouse puede verse como una versión de un data warehouse abierto
- A medida que data warehouses como Snowflake y BigQuery soportan formatos de datos abiertos como Iceberg, la frontera entre data warehouse y data lakehouse se está volviendo borrosa
La opinión de GN⁺
- Iceberg y Delta Lake cumplen un papel importante como capa de metadatos para gestionar conjuntos de datos a gran escala. Permiten una administración eficiente de los datos y la optimización de consultas, por lo que son útiles para científicos e ingenieros de datos.
- El data lakehouse combina las ventajas del data lake y del data warehouse, y plantea un nuevo paradigma para la gestión y el análisis de datos. Esto puede ofrecer oportunidades para fortalecer aún más la toma de decisiones basada en datos.
- A medida que aumenta el soporte para Iceberg, se espera que los sistemas de gestión y análisis de datos se vayan estandarizando y sean más interoperables. Esto aportará mayor flexibilidad y eficiencia al momento de elegir y usar plataformas de datos.
2 comentarios
Estaba comparando Iceberg y Delta Lake, y veo que aquí quedó todo bien ordenado.
Mi punto de vista y mi opinión eran casi los mismos.
El benchmark que se ejecutó en línea usó Spark, y aunque puede servir como referencia, el Head of DevRel de Tabular escribió que no tiene mucho significado.
Si hay que elegir como open source, parece que
iceberges la única opción.El resumen está bien, pero también estaría bien que hubiera enlaces de referencia.
Opinión de Hacker News
Apache Iceberg y Delta Lake suelen mencionarse como formatos de tabla abiertos, pero en realidad hay diferencias.
En el mundo de las bases de datos, que Delta, Iceberg y Hudi almacenen datos en un formato open source sobre almacenamiento como S3 representa un cambio enorme.
He trabajado durante años con archivos Parquet en S3, pero no entendía exactamente qué era Iceberg. Sin embargo, ese artículo explica bien Iceberg.
La mejor forma de guardar un dataframe de Apache Arrow como archivo en disco es usar Feather, pero también es posible convertirlo al formato Apache Parquet.
Había oído hablar de los data lakes, pero “data lakehouse” suena como un lugar al que la gente adinerada va en verano a pescar datos en un bote de datos.
Manejo unos 100 TB de datos en GCP y uso BigQuery como motor de consultas con un particionado simple de Hive. Estoy satisfecho porque puedo ejecutar todas las consultas y el costo es muy bajo, pero la latencia es bastante alta (aunque no es un gran problema para la empresa).
Me entusiasma mucho Iceberg, pero la última vez que investigué, la única implementación era la biblioteca de Spark y el conector Iceberg de Trino dependía fuertemente de Hive.
Se cuestiona por qué nadie puede explicar todo esto con ideas más concretas. Deberían explicar cómo se almacenan los datos, cómo se conectan y consultan, y qué velocidad tienen las consultas (frente a la velocidad transaccional frente a la velocidad “analítica”).
En todos los benchmarks que he visto en línea, el formato Delta Lake muestra un rendimiento mucho mejor que Iceberg.
Reconoce que la publicación del blog no será 100% exhaustiva ni necesariamente el mejor punto de partida para la mayoría de la gente.