Categorieën bekijken

Hoe een DuckDB-database als een beveiligde REST API beschikbaar te stellen

Leestijd: 12 minuten

DuckDB-logo DUCKDB REST API

Zet een DuckDB-query om in een beveiligde query REST API — geen httpserver-extensie, geen service om te hosten.

DuckDB is een snelle, op bestanden gebaseerde analyse-engine zonder serverproces en zonder ingebouwde authenticatie. Sla een SQL-query op voor uw .duckdb bestand, een API-sleutel per ontvanger genereren en een partner een werkend JSON-eindpunt geven — nee httpserver Een extensie om beschikbaar te stellen, geen FastAPI-wrapper om te bouwen, geen databasebestand om te verzenden. Gewoon een beheerde, alleen-lezen applicatie. DuckDB REST API binnen enkele minuten.

Geen server om te draaien Sleutels per ontvanger Alleen-lezen afgedwongen Niets om te implementeren

Query Streams is een veilig, realtime platform voor database-integratie dat elke opgeslagen DuckDB-query omzet in een partnerklare REST API-endpoint, met sleutels per ontvanger, alleen-lezen-bescherming en een volledig auditspoor. Je krijgt een live DuckDB REST API zonder een server te draaien, installeren httpserver uitbreiding, of het verzenden van uw databasebestand. Meer informatie vindt u op QueryStreams.com en gratis aanmelden Om binnen enkele minuten je eerste DuckDB-eindpunt te publiceren.

Waarom zou je een DuckDB-database als REST API beschikbaar stellen?

