GuíaIntermedio

Guía de Lakehouse e Iceberg

Parquet es un formato de archivo, no un formato de tabla — y esta guía te muestra, con el propio caso Kiosko, las cuatro veces que ese límite ya dolió: el `overwrite-partition` no atómico de las lecciones básicas, las columnas `valid_from`/`valid_to` mantenidas a mano para historizar un producto, la misma técnica automatizada con `dbt snapshot`, y el particionado por carpetas de Spark. Aprendes Apache Iceberg, el formato de tabla que resuelve todo eso desde la capa de almacenamiento: transacciones ACID reales, un snapshot inmutable en cada escritura, time travel (`AS OF` un snapshot, sin declarar una sola columna de historia), evolución de esquema sin reescribir datos, partición oculta y evolución de partición, y `MERGE INTO`/upserts nativos. El vehículo principal es PyIceberg, 100% Python y $0 (catálogo local sobre SQLite); Spark aparece una sola vez, en el módulo de `MERGE INTO`, para correr SQL real contra una tabla Iceberg. Delta Lake se nombra por contraste, sin construir una segunda implementación paralela. El hilo que resuelves de punta a punta es el cambio de precio de un producto de Kiosko, recuperado con time travel puro, sin ninguna columna de historia.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Nombrar con precisión la diferencia entre formato de archivo y formato de tabla, y las cuatro veces que Parquet solo ya mostró su techo en el ecosistema de Kiosko
  • Instalar PyIceberg, crear un catálogo local (SQLite + filesystem) y cargar la primera tabla Iceberg real a partir de un Parquet existente
  • Recorrer la anatomía de una tabla Iceberg: catálogo → archivo de metadata → manifest list → manifest files → archivos de datos
  • Usar time travel (`AS OF` un `snapshot-id`) para recuperar el estado anterior de una tabla, sin declarar `valid_from`/`valid_to` en ningún lado
  • Evolucionar el esquema de una tabla (agregar, renombrar, borrar columnas) sin reescribir un solo archivo de datos existente
  • Contrastar el particionado visible por carpetas (Hive) con la partición oculta de Iceberg, y evolucionar el esquema de partición hacia adelante sin reescribir los datos ya existentes
  • Ejecutar `MERGE INTO` nativo con Spark SQL y `table.upsert()` de PyIceberg como alternativa 100% Python para el mismo problema
  • Nombrar catálogos de producción (REST, AWS Glue, Unity Catalog, Polaris) y aplicar mantenimiento básico: compactación de archivos pequeños y expiración segura de snapshots
  • Decidir con criterio cuándo un lakehouse sobre Iceberg gana frente a un warehouse gestionado clásico o frente a Parquet plano sin más

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Data engineers que ya escribieron Parquet o construyeron un warehouse dimensional y quieren resolver versionado/historia desde el formato de tabla, no a mano con columnas
  • Devs evaluando si su equipo necesita Iceberg o Delta Lake, y quieren entender la diferencia real (no solo el nombre de moda)
  • Cualquiera preparándose para roles donde "Apache Iceberg or Delta Lake" aparece como requisito explícito de la oferta
  • Data engineers que completaron `data-modeling-for-analytics-guide`, `dbt-analytics-engineering-guide` y/o `spark-and-distributed-processing-guide` y quieren cerrar el hilo de historia que esas guías dejaron abierto

Requisitos y materiales

  • Python intermedio; comodidad leyendo y escribiendo Parquet
  • SQL básico (joins, `WHERE`, agregaciones)
  • Ideal haber completado `data-modeling-for-analytics-guide` (el problema de `dim_product` historizado a mano) y `spark-and-distributed-processing-guide` (el Parquet particionado que esta guía convierte a Iceberg); Spark + Java 17 solo se necesita para el módulo de `MERGE INTO`

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!