DuckDB Quack: Protocole client-serveur sur HTTP pour les analyses multi-utilisateur
DuckDB Quack: Protocole client-serveur sur HTTP pour les analyses multi-utilisateur
DuckDB a récemment annoncé Quack, un nouveau protocole client-serveur sur HTTP qui permet à plusieurs instances de DuckDB de se connecter et de travailler avec le même ensemble de données sur un réseau. Le protocole introduit des capacités client-serveur dans un ensemble de données qui était auparavant presque exclusivement local et embeddé.
En maintenant le flux de travail léger de DuckDB et la compatibilité SQL, Quack rend plus facile de partager des ensembles de données, de soutenir des utilisateurs concurrents, d'exécuter des analyses à distance et de créer des services de données de production sans passer à un système de base de données plus lourd et traditionnel. En comparaison avec les approches existantes, Quack est conçu pour être plus facile à utiliser et significativement plus rapide.
Source : DuckDB blog
Quack permet à plusieurs applications d'accéder au même ensemble de données de DuckDB simultanément à travers des connexions HTTP standard, en utilisant le format de données natif de DuckDB. DuckDB affirme que cet approche peut déplacer de grands ensembles de données d'environ 3,5 fois plus rapidement que Arrow Flight et significativement plus rapidement que PostgreSQL.
Publié sous la licence permissive MIT, DuckDB est une base de données analytique de code ouvert populaire conçue pour des requêtes SQL rapides sur de grands ensembles de données, directement à partir de fichiers locaux, d'applications ou de carnets. Comme SQLite, c'est une base de données en processus qui peut être incorporée dans une application sans nécessiter un serveur de base de données séparé. En introduisant Quack, l'équipe écrit :
Avec Quack, DuckDB peut maintenant être utile dans une large gamme de nouveaux cas d'utilisation, où la centralisation de l'état est plus importante que la requête locale hyperloquée. Nous avons déjà appris que les données ne sont pas toujours locales avec l'essor des lacs de données. En parlant de lacs, Quack sera également intégré dans DuckLake, de sorte que DuckDB lui-même puisse être un serveur de catalogue accessible à distance.
DuckDB a décidé de ne pas utiliser Arrow Flight SQL, un protocole pour interagir avec les bases de données SQL en utilisant le format en mémoire Arrow et le framework RPC Flight, parce qu'ils voulaient avoir le contrôle complet sur la transmission des données et l'évolution du protocole. Ils affirment également que Quack est plus efficace pour les requêtes petites puisqu'il peut envoyer une requête et retourner les résultats dans un seul round-trip de réseau. L'équipe ajoute :
Nous sentons que pour continuer à innover dans les systèmes de données, nous ne devons pas être limités par des formats contrôlés externement.
La réponse de Hacker News a été en grande majorité positive, avec les développeurs qui la voient comme un pas important vers des flux de travail d'analyses multi-utilisateur partagés, tandis que DuckDB reste léger et facile à distribuer. Ryan Glover, principal gestionnaire de Lattice Engineering, commente :
C'est rad. J'ai toujours pensé utiliser DuckDB dans mon cadre d'applications internes et cela a résolu le problème "mais comment fais-je pour échelonner cela horizontalement?". Félicitations aux membres de DuckDB. J'aime "Quack" pour le nom du protocole.
L'utilisateur kvlonge ajoute sur Reddit :
Il serait génial de pouvoir démarrer DuckDB sur un serveur et de pouvoir communiquer avec lui à distance comme un 'base de données normale'.
DuckDB prévoit d'intégrer Quack avec DuckLake, d'améliorer les performances et de publier une version de production avec DuckDB 2.0 plus tard en 2026. L'équipe travaille également sur un meilleur support pour les bases de données à distance, un plus grand débit de transactions, des extensions de protocole personnalisables et des fonctionnalités de réplication.
Dans l'article "From DeepSeek to Quack: When the Dream of Distributed DuckDB Started to Feel Real", Amir Sefati met en avant les avantages des instances de DuckDB qui se parlent entre elles :
Lorsque l'on combine cela avec la stockage d'objets, DuckLake, Parquet et les bases de données vectorielles,
Commentaires (0)
Login or Register to apply