DuckDB se integra con Clojure para procesamiento SQL de gran escala en un portátil

Fuentes: DuckDB power tools, now fully integrated with Clojure and tech.ml.dataset

TechAscent ha presentado la integración madura de DuckDB con su plataforma de ciencia de datos funcional tech.ml.dataset (TMD), escrita en Clojure. El objetivo es ofrecer procesamiento columnar en memoria y, cuando los datos exceden la RAM, ejecutar consultas SQL relacionales sobre almacenamiento en disco local sin renunciar al modelo funcional ni al rendimiento columnar. La primera versión, tmducken, vio la luz en diciembre de 2021 como una capa mínima sobre los bindings en C de DuckDB, pero obligaba a cargar todos los resultados en memoria y carecía de inserciones por lotes eficientes, por lo que Postgres siguió como complemento.

En los dos últimos años DuckDB ha mejorado notablemente: su interfaz en C ofrece ahora un sistema por lotes para inserciones y consultas que permite ejecutar joins de gran tamaño. La nueva versión se aprovecha en TMD para acceder al motor vectorizado de DuckDB. El artículo lo demuestra con un CSV de 50 GB y 400 millones de filas de transacciones que se carga en dos minutos, se reduce a 18 GB en disco y, tras añadir una tabla de 35.179 colores, soporta un INNER JOIN de 1.416 millones de filas en 2,49 segundos sobre un portátil. La integración permite alternar consultas SQL rápidas desde Clojure con procesamiento en TMD según convenga al problema.