DuckDB Quack: Protocolo cliente-servidor sobre HTTP para análisis multiusuario
DuckDB Quack: Protocolo cliente-servidor sobre HTTP para análisis multiusuario
DuckDB ha anunciado recientemente Quack, un nuevo protocolo remoto sobre HTTP que permite a varias instancias de DuckDB conectarse y trabajar con el mismo conjunto de datos en una red. El protocolo introduce capacidades cliente-servidor en un conjunto de datos que era anteriormente principalmente local y embeddado.
Manteniendo el flujo de trabajo ligero de DuckDB y la compatibilidad SQL, Quack hace que sea más fácil compartir conjuntos de datos, apoyar usuarios concurrentes, ejecutar análisis remotamente y crear servicios de datos de producción sin cambiar a un sistema de base de datos más pesado y tradicional. En comparación con los enfoques existentes, Quack está diseñado para ser más fácil de usar y significativamente más rápido.
Fuente: DuckDB blog
Quack permite a varias aplicaciones acceder al mismo conjunto de datos de DuckDB simultáneamente a través de conexiones HTTP estándar, utilizando el formato de datos nativo de DuckDB. DuckDB afirma que este enfoque puede mover grandes conjuntos de datos aproximadamente 3,5 veces más rápido que Arrow Flight y significativamente más rápido que PostgreSQL.
Publicado bajo la licencia permissiva MIT, DuckDB es una base de datos analítica de código abierto popular diseñada para consultas SQL rápidas en grandes conjuntos de datos, directamente desde archivos locales, aplicaciones o cuadernos. Como SQLite, es una base de datos en proceso que puede ser incorporada dentro de una aplicación sin requerir un servidor de base de datos separado. Al introducir Quack, el equipo escribe:
Con Quack, DuckDB puede ahora ser útil en una amplia gama de nuevos casos de uso, donde la centralización del estado es más importante que la consulta local hiperalojada. Hemos tenido que aprender que los datos no siempre son locales con el aumento de los lagos de datos. Al hablar de lagos, Quack también será integrado en DuckLake, de modo que DuckDB mismo pueda ser un catálogo accesible a distancia.
DuckDB decidió no utilizar Arrow Flight SQL, un protocolo para interactuar con bases de datos SQL utilizando el formato en memoria Arrow y el marco de trabajo RPC Flight, porque querían tener control completo sobre cómo se transfieren los datos y cómo evoluciona el protocolo. También afirman que Quack es más eficiente para consultas pequeñas ya que puede enviar una consulta y devolver los resultados en un solo round trip de red. El equipo agrega:
Sentimos que para poder seguir innovando en sistemas de datos, no podemos permitirnos ser limitados por formatos controlados externamente.
La respuesta de Hacker News fue en gran medida positiva, con los desarrolladores que la ven como un paso importante hacia flujos de trabajo de análisis multiusuario compartidos mientras DuckDB sigue siendo ligero y fácil de distribuir. Ryan Glover, principal gerente de Lattice Engineering, comenta:
Esto es radical. He tenido en mente utilizar DuckDB en el marco de aplicaciones internas de mi empresa y esto ha resuelto el problema "pero ¿cómo hago para escalar esto horizontalmente?". Felicidades a los miembros de DuckDB. Me gusta "Quack" por el nombre del protocolo.
El usuario kvlonge agrega en Reddit:
Podría iniciar DuckDB en un servidor y que las personas hablen con él remotamente como un 'base de datos normal' será un gran desbloqueo.
DuckDB planea integrar Quack con DuckLake, mejorar las prestaciones y lanzar una versión producida con DuckDB 2.0 más tarde en 2026. El equipo también está trabajando en un mejor soporte para bases de datos remotas, mayor throughput de transacciones, extensiones de protocolo personalizables y funcionalidades de replicación.
En el artículo "From DeepSeek to Quack: When the Dream of Distributed DuckDB Started to Feel Real", Amir Sefati destaca la ventaja de instancias de DuckDB que se hablan entre sí:
Cuando se combina esto con almacenamiento de objetos, DuckLake, Parquet y bases de datos vectoriales,
Comentarios (0)
Login or Register to apply