Marc Paul, desarrollador del repositorio StockAlgo, detalla la migración de su sistema de análisis financiero desde una base de datos transaccional (OLTP) basada en InnoDB a un almacene de datos (OLAP) utilizando Iceberg. Esta decisión se tomó para optimizar el rendimiento en cargas de trabajo analíticas intensivas, donde la lectura de datos es más crítica que la escritura. En la versión inicial, el sistema utilizaba InnoDB, que garantiza la consistencia mediante logs de deshacer y control de concurrencia multi-versión (MVCC), pero presentaba limitaciones significativas en la ingesta de datos masivos debido a la necesidad de actualizar múltiples árboles B para cada escritura. Además, el diseño de la tabla financiera original, que almacenaba todas las columnas en una sola tabla, resultó ineficiente al escalar a más de 100 GB de datos, forzando uniones costosas en cada consulta. La solución adoptada en la versión actual utiliza Iceberg sobre MinIO, con archivos Parquet gestionados por un catálogo Polaris y procesados por Spark. Esta arquitectura permite una particionamiento eficiente mediante hash, reduciendo el tiempo de partición de semanas a días y eliminando la necesidad de repartir tablas completas. El autor destaca que comprender la diferencia entre manifiestos y archivos de datos en Iceberg fue clave para dominar el optimizador de consultas del lakehouse, permitiendo una gestión de datos analíticos mucho más ágil y escalable que la base transaccional original.
