APACHE HUDI: QUÉ ES Y CÓMO FUNCIONA

Apache Hudi es una plataforma open source de data lakehouse que transforma los tradicionales data lakes en sistemas mucho más potentes y similares a una base de datos. En palabras simples:
Es un formato de tabla transaccional de alto rendimiento que se construye encima de almacenamiento barato (como S3, ADLS, GCS, HDFS) y añade capacidades que antes solo tenían las bases de datos o data warehouses, pero manteniendo la escalabilidad y bajo costo de un data lake.

¿Qué problemas resuelve principalmente?

Los data lakes clásicos (solo Parquet/Avro/ORC en buckets) son muy buenos para almacenar petabytes baratos, pero muy malos para:
  • Actualizar o borrar registros (upserts y deletes) de forma eficiente.
  • Procesar datos de forma incremental (solo lo nuevo/cambiado).
  • Garantizar transacciones ACID.
  • Hacer streaming near-real-time + batch en la misma tabla.
  • Time travel (ver cómo estaba la tabla en el pasado).
  • Índices para acelerar consultas.
Hudi soluciona todo esto y se convirtió (junto con Delta Lake y Apache Iceberg) en uno de los tres grandes formatos open table para la arquitectura lakehouse.

Características clave de Apache Hudi

  • Soporte nativo para upserts, deletes y merges muy eficientes
  • Dos modos de almacenamiento:
    • Copy-on-Write (CoW) → óptimo para lecturas frecuentes (como un data warehouse).
    • Merge-on-Read (MoR) → óptimo para escrituras frecuentes y datos near-real-time Incremental processing muy potente (ideal para CDC, streaming, pipelines que solo procesan deltas).
  • ACID transactions completas.
  • Time travel y versionado de tablas.
  • Índices (Bloom, columnar, record-level) para acelerar queries.
  • Integración excelente con Spark, Flink, Presto/Trino, Hive, Doris, Athena, DuckDB, etc.
  • Soporte para streaming ingestion de alto rendimiento (Kafka, Flink, Spark Streaming).
  • Compaction, clustering, cleaning automáticos para mantener rendimiento.
  • Está evolucionando fuertemente hacia cargas AI/ML: vectores, embeddings, soporte para formatos como Lance, búsqueda vectorial nativa, datos no estructurados, etc.

¿Quién lo creó y quién lo usa?

  • Creado originalmente por Uber (~2016) para manejar sus enormes flujos de datos cambiantes.
  • Donado a Apache en 2019.
  • Empresas grandes que lo usan en producción masiva: Uber, Walmart, JD.com, ByteDance, AWS (EMR/ Athena), Google Cloud, muchos bancos y fintechs, etc.