Häufig gestellte Fragen zu Quack
FAQ zu Quack
Übersicht
Was ist Quack?
Quack erlaubt DuckDB, sich über das Protokoll quack: mit einem DuckDB-Server zu verbinden. Quack können Sie sich als Remote-Procedure-Call-(RPC-)Protokoll für DuckDB vorstellen. Quack ermöglicht DuckDB-Instanzen, miteinander zu sprechen, und macht DuckDB damit faktisch zu einem Client-Server-Datenbankmanagementsystem, bei dem sowohl Client als auch Server DuckDB-Instanzen sind.
Warum heißt es Quack?
Stockenten verständigen sich durch Quaken, daher ist es nur fair, dass DuckDB-Instanzen über das Protokoll quack kommunizieren.
Wann sollte ich Quack nutzen?
Quack kann in einer Reihe von Szenarien nützlich sein, darunter die folgenden:
- Sie brauchen gleichzeitigen Lese- und Schreibzugriff auf dieselbe DuckDB-Datenbank.
- Ihre Daten liegen auf einem Server und Sie möchten die Berechnung so nah wie möglich an die Daten bringen.
- Sie haben einen leistungsstarken Server, der die Daten verarbeiten kann, möchten die Ergebnisse aber auf Ihrem lokalen Rechner sehen.
- Und vieles mehr – wir sind gespannt, was die Community daraus macht.
Kann ich DuckDB mit Quack für transaktionale (OLTP-)Workloads nutzen?
Ja. DuckDB mit Quack schafft auf einem Server mit 8 CPUs und 32 GB RAM einige Tausend Schreibvorgänge pro Sekunde. Siehe die Benchmarks in unserem Ankündigungsbeitrag.
Kann ich DuckDB weiterhin als In-Process-Datenbank betreiben?
Ja, DuckDB als In-Process-Datenbank funktioniert weiterhin wie bisher, und wir behandeln das In-Process-Deployment-Modell als First-Class-Citizen im DuckDB-Ökosystem.
Quack nutzen
Wie steige ich mit Quack ein?
Bitte folgen Sie den Installationsanweisungen und der Dokumentation.
Wie funktioniert Quack?
Quack nutzt HTTP v2.0 für die Kommunikation. Dadurch funktioniert Quack in Umgebungen mit Firewalls, Load Balancern usw. Sie können Ihre eigene Verschlüsselung bereitstellen – siehe den Leitfaden „Reverse Proxy“.
Kann ich Quack schon nutzen?
Ja, Quack ist in DuckDB v1.5.3 als Beta-Release verfügbar. Zur Installation führen Sie aus:
INSTALL quack;Oder nutzen Sie es einfach wie in der Dokumentation beschrieben.
Funktionen
Ist das Quack-Protokoll schnell?
Ja, wir haben Quack als Hochleistungsprotokoll sowohl für Bulk-Operationen als auch für kleine Änderungen entworfen. Wir haben die Zahl der nötigen Roundtrips minimiert. Siehe die Benchmarks in unserem Ankündigungsbeitrag.
Wie richte ich einen sicheren Quack-Server ein?
Bitte lesen Sie in der Quack-Dokumentation die Seite Sicherheit und die Seite Quack mit einem Reverse Proxy absichern.
Unterstützt Quack den vollständigen DuckDB-SQL-Dialekt?
Ja. Standardmäßig können Sie alle SQL-Funktionen des entfernten DuckDB-Servers nutzen. Diese Funktionen lassen sich über eigene Autorisierungsfunktionen einschränken.
Unterstützt DuckDB mit Quack verteilte Query-Verarbeitung?
Derzeit unterstützt DuckDB mit Quack keine verteilte Query-Verarbeitung.
Ich habe einen Produktionsfall, der Funktion X in Quack braucht. Wie gehe ich vor?
Bitte lesen Sie den Eintrag „Ich möchte, dass Funktion X in DuckDB umgesetzt wird. Wie gehe ich vor?“ in der DuckDB-FAQ. Wenn Sie eine Funktion in Quack vermissen, eröffnen Sie bitte eine neue Discussion im Haupt-Repository von DuckDB.
Entwicklung
Ist Quack produktionsreif?
Noch nicht. Quack befindet sich derzeit im Beta-Stadium. Sie können Quack zum Prototyping nutzen, es wird aber noch entwickelt, und Breaking Changes sind zu erwarten. Das kann das Protokoll, Funktionsnamen und Standardeinstellungen betreffen. Wir rechnen damit, dass Quack in den kommenden Monaten ausreift, und planen die Freigabe als stabiles Protokoll mit DuckDB v2.0 im September 2026.
Wie kann ich zu Quack beitragen?
Der Code liegt im Repository duckdb-quack. Issues und Vorschläge für neue Funktionen sind willkommen, am besten über eine Discussion im Haupt-Repository von DuckDB.
Ich habe einen Fehler in Quack gefunden. Wo melde ich ihn?
Quack im DuckDB-Ökosystem
Wie verhält sich Quack zu Drittanbieter-Lösungen für den Remote-Zugriff auf DuckDB?
Es gibt mehrere Drittanbieter-Lösungen für den Remote-Zugriff auf DuckDB (z. B. die Airport-Erweiterung und GizmoSQL über das Arrow Flight Protocol). Quack ist eine Neuimplementierung von Grund auf durch das DuckDB-Kernteam. Im Sinne des DuckDB-Projekts hat Quack keine Drittanbieter-Abhängigkeiten.
Wie hängen Quack und DuckLake zusammen?
Quack ist ein Remote-Protokoll für DuckDB, das die Client-Server-Nutzung von DuckDB ermöglicht. DuckLake ist ein offenes Lakehouse-Format, das von verschiedenen Datenmanagementsystemen unterstützt wird, darunter DuckDB selbst, aber auch Apache Spark, Apache DataFusion und Trino.
Quack und DuckLake haben ein paar Gemeinsamkeiten:
- Beide sind in DuckDB als Erweiterung verfügbar.
- Beide erschließen die „Multiplayer-DuckDB“-Erfahrung, indem mehrere Schreiber auf dieselbe Datenbank zugreifen können.
Quack und DuckLake unterscheiden sich aber auch grundlegend.
Verhältnis zu DuckDB:
- Quack ist DuckDB-exklusiv, weil es DuckDB-Prozessen die Kommunikation ermöglicht.
- Das DuckLake-Format ist nicht DuckDB-exklusiv: DuckLakes können über verschiedene Clients erzeugt, gelesen und aktualisiert werden.
- Speicherung:
- Quack erlaubt den Betrieb eines DuckDB-Servers, der das native Datenbankformat von DuckDB zur Speicherung nutzt. Damit skalieren Sie bis zu einigen Terabyte.
- DuckLake speichert die Daten auf Object Storage und kann so sehr große, potenziell petabyte-skalige Datensätze halten.
- Einrichtung:
- Die Einrichtung von Quack erfordert nur die Installation der Quack-Erweiterung auf Client und Server.
- DuckLake braucht eine zentrale Katalogdatenbank. Ein typisches DuckLake-Setup umfasst Object Storage (die Daten liegen im Parquet-Format) und eine Katalogdatenbank.
Quack und DuckLake lassen sich in verschiedenen Kombinationen nutzen. Wenn Sie zum Beispiel eine sehr große Datenbank haben oder Time-Travel-Funktionen brauchen, kommt DuckLake in Frage, das über eine DuckDB-Instanz per Quack bereitgestellt wird.
Kann ich DuckDB mit Quack als Katalogdatenbank für DuckLake nutzen?
Wie hängen Quack und MotherDuck zusammen?
Quack ist ein Protokoll für den Remote-Zugriff auf einen DuckDB-Server. Es ist eine unter der MIT-Lizenz stehende Open-Source-Lösung, die Sie selbst hosten oder in der Cloud betreiben können.
MotherDuck bietet eine vollständig verwaltete Database-as-a-Service in der Cloud. Damit ermöglicht es ebenfalls Remote-Zugriff sowie weitere Funktionen einer verwalteten Datenbank (zentrale Nutzerverwaltung, Backups usw.) und fortgeschrittene Funktionen wie Dual Execution (eine Funktion, die Quack derzeit nicht unterstützt). MotherDuck nutzt DuckDB sowohl auf der Client- als auch auf der Serverseite, verwendet für die Kommunikation aber ein eigenes Protokoll. Beim Aufbau von Quack haben wir Erfahrungen des MotherDuck-Teams in unser Protokoll einfließen lassen. Zu MotherDucks Plänen mit Quack siehe den Abschnitt „Quacking On“ in ihrem Blogbeitrag zu Quack.