DuckDB is juist zo briljant omdat het geen server heeft — het draait binnen hetzelfde proces en leest slechts één bestand. .duckdb Het systeem leest gegevens uit bestanden (of voert query's uit op Parquet-, CSV- en JSON-bestanden ter plaatse) en verwerkt analytische workloads met de snelheid van een kolomgeoriënteerde database op een laptop of cronbox. Maar zodra iemand buiten je team die cijfers nodig heeft – een klant wil een live feed, de app van een partner moet een rollup lezen, een analist wil de geaggregeerde gegevens in zijn dashboard – wordt die serverless kracht juist een obstakel. Er is geen poort om verbinding mee te maken en geen inloggegevens om te verstrekken. De gebruikelijke oplossingen werken niet altijd: je stuurt een e-mail naar de server. .duckdb bestand (nu staat een volledige kopie van uw gegevens op de schijf van iemand anders), u zet de gemeenschap opzij httpserver een extensie of een FastAPI-wrapper (nu heb je een HTTP-service, de authenticatie ervan en de TLS), of je plant nog een CSV-export in. DuckDB REST API Dit is de nette versie: de partner krijgt een URL en een token, niet jouw bestand. Query Streams maakt er een opgeslagen query van, plus een sleutel.

Geen server, geen open poort

DuckDB heeft geen netwerklistener en je voegt er ook geen toe. De netwerkagent leest je netwerkverkeer. .duckdb Het bestand wordt lokaal opgeslagen en er wordt uitgegaan; inkomende gesprekken worden via die ene uitgaande verbinding teruggeleid.

API-sleutels per ontvanger

Elke ontvanger krijgt zijn eigen exemplaar. qsapi_* Sleutel. Trek er één in zonder de andere aan te raken — geen bestand om terug te halen, geen wachtwoord om te wijzigen.

Alleen-lezen, dat is de bedoeling

De agent opent DuckDB alleen-lezen en een validator verwerpt elke niet-SELECT-instructie. Er is geen INSTALLEREN, KOPIËREN, of BIJVOEGEN pad via de API.

Uw SQL-gegevens en bestand blijven privé.

De ontvanger ziet de endpoint-URL, het JSON-antwoord en eventuele filters die je hebt ingesteld, maar nooit je SQL-query, je schema of de .duckdb het bestand zelf.

Niets te hosten of te patchen.

Nee httpserver Een extensie om te exposeren, geen FastAPI-app, geen reverse proxy. Het eindpunt draait als een beheerde functie, dus er is geen implementatiepipeline of TLS-rotatie om te beheren.

Permanent, verlopend of zelfvernietigend

Maak een eindpunt permanent, stel een vervaldatum in of geef het een vast oproepbudget dat zichzelf na een bepaald aantal verzoeken vernietigt.

De gebruikelijke manieren om een REST API op DuckDB te plaatsen — en waarom ze problemen opleveren.

Er zijn hier wel degelijk opties, en elk heeft zijn eigen nut. Het nadeel is dat je bij elk van deze opties eigenaar wordt van de infrastructuur, een volledige kopie van je data moet overdragen, of beide. Hieronder een vergelijking van de gangbare benaderingen met een gedeeld Query Streams-eindpunt wanneer het doel simpelweg is om "een specifieke partner een specifieke resultatenset te laten lezen".

Zorg httpserver-extensie (zelfgehost) DIY FastAPI + duckdb Verzend het .duckdb-bestand Query-stromen
Netwerkblootstelling Je start en stelt een HTTP-server beschikbaar. U biedt een service aan. Geen enkele — maar de gegevens verlaten wel uw controle. Agent alleen voor uitgaand verkeer — geen inkomende poort
Wat de ontvanger vasthoudt Een URL die standaard willekeurige SQL-query's uitvoert. Een URL naar uw service Een volledige kopie van uw gehele database. Een sleutel met één specifiek doel voor één zoekopdracht.
Gegevens-/schema-blootstelling De volledige database, alle tabellen Wat je ook handmatig codeert Alles, voor altijd. Eén opgeslagen zoekopdracht, verder niets.
Sleutels per ontvanger + intrekken Niet ingebouwd Bouw het zelf Onmogelijk zodra het gedeeld is Gebouwd in
Auditlogboek van elk gesprek Voeg het zelf toe Voeg het zelf toe Helemaal geen zicht Gebouwd in
Je beheert/patcht/roteert TLS Ja, voor altijd. Ja, voor altijd. Niets om te rennen Voor u beheerd.
De gegevens blijven actueel. Ja Ja Verouderd op het moment dat je het verstuurt. Live tijdens elk gesprek

Wil je DuckDB via HTTP beschikbaar stellen zonder de httpserver-extensie?

De gemeenschap httpserver De extensie is geweldig voor het opzetten van een ad-hoc query-eindpunt op een machine die je beheert. Maar het voert willekeurige SQL uit en heeft geen concept van sleutels per ontvanger, quota's of een auditlogboek – dus het is niet iets wat je aan een partner wilt koppelen. Als je doel is om een specifieke partner één beheerde, alleen-lezen resultaatset met een eigen sleutel te geven, zonder dat er een server hoeft te draaien, dan vult Query Streams precies dat gat op.

Hoe Query Streams een DuckDB-query omzet in een REST API

Zodra de Network Agent naast uw DuckDB-bestand is geïnstalleerd en de connector is geconfigureerd, duurt het ongeveer drie stappen om een opgeslagen query naar een gedeeld REST-eindpunt te promoveren. Als u al gebruikmaakt van Query Streams voor Excel, Google Sheets of de MCP Server, zijn uw Agent en connector al aanwezig — u begint dan bij stap twee.

1

Wijs de agent naar uw DuckDB-bestand.

Installeer de netwerkagent op de machine waarop uw gegevens staan. .duckdb Voeg een DuckDB-connector toe aan het bestand. De agent opent het bestand alleen-lezen en maakt een uitgaande TLS-verbinding met Query Streams; er wordt niets aan het internet blootgesteld.

2

Een SQL-query opslaan

Schrijf de SELECT Gebruik de querybuilder voor je DuckDB-verbinding — aggregaties, vensterfuncties en leesbewerkingen op gekoppelde Parquet-, CSV- of JSON-bestanden zijn allemaal welkom. Geef de query een naam en sla hem op.

3

Promoot het en deel een sleutel

Open het tabblad Installeren, kies het eindpunttype (permanent, verlopend of belbudget) en het uitvoerformaat, en nodig vervolgens een ontvanger uit via e-mail. Diegene ontvangt een magic-link claim en zijn/haar eigen qsapi_* sleutel.

Eén opgeslagen zoekopdracht, vele oppervlakken

Dezelfde opgeslagen DuckDB-query kan een Excel-verversing aansturen, een zijbalk in Google Sheets openen, of een gesprek in Claude of Cursor starten. MCP-server, en een partnergerichte REST-endpoint tegelijkertijd. Je bouwt de query één keer; Query Streams regelt de interface.

Geen server om te draaien, geen bestand om over te dragen.

Het beveiligingsmodel is de reden waarom teams hiervoor kiezen in plaats van voor... httpserver extensie of een gedeeld bestand. Uw DuckDB-bestand verlaat uw computer nooit en het pad ernaartoe bevindt zich alleen in de configuratie van de agent op uw netwerk — het wordt nooit naar onze cloud verzonden en is nooit zichtbaar voor een ontvanger. DuckDB zelf wordt geopend in alleen-lezenmodus en een validator op uw netwerk weigert elke niet-SELECT-instructie met ALLEEN-LEZEN_SCHENDING voordat het kan worden uitgevoerd.

Naast het afdwingen van alleen-lezentoegang, ondersteunt dezelfde agent (alleen uitgaand verkeer, HTTPS op poort 443, geen inkomende poorten of VPN) de per-ontvanger-instellingen van elk eindpunt: IP- en CORS-whitelists, tweeledige snelheidslimieten en optionele bytequota die u kunt aanscherpen voordat u gegevens deelt. Hoe de verbinding die alleen uitgaande verbindingen toestaat en de beveiligingsmaatregelen per ontvanger werken →

Roep uw DuckDB REST API aan

Ontvangers roepen het eindpunt aan zoals elke andere REST API: met een bearer-token en een URL. Elke opgeslagen queryparameter die u beschikbaar hebt gesteld, kan per aanroep worden ingesteld — in de querystring voor KRIJGEN of in een JSON-body voor NADe agent bindt die waarden als correcte voorbereide-statementparameters, nooit als stringconcatenatie, zodat een ontvanger niet uit een filter kan breken om SQL te injecteren.

GET met een filterparameter
# Ontvanger roept uw DuckDB-gebaseerde eindpunt aan krul -H “Autorisatie: Drager qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/revenue-by-month?year=2026&region=EMEA”

Selecteer het uitvoerformaat per aanroep met de Accepteren koptekst (of een ?format= queryparameter): JSON voor één enkele array, CSV voor spreadsheets en pandas, of op een streaming-eindpunt, NDJSON (één JSON-rij per regel) voor pipelines die tijdens het verwerken parsen uitvoeren — handig voor de grote datasets met analytische resultaten waarvoor DuckDB is ontworpen. Voor bandbreedtegevoelige gebruikers is er een optie beschikbaar. LZ4 laadvermogencompressie met Accept-Encoding: lz4; niet-gecomprimeerde reacties krijgen ook standaard gzip automatisch via de kabel. Voor een volledige uitleg van statische versus streaming-modi, de vier kabelcombinaties en de OpenAPI 3.1-generatie, zie de Directe REST API voor SQL-databases gids.

Hoe het verbruik wordt gefactureerd

Het API-platform is onderdeel van elk Query Streams-abonnement — geen apart abonnement nodig — en een Accept-Encoding: lz4 De kosten voor het comprimeren van de bytes die daadwerkelijk zijn overgedragen, worden in rekening gebracht. Hoe het gebruik van het API-platform wordt gemeten →

Sluit het aan op Power BI, Tableau en elk ander programma dat JSON kan lezen.

DuckDB is een analyse-engine, dus de resultaten ervan zijn meestal bestemd voor een dashboard. Omdat elk eindpunt standaardwaarden retourneert. JSON — met CSV- en streaming NDJSON-ondersteuning — kan elke tool die een REST-feed kan lezen, rechtstreeks gebruikmaken van uw DuckDB-gegevens, zonder dat er aan hun kant iets geïnstalleerd hoeft te worden. Power Query is de eenvoudigste manier om toegang te krijgen tot de Microsoft BI-stack: in Power BI kiezen Gegevens ophalen → Van het web, plak de endpoint-URL, voeg uw toe Autorisatie De header en Power Query parseert de JSON naar een vernieuwbare tabel die uw datamodel voedt. (Voor live data in een spreadsheet is de native methode geschikt.) Query Streams Excel-add-on (Dit is de eenvoudigere weg — Power Query is er wanneer je de gegevens in het Power BI-model zelf wilt hebben.)

Microsoft Power Query-logo Power Query Gegevens ophalen → Van het web, plak de URL en het bearer-token, vouw de JSON uit tot een tabel die kan worden vernieuwd
Microsoft Power BI-logo Power BI Dezelfde Power Query-engine — laad het eindpunt rechtstreeks in uw model en plan de vernieuwing in.
Tableau-logo Tableau Wijs een Web Data Connector of JSON-bron aan op het eindpunt voor live dashboards.
Postman-logo Postbode Importeer de OpenAPI 3.1-specificatie en verstuur, inspecteer en deel verzoeken met één klik.

Het voedt ook n8n, Qlik, krul, Python (verzoeken of pandas.read_json), Insomnia, Hoppscotch — of elk script of workflow dat een HTTP-verzoek kan verzenden en JSON kan lezen.

Werkt met lokale bestanden en netwerkshares.

De netwerkagent maakt op dezelfde manier verbinding met een lokaal apparaat. .duckdb Of het nu een bestand is, een databasebestand op een netwerkshare of een in-memory DuckDB-database, de agent kan elke query uitvoeren die u kunt uitvoeren, inclusief query's die Parquet-, CSV- of JSON-bestanden lezen die uw DuckDB-instantie kan bereiken. Voor de laagste latentie kunt u de agent het beste uitvoeren op of in de buurt van de machine waarop de gegevens staan. Met één Query Streams-account kunnen meerdere agents op verschillende machines en locaties worden uitgevoerd, en een enkel eindpunt gedraagt zich identiek, ongeacht welke agent het bedient.

Meer dan DuckDB

Dezelfde workflow maakt het mogelijk om een opgeslagen query van PostgreSQL, Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle of BigQuery naar een REST-eindpunt te converteren. DuckDB is simpelweg een van de snelstgroeiende startpunten. Bekijk de Handleidingen voor het instellen van connectoren voor de huidige lijst.

Veelgestelde vragen

Moet ik een server draaien of de httpserver-extensie installeren? +
Nee. DuckDB blijft precies zoals het is: een in-process, op bestanden gebaseerde engine. De Network Agent opent uw .duckdb bestand alleen-lezen op uw eigen machine en maakt een uitgaande TLS-verbinding naar agent.querystreams.com op poort 443. Er is geen httpserver Een extensie om te installeren, geen poorten om te openen en geen inkomende firewallregels om toe te voegen.
Kan de ontvanger mijn SQL-query's inzien of mijn .duckdb-bestand downloaden? +
Nooit. De ontvanger ziet de endpoint-URL, de responsbody en alle parameters die je als filters hebt weergegeven. De SQL blijft binnen Query Streams, en de .duckdb Het bestand verlaat uw computer nooit — in tegenstelling tot het versturen van een e-mail, komt er geen kopie van uw gegevens op de schijf van de ontvanger terecht.
Waarin verschilt dit van de DuckDB httpserver-extensie? +
De gemeenschap httpserver De extensie verandert een machine die u beheert in een HTTP-eindpunt dat willekeurige SQL-query's uitvoert. Dit is ideaal voor snelle interne toegang, maar er zijn geen sleutels per ontvanger, geen quota's, geen auditlogboek en u moet de extensie zelf hosten en beveiligen. Query Streams kiest voor een tegenovergestelde, meer beperkte aanpak voor het delen naar buiten: één opgeslagen query wordt één eindpunt, elke ontvanger krijgt een eigen herroepbare sleutel, elke oproep wordt gecontroleerd en u hoeft niets te implementeren of te patchen.
Welke uitvoerformaten kan de API retourneren? +
JSON (standaard), CSV en — op een streaming-eindpunt — NDJSON, wat geschikt is voor de grote analytische resultaten die DuckDB produceert; ontvangers kiezen per aanroep met de Accepteren koptekst of een ?format= parameter. de vier draadcombinaties en LZ4-compressie →
Kan de query Parquet-, CSV- of JSON-bestanden lezen via DuckDB? +
Ja. Alles wat je hebt opgeslagen. SELECT Een element dat in DuckDB kan worden ingelezen – een native tabel, een bijgevoegd Parquet- of CSV-bestand, een JSON-document of een weergave van meerdere elementen – kan een eindpunt worden. De ontvanger ziet alleen het JSON-resultaat; die weet nooit of het achter de schermen afkomstig is van een tabel of een bestand.
Kan een eindpunt verlopen of zichzelf vernietigen? +
Ja, een eindpunt kan permanent zijn, op een bepaalde datum verlopen of een vast oproepbudget hebben dat stopt na een bepaald aantal verzoeken. Bovendien kan de sleutel van elke ontvanger direct worden ingetrokken zonder dat dit gevolgen heeft voor de andere ontvangers. Levensduur van eindpunten en intrekking van sleutels uitgelegd →
Waar moet de agent voor DuckDB worden uitgevoerd? +
Op een machine die toegang heeft tot uw DuckDB-bestand — ofwel de machine waarop het lokale bestand is opgeslagen — ofwel de machine waarop het lokale bestand zich bevindt. .duckdb een bestand of een met toegang tot de netwerkshare waarop het zich bevindt. Voor de laagste latentie kunt u het het beste zo dicht mogelijk bij de data laten draaien. Met één Query Streams-account kunnen meerdere agents op verschillende machines en locaties worden uitgevoerd, en elk van deze agents kan hetzelfde eindpunt bedienen.
Heeft de ontvanger een Query Streams-account nodig? +
Nee — deel het met iemand via e-mail en die persoon claimt een magic-link-sleutel (een Free-tier organisatie wordt automatisch aangemaakt), of geef een servicesleutel uit voor onbeheerde machine-to-machine toegang. sleutels per ontvanger versus servicesleutels →

Aan de slag

Publiceer gratis uw eerste DuckDB REST API.

Meld je aan, installeer de Network Agent naast je DuckDB-bestand, sla een SQL-query op en e-mail een ontvanger een claim met een magische link. Sleutels per ontvanger, alleen-lezen-toegang en een volledig auditspoor zijn vanaf het eerste contact ingeschakeld.

Gerelateerde handleidingen: Directe REST API voor SQL-databases | PostgreSQL beschikbaar maken als REST API | Database REST API-platform | Handleidingen voor het instellen van connectoren

Categorie: API-platform

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

Metabeschrijving: Zet een DuckDB-query om in een veilige, alleen-lezen REST API met sleutels per ontvanger — geen httpserver-extensie, geen server, geen code.

Geüpdatet op 16 juni 2026

Mogelijk gemaakt door BetterDocs