Kategorien anzeigen

Wie man eine DuckDB-Datenbank als sichere REST-API bereitstellt

12 Minuten Lesezeit

DuckDB-Logo DUCKDB REST-API

Wandeln Sie eine DuckDB-Abfrage in eine sichere REST-API — keine httpserver-Erweiterung, kein zu hostender Dienst.

DuckDB ist eine schnelle, dateibasierte Analyse-Engine ohne Serverprozess und ohne integrierte Authentifizierung. Speichern Sie eine SQL-Abfrage für Ihre Datenbank. .duckdb Datei erstellen, einen API-Schlüssel pro Empfänger generieren und einem Partner einen aktiven JSON-Endpunkt übergeben – nein httpserver Erweiterung zum Bereitstellen, kein FastAPI-Wrapper zum Erstellen, keine Datenbankdatei zum Ausliefern. Nur eine verwaltete, schreibgeschützte Schnittstelle. DuckDB REST-API in Minuten.

Kein Server zum Ausführen Schlüssel pro Empfänger Schreibgeschützt erzwungen Nichts zum Ausrollen

Query Streams ist eine sichere Echtzeit-Datenbankintegrationsplattform, die jede gespeicherte DuckDB-Abfrage in einen partnerfähigen REST-API-Endpunkt umwandelt – mit empfängerspezifischen Schlüsseln, Schreibschutz und einem vollständigen Prüfprotokoll. Du bekommst ein Live-Video DuckDB REST-API ohne einen Server zu betreiben, installieren Sie die httpserver Erweiterung oder Versand Ihrer Datenbankdatei. Weitere Informationen finden Sie unter QueryStreams.com. und kostenlos anmelden Veröffentlichen Sie Ihren ersten DuckDB-Endpunkt in wenigen Minuten.

Warum sollte man eine DuckDB-Datenbank als REST-API bereitstellen?

DuckDB ist gerade deshalb genial, weil es keinen Server benötigt – es läuft im selben Prozess und liest eine einzige Datei. .duckdb Die Serverless-Architektur verarbeitet Daten (oder fragt Parquet-, CSV- und JSON-Dateien direkt ab) und führt analytische Workloads in Spaltenspeichergeschwindigkeit auf einem Laptop oder einem Cronjob aus. Sobald jedoch jemand außerhalb des eigenen Teams diese Zahlen benötigt – ein Kunde einen Live-Feed wünscht, die App eines Partners einen Rollup lesen muss oder ein Analyst die aggregierten Daten in seinem Dashboard anzeigen möchte –, wird diese Serverless-Architektur zum Hindernis. Es gibt keinen Port, über den eine Verbindung hergestellt werden kann, und keine Zugangsdaten, die weitergegeben werden müssen. Die üblichen Workarounds sind allesamt ineffektiv: Man sendet eine E-Mail an den/die/das … .duckdb Datei (jetzt befindet sich eine vollständige Kopie Ihrer Daten auf dem Laufwerk einer anderen Person), Sie gründen die Community httpserver Sie können eine Erweiterung oder einen FastAPI-Wrapper verwenden (jetzt besitzen Sie einen HTTP-Dienst, dessen Authentifizierung und TLS), oder Sie planen einen weiteren CSV-Export. DuckDB REST-API Das ist die bereinigte Version – der Partner erhält eine URL und ein Token, nicht Ihre Datei. Query Streams wandelt dies in eine gespeicherte Abfrage plus einen Schlüssel um.

Kein Server, kein offener Port

DuckDB verfügt über keinen Netzwerk-Listener – und Sie fügen auch keinen hinzu. Der Netzwerk-Agent liest Ihre .duckdb Die Datei wird lokal gespeichert und ausgehende Anrufe werden über dieselbe Verbindung getätigt; eingehende Anrufe werden über dieselbe ausgehende Verbindung zurückgeleitet.

API-Schlüssel pro Empfänger

Jeder Empfänger erhält sein eigenes qsapi_* Schlüssel. Einen widerrufen, ohne die anderen anzutasten – keine Datei zum Wiederherstellen, kein Passwort zum Ändern.

Designbedingt schreibgeschützt

Der Agent öffnet DuckDB im Lesemodus, und ein Validator lehnt alle Anweisungen ab, die nicht SELECT sind. Es gibt keine INSTALLIEREN, KOPIE, oder BEFESTIGEN Pfad durch die API.

Ihre SQL-Abfrage und Ihre Datei bleiben privat.

Der Empfänger sieht die Endpunkt-URL, die JSON-Antwort und alle von Ihnen freigegebenen Filter – niemals Ihre SQL-Abfrage, Ihr Schema oder die … .duckdb Die Datei selbst.

Nichts zu hosten oder zu patchen

Nein httpserver Erweiterung zur Bereitstellung, keine FastAPI-Anwendung, kein Reverse-Proxy. Der Endpunkt läuft als verwaltetes Feature, daher ist keine Bereitstellungspipeline oder TLS-Rotation erforderlich.

permanent, ablaufend oder selbstzerstörend

Einen Endpunkt dauerhaft machen, ein Ablaufdatum festlegen oder ein festes Anrufbudget zuweisen, das sich nach einer bestimmten Anzahl von Anfragen selbst zerstört.

Die üblichen Methoden, um eine REST-API auf DuckDB zu implementieren – und warum sie schädlich sind

Hier gibt es echte Optionen, und jede hat ihre Berechtigung. Der Haken dabei ist, dass Sie bei allen die Infrastruktur selbst verwalten, eine vollständige Kopie Ihrer Daten weitergeben oder beides. Im Folgenden wird der Vergleich der gängigen Ansätze mit einem gemeinsam genutzten Query-Streams-Endpunkt erläutert, wenn das Ziel lediglich darin besteht, einem bestimmten Partner das Lesen eines bestimmten Ergebnissatzes zu ermöglichen.

Sorge httpserver-Erweiterung (selbstgehostet) DIY FastAPI + duckdb Sende die .duckdb-Datei Abfrageströme
Netzwerkpräsenz Sie betreiben und stellen einen HTTP-Server bereit. Sie hosten einen Dienst Keine – aber die Daten verlassen Ihre Kontrolle Agent nur für ausgehende Verbindungen – kein eingehender Port
Was der Empfänger in Händen hält Eine URL, die standardmäßig beliebigen SQL-Code ausführt Eine URL zu Ihrem Dienst Eine vollständige Kopie Ihrer gesamten Datenbank Ein Schlüssel für einen einzigen Zweck für eine Abfrage
Daten-/Schema-Offenlegung Gesamte Datenbank, alle Tabellen Was auch immer Sie von Hand codieren Für immer Eine gespeicherte Abfrage, sonst nichts.
Empfängerspezifische Schlüssel + Widerruf Nicht eingebaut Bau es selbst Unmöglich, sobald geteilt Eingebaut
Audit-Protokoll jedes Anrufs Füge es selbst hinzu Füge es selbst hinzu Absolut keine Sicht Eingebaut
Sie betreiben/patchen/rotieren TLS Ja, für immer. Ja, für immer. Nichts zum Laufen Für Sie verwaltet
Die Daten bleiben aktiv Ja Ja Schon im Moment des Absendens veralten sie. Bei jedem Anruf live dabei sein.

Möchten Sie DuckDB über HTTP ohne die httpserver-Erweiterung bereitstellen?

Die Gemeinschaft httpserver Die Erweiterung eignet sich hervorragend, um einen Ad-hoc-Abfrageendpunkt auf einem von Ihnen kontrollierten Rechner einzurichten. Sie führt jedoch beliebigen SQL-Code aus und kennt weder Empfängerschlüssel noch Kontingente oder einen Audit-Trail – daher ist sie nicht für den Einsatz bei Partnern geeignet. Wenn Sie einem benannten Partner ein verwaltetes, schreibgeschütztes Ergebnis-Set mit eigenem Schlüssel und ohne Serverbetrieb bereitstellen möchten, schließt Query Streams genau diese Lücke.

Wie Query Streams eine DuckDB-Abfrage in eine REST-API umwandelt

Sobald der Netzwerkagent neben Ihrer DuckDB-Datei installiert und der Konnektor konfiguriert ist, sind für die Übertragung einer gespeicherten Abfrage an einen gemeinsam genutzten REST-Endpunkt etwa drei Schritte erforderlich. Wenn Sie bereits Query Streams für Excel, Google Sheets oder den MCP-Server verwenden, sind Agent und Konnektor bereits vorhanden – Sie beginnen mit Schritt zwei.

1

Richten Sie den Agenten auf Ihre DuckDB-Datei aus.

Installieren Sie den Netzwerkagenten auf dem Rechner, der Ihre .duckdb Die Datei wird geöffnet und ein DuckDB-Connector hinzugefügt. Der Agent öffnet die Datei im Nur-Lese-Modus und stellt eine ausgehende TLS-Verbindung zu Query Streams her – es werden keine Daten an das Internet weitergegeben.

2

Speichern einer SQL-Abfrage

Schreibe die SELECT Im Abfrage-Generator für Ihre DuckDB-Verbindung sind Aggregationen, Fensterfunktionen und Lesezugriffe auf angehängte Parquet-, CSV- oder JSON-Dateien willkommen. Benennen Sie die Abfrage und speichern Sie sie.

3

Bewerben Sie es und teilen Sie einen Schlüssel

Öffnen Sie den Tab „Installieren“, wählen Sie den Endpunkttyp (permanent, zeitlich begrenzt oder Anrufbudget) und das Ausgabeformat aus und laden Sie anschließend einen Empfänger per E-Mail ein. Dieser erhält einen Magic-Link-Claim und seine eigene qsapi_* Schlüssel.

Eine gespeicherte Abfrage, viele Oberflächen

Dieselbe gespeicherte DuckDB-Abfrage kann eine Aktualisierung von Excel, eine Seitenleiste in Google Sheets oder eine Konversation mit Claude oder Cursor auslösen. MCP-Server, und Gleichzeitig wird ein REST-Endpunkt für Partner bereitgestellt. Sie erstellen die Abfrage einmalig; Query Streams kümmert sich um die Schnittstellen.

Kein Server zum Laufen, keine Datei zum Übergeben

Das Sicherheitsmodell ist der Grund, warum Teams darauf zurückgreifen anstatt auf das andere. httpserver Es handelt sich weder um eine Dateierweiterung noch um eine freigegebene Datei. Ihre DuckDB-Datei verlässt niemals Ihren Rechner, und der Pfad dazu ist ausschließlich in der Agentenkonfiguration in Ihrem Netzwerk gespeichert – er wird niemals an unsere Cloud übertragen und ist für keinen Empfänger sichtbar. DuckDB selbst wird im Nur-Lese-Modus geöffnet, und ein Validator in Ihrem Netzwerk lehnt jede Nicht-SELECT-Anweisung ab. READONLY_VIOLATION bevor es ausgeführt werden kann.

Neben der Durchsetzung des Nur-Lese-Modus unterstützt derselbe Agent, der nur ausgehende Verbindungen ermöglicht (HTTPS auf Port 443, keine eingehenden Ports oder VPN), die Empfängersteuerung jedes Endpunkts – IP- und CORS-Zulassungslisten, zweistufige Ratenbegrenzungen und optionale Byte-Kontingente, die Sie vor der Freigabe einschränken können. Wie die ausschließlich ausgehenden Verbindungen und die empfängerspezifischen Schutzmechanismen funktionieren →

Rufen Sie Ihre DuckDB REST-API auf.

Empfänger rufen den Endpunkt wie jede andere REST-API auf: mit einem Bearer-Token und einer URL. Jeder gespeicherte Abfrageparameter, den Sie freigegeben haben, kann pro Aufruf – in der Abfragezeichenfolge – festgelegt werden. ERHALTEN oder in einem JSON-Body für POSTDer Agent bindet diese Werte als ordnungsgemäße Parameter für vorbereitete Anweisungen, niemals durch Zeichenkettenverkettung, sodass ein Empfänger nicht aus einem Filter ausbrechen und SQL einschleusen kann.

GET mit einem Filterparameter
# Empfängeraufruf an Ihren DuckDB-gestützten Endpunkt Locke -H „Autorisierung: Bearer qsapi_K7…ZmQ“ \ “https://api.querystreams.com/v1/endpoints/revenue-by-month?year=2026&region=EMEA”

Wählen Sie das Ausgabeformat pro Aufruf mit der Akzeptieren Kopfzeile (oder ein ?format= Abfrageparameter): JSON für ein einzelnes Array, CSV für Tabellenkalkulationen und Pandas oder auf einem Streaming-Endpunkt, NDJSON (Eine JSON-Zeile pro Zeile) für Parse-as-you-go-Pipelines – praktisch für die großen analytischen Ergebnismengen, die DuckDB erzeugt. Für bandbreitenempfindliche Nutzer: Option aktivieren LZ4 Nutzlastkomprimierung mit Accept-Encoding: lz4; unkomprimierte Antworten erhalten ebenfalls Standardwerte gzip Die Übertragung erfolgt automatisch. Eine detaillierte Aufschlüsselung der statischen und Streaming-Modi, der vier Drahtkombinationen und der OpenAPI 3.1-Generation finden Sie unter [Link einfügen]. Sofortige REST-API für SQL-Datenbanken Führung.

Wie die Nutzung abgerechnet wird

Die API-Plattform ist Bestandteil jedes Query Streams-Plans – kein separates Abonnement erforderlich – und eine Accept-Encoding: lz4 Anrufkosten für die tatsächlich übertragenen komprimierten Bytes. wie die Nutzung der API-Plattform gemessen wird →

Integrieren Sie es in Power BI, Tableau und alle Programme, die JSON lesen können.

DuckDB ist eine Analyse-Engine, daher werden die Ergebnisse meist in einem Dashboard angezeigt. Da jeder Endpunkt Standardwerte zurückgibt, … JSON — mit CSV und Streaming-NDJSON im Hintergrund — jedes Tool, das einen REST-Feed lesen kann, kann Ihre DuckDB-Daten direkt nutzen, ohne dass auf deren Seite etwas installiert werden muss. Power-Abfrage ist der einfachste Einstieg in die Microsoft BI-Welt: in Power BI wählen Daten abrufen → Aus dem WebFügen Sie die Endpunkt-URL ein und fügen Sie Ihre Genehmigung Die Kopfzeile und Power Query parsen das JSON in eine aktualisierbare Tabelle, die Ihr Datenmodell speist. (Für Live-Daten in einer Tabellenkalkulation, die native Query Streams Excel-Add-on ist der einfachere Weg – Power Query steht Ihnen zur Verfügung, wenn Sie die Daten direkt im Power BI-Modell benötigen.)

Microsoft Power Query-Logo Power-Abfrage Daten abrufen → Aus dem Web: URL und Bearer-Token einfügen, JSON in eine aktualisierbare Tabelle erweitern.
Microsoft Power BI-Logo Power BI Dieselbe Power Query-Engine – laden Sie den Endpunkt direkt in Ihr Modell und planen Sie die Aktualisierung.
Tableau-Logo Tableau Verbinden Sie einen Webdatenkonnektor oder eine JSON-Quelle mit dem Endpunkt, um Live-Dashboards anzuzeigen.
Postman-Logo Briefträger Importieren Sie die OpenAPI 3.1-Spezifikation und senden, prüfen und teilen Sie dann Anfragen mit einem Klick.

Es ernährt auch n8n, Qlik, Locke, Python (Anfragen oder pandas.read_json), Insomnia, Hoppscotch — oder jedes Skript oder jeder Workflow, der eine HTTP-Anfrage senden und JSON lesen kann.

Funktioniert mit lokalen Dateien und Netzwerkfreigaben

Der Netzwerkagent verbindet sich auf die gleiche Weise mit einem lokalen .duckdb Ob Datei, Datenbankdatei auf einer Netzwerkfreigabe oder eine In-Memory-DuckDB-Instanz – der Agent beantwortet jede Abfrage, die Sie ausführen können, einschließlich solcher, die Parquet-, CSV- oder JSON-Dateien lesen, auf die Ihre DuckDB-Instanz zugreifen kann. Für die geringste Latenz sollte der Agent auf oder in der Nähe des Rechners ausgeführt werden, der die Daten enthält. Ein Query Streams-Konto kann mehrere Agents auf verschiedenen Rechnern und Standorten ausführen, und ein einzelner Endpunkt verhält sich unabhängig vom verwendeten Agent identisch.

Mehr als DuckDB

Derselbe Workflow überträgt eine gespeicherte Abfrage von PostgreSQL, Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle oder BigQuery an einen REST-Endpunkt. DuckDB ist einer der am schnellsten wachsenden Ausgangspunkte. Stöbern Sie in der Anleitungen zur Konnektoreinrichtung für die aktuelle Liste.

Häufig gestellte Fragen

Muss ich einen Server betreiben oder die httpserver-Erweiterung installieren? +
Nein. DuckDB bleibt genau so, wie es ist – eine prozessbasierte, dateibasierte Engine. Der Netzwerkagent öffnet Ihren .duckdb Die Datei ist auf Ihrem eigenen Rechner schreibgeschützt und stellt eine ausgehende TLS-Verbindung her zu agent.querystreams.com auf Port 443. Es gibt keinen httpserver Es muss keine Erweiterung installiert werden, kein Port muss geöffnet werden und keine eingehende Firewall-Regel muss hinzugefügt werden.
Kann der Empfänger meine SQL-Abfrage einsehen oder meine .duckdb-Datei herunterladen? +
Niemals. Der Empfänger sieht die Endpunkt-URL, den Antworttext und alle Parameter, die Sie als Filter freigegeben haben. Die SQL-Anweisungen bleiben in den Abfragestreams erhalten. .duckdb Die Datei verlässt niemals Ihren Rechner – im Gegensatz zum Versenden einer E-Mail landet keine Kopie Ihrer Daten jemals auf dem Laufwerk des Empfängers.
Worin unterscheidet sich dies von der DuckDB-HTTP-Server-Erweiterung? +
Die Gemeinschaft httpserver Die Erweiterung verwandelt einen von Ihnen kontrollierten Rechner in einen HTTP-Endpunkt, der beliebige SQL-Abfragen ausführt – ideal für den schnellen internen Zugriff, jedoch ohne Empfängerschlüssel, Kontingente, Audit-Trail und eigene Hosting- und Sicherheitsmaßnahmen. Query Streams verfolgt den gegenteiligen, fokussierteren Ansatz für die ausgehende Freigabe: Eine gespeicherte Abfrage wird zu einem Endpunkt, jeder Empfänger erhält einen eigenen, widerrufbaren Schlüssel, jeder Aufruf wird protokolliert und es ist keine Bereitstellung oder Aktualisierung erforderlich.
Welche Ausgabeformate kann die API zurückgeben? +
JSON (Standard), CSV und – bei einem Streaming-Endpunkt – NDJSON, das sich für die großen analytischen Ergebnismengen von DuckDB eignet; Empfänger wählen das Format pro Aufruf aus. Akzeptieren Kopfzeile oder ein ?format= Parameter. die vier Drahtkombinationen und die LZ4-Kompression →
Kann die Abfrage Parquet-, CSV- oder JSON-Dateien über DuckDB lesen? +
Ja. Alles, was Sie gespeichert haben. SELECT Daten, die DuckDB einlesen kann – sei es eine native Tabelle, eine angehängte Parquet- oder CSV-Datei, ein JSON-Dokument oder eine Ansicht mehrerer Tabellen – können zu einem Endpunkt werden. Der Empfänger sieht lediglich das JSON-Ergebnis; er erfährt im Hintergrund nicht, ob es aus einer Tabelle oder einer Datei stammt.
Kann ein Endpunkt ablaufen oder sich selbst zerstören? +
Ja – ein Endpunkt kann permanent sein, zu einem bestimmten Datum ablaufen oder über ein festes Anrufbudget verfügen, das nach einer festgelegten Anzahl von Anfragen endet, und der Schlüssel eines jeden Empfängers kann sofort widerrufen werden, ohne die anderen zu beeinträchtigen. Lebensdauer von Endpunkten und Schlüsselwiderruf erklärt →
Wo muss der Agent für DuckDB ausgeführt werden? +
Auf einem Rechner, der auf Ihre DuckDB-Datei zugreifen kann – entweder auf dem Rechner, der die lokale Datei enthält .duckdb Die Datei oder eine Datei mit Zugriff auf die Netzwerkfreigabe, auf der sie gespeichert ist, sollte verwendet werden. Um die geringste Latenz zu erzielen, sollte sie so nah wie möglich an den Daten ausgeführt werden. Ein Query Streams-Konto kann mehrere Agents auf verschiedenen Rechnern und Standorten ausführen, und jeder dieser Agents kann denselben Endpunkt bedienen.
Benötigt der Empfänger ein Query Streams-Konto? +
Nein – teilen Sie die Informationen per E-Mail mit einer Person, die dann einen Magic-Link-Schlüssel erhält (eine Free-Tier-Organisation wird automatisch erstellt), oder stellen Sie einen Service-Schlüssel für den unbeaufsichtigten Maschinenzugriff aus. Empfängerspezifische Schlüssel vs. Dienstschlüssel →

Los geht's

Veröffentlichen Sie Ihre erste DuckDB REST-API kostenlos.

Registrieren Sie sich, installieren Sie den Netzwerkagenten neben Ihrer DuckDB-Datei, speichern Sie eine SQL-Abfrage und senden Sie einem Empfänger einen Magic-Link-Claim per E-Mail. Empfängerspezifische Schlüssel, Schreibschutz und ein vollständiges Audit-Protokoll sind ab dem ersten Aufruf aktiviert.

Verwandte Leitfäden: Sofortige REST-API für SQL-Datenbanken | PostgreSQL als REST-API bereitstellen | Datenbank-REST-API-Plattform | Anleitungen zur Konnektoreinrichtung

Kategorie: API-Plattform

Tags: duckdb-rest-api, duckdb, duckdb-server, duckdb-api, rest-api, expose-duckdb-as-api, httpserver-alternative, share-duckdb-data, per-recipient-keys, no-code-api, database-rest-api

Meta-Beschreibung: Verwandeln Sie eine DuckDB-Abfrage in eine sichere, schreibgeschützte REST-API mit empfängerspezifischen Schlüsseln – ohne httpserver-Erweiterung, ohne Server, ohne Code.

Aktualisiert am 16. Juni 2026

Angetrieben durch BetterDocs