6 puntos por GN⁺ 2023-12-31 | 2 comentarios | Compartir por WhatsApp

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

 
happing94 2024-01-03

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 iceberg es la única opción.
El resumen está bien, pero también estaría bien que hubiera enlaces de referencia.

 
GN⁺ 2023-12-31
Opinión de Hacker News
  • Apache Iceberg y Delta Lake suelen mencionarse como formatos de tabla abiertos, pero en realidad hay diferencias.

    • La especificación del formato de tabla de Apache Iceberg es lo bastante clara como para que alguien familiarizado con sistemas de bases de datos no tenga grandes dificultades para construir y consultar tablas Iceberg.
    • En cambio, con la especificación de Delta Lake es difícil entender el esfuerzo necesario para implementar por completo la especificación actual o mantenerla actualizada de forma continua.
    • La especificación de Delta Lake parece una ingeniería inversa de la forma en que Databricks decidió internamente implementar un lakehouse para empresas Fortune 1000 decepcionadas con Hadoop.
    • No queda claro si Delta Lake realmente tiene valor como ecosistema verdaderamente abierto.
  • 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.

    • Esto estandariza gran parte del almacenamiento y del procesamiento, facilita moverse entre bases de datos y permite que la mayoría de las herramientas trabajen con el mismo conjunto de archivos de forma transaccionalmente estable.
    • Por ejemplo, mientras Snowflake escribe en los archivos, un científico de datos puede consultar los datos en tiempo real desde un notebook de Jupyter, y ClickHouse puede ofrecer analítica orientada al usuario sobre esos mismos datos.
    • Incluso si una empresa decide cambiar de Snowflake a Databricks, no sería un gran problema.
    • Hoy en día consultar estos formatos en S3 todavía no es tan rápido como la ingesta nativa, pero la presión del mercado hará que todos los proveedores de bases de datos optimicen el rendimiento.
    • Es una gran victoria para el open source y la apertura, y permite que las empresas tengan sus datos en formatos abiertos y portables.
    • Los lakehouses también tienen un impacto similar. Muchas empresas tienen tanto un data lake como un data warehouse y deben copiar datos entre ambos sistemas. Poder consultar el mismo conjunto de datos y administrar un solo sistema es igual de importante.
  • 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.

    • Iceberg es un formato de metadatos de base de datos para un conjunto de datos subyacente, y describe el esquema, el particionado y demás.
    • En un DBMS tradicional, el esquema, el motor de consultas y el formato de almacenamiento vienen en un solo paquete.
    • Pero en big data, puedes construir los componentes de la base de datos desde cero y combinarlos libremente. Puedes usar Iceberg como formato de metadatos, DuckDB como motor de consultas, Parquet como formato de almacenamiento y S3 como medio de almacenamiento.
  • 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.

    • Si quieres construir tu propio lakehouse no JVM, puedes usar Iceberg como metadatos, Parquet como datos, consultar con DuckDB usando tablas Arrow y procesar los datos mediante Arrow->Pandas o Polars.
    • Si mezclas Feather, el stack actual de lakehouse en Python no funciona.
  • 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 pregunto si implementar Iceberg podría mejorar esto. Pregunta si alguien tiene experiencia usando Iceberg.
  • 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.

    • A toda la industria le está costando divorciarse de tecnologías heredadas como MapReduce, Hive y Spark.
    • Planeo volver a investigar Iceberg y espero que este campo avance. Hoy tenemos herramientas y poder de cómputo para procesar datos sin tecnologías heredadas, y no todos los datos son big data.
    • Como resultado, la “ingeniería de datos” se parece cada vez más al desarrollo backend general, y se están aplicando prácticas comunes de desarrollo.
    • Ojalá llegue muy pronto una biblioteca pura de Python para Iceberg.
  • 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.

    • Pregunta si esto se debe a algo fundamental de la especificación o si existe la posibilidad de que Iceberg cierre la brecha.
  • 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.

    • Le gusta la idea de que la mejor manera de aprender algo nuevo es volver a explicárselo a otras personas, y él mismo ha empezado a aplicarlo en las notas de su sitio web.