Wyświetl kategorie

Jak udostępnić bazę danych DuckDB jako bezpieczne API REST

12 minut czytania

Logo DuckDB DUCKDB Interfejs API REST

Zmień zapytanie DuckDB w bezpieczne Interfejs API REST — brak rozszerzenia httpsserver, brak usługi do hostowania.

DuckDB to szybki, oparty na plikach silnik analityczny, bez procesu serwera i wbudowanego uwierzytelniania. Zapisz zapytanie SQL do swojego .duckdb plik, wygeneruj klucz API dla każdego odbiorcy i przekaż partnerowi aktywny punkt końcowy JSON — nie serwer https Rozszerzenie do udostępnienia, brak wrappera FastAPI do zbudowania, brak pliku bazy danych do dostarczenia. Tylko kontrolowany, tylko do odczytu Interfejs API REST DuckDB w ciągu kilku minut.

Brak serwera do uruchomienia Klucze dla każdego odbiorcy Wymuszone tylko do odczytu Nic do wdrożenia

Query Streams to bezpieczna platforma integracji baz danych w czasie rzeczywistym, która przekształca każde zapisane zapytanie DuckDB w gotowy do współpracy punkt końcowy interfejsu API REST — z kluczami dla każdego odbiorcy, wymuszaniem trybu tylko do odczytu i pełnym śladem audytu. Dostajesz na żywo Interfejs API REST DuckDB bez uruchamiania serwera, instalując serwer https rozszerzenie lub wysyłka pliku bazy danych. Więcej informacji można znaleźć na stronie QueryStreams.com. oraz zarejestruj się za darmo aby opublikować swój pierwszy punkt końcowy DuckDB w ciągu kilku minut.

Dlaczego warto udostępnić bazę danych DuckDB jako interfejs API REST?

DuckDB jest genialny właśnie dlatego, że nie ma serwera — działa w procesie, odczytuje pojedynczy .duckdb Plik (lub zapytania Parquet, CSV i JSON w miejscu) i przetwarza obciążenia analityczne z prędkością magazynu kolumn na laptopie lub komputerze cron. Ale w chwili, gdy ktoś spoza zespołu potrzebuje tych liczb — klient chce transmisji na żywo, aplikacja partnera musi odczytać podsumowanie, analityk chce uzyskać dane zbiorcze w swoim panelu — ta bezserwerowa siła staje się przeszkodą. Nie ma portu, z którym można się połączyć, ani loginu do udostępnienia. Wszystkie standardowe obejścia są nieskuteczne: wysyłasz e-maila do .duckdb plik (teraz pełna kopia twoich danych znajduje się na dysku kogoś innego), wspierasz społeczność serwer https rozszerzenie lub wrapper FastAPI (teraz jesteś właścicielem usługi HTTP, jej uwierzytelniania i protokołu TLS) lub zaplanuj kolejny eksport CSV. Interfejs API REST DuckDB to czysta wersja — partner otrzymuje adres URL i token, a nie Twój plik. Query Streams tworzy zapisane zapytanie wraz z kluczem.

Brak serwera, brak otwartego portu

DuckDB nie ma nasłuchiwacza sieciowego — i nie dodajesz żadnego. Agent sieciowy odczytuje Twój .duckdb plik lokalny i wybieranie numeru; połączenia przychodzące są przesyłane z powrotem przez jedno połączenie wychodzące.

Klucze API dla każdego odbiorcy

Każdy odbiorca otrzymuje swój własny qsapi_* klucz. Cofnij jedno bez ruszania pozostałych — nie ma pliku do odzyskania, nie ma hasła do zmiany.

Tylko do odczytu z założenia

Agent otwiera DuckDB tylko do odczytu, a walidator odrzuca każde polecenie inne niż SELECT. Nie ma ZAINSTALOWAĆ, KOPIA, lub PRZYTWIERDZAĆ ścieżka przez API.

Twoje dane SQL i pliki pozostają prywatne

Odbiorca widzi adres URL punktu końcowego, odpowiedź JSON i wszelkie udostępnione przez Ciebie filtry — nigdy Twój kod SQL, schemat ani .duckdb plik sam w sobie.

Nic do hostowania lub łatania

Nie serwer https Rozszerzenie do udostępniania, brak aplikacji FastAPI, brak odwrotnego proxy. Punkt końcowy działa jako funkcja zarządzana, więc nie ma potrzeby posiadania potoku wdrażania ani rotacji TLS.

Trwałe, wygasające lub samoniszczące

Ustaw punkt końcowy jako stały, ustaw jego wygaśnięcie w określonym dniu lub określ dla niego stały budżet wywołań, który ulegnie samoczynnemu zniszczeniu po określonej liczbie żądań.

Typowe sposoby umieszczania interfejsu API REST w DuckDB — i dlaczego są one szkodliwe

Istnieją realne opcje i każda ma swoje miejsce. Problem polega na tym, że każda z nich pozostawia Cię właścicielem infrastruktury, przekazujesz pełną kopię swoich danych lub jedno i drugie. Oto porównanie typowych podejść ze współdzielonym punktem końcowym Query Streams, gdy celem jest po prostu „umożliwienie konkretnemu partnerowi odczytania określonego zestawu wyników”.

Obawa Rozszerzenie httpsserver (hostowane samodzielnie) Zrób to sam: FastAPI + duckdb Wyślij plik .duckdb Strumienie zapytań
Ekspozycja sieciowa Uruchamiasz i udostępniasz serwer HTTP Prowadzisz usługę Żadne — ale dane pozostają pod Twoją kontrolą Agent tylko wychodzący — brak portu przychodzącego
Co odbiorca trzyma Adres URL, który domyślnie uruchamia dowolny kod SQL Adres URL do Twojej usługi Pełna kopia całej Twojej bazy danych Klucz jednofunkcyjny do jednego zapytania
Ujawnienie danych/schematu Cała baza danych, wszystkie tabele Cokolwiek kodujesz ręcznie Wszystko, na zawsze Jedno zapisane zapytanie, nic więcej
Klucze dla odbiorcy + odwołanie Nie wbudowane Zbuduj to sam Niemożliwe, gdy się je udostępni Wbudowany w
Rejestr audytu każdego połączenia Dodaj to sam Dodaj to sam Całkowita brak widoczności Wbudowany w
Obsługujesz / łatasz / obracasz TLS Tak, na zawsze Tak, na zawsze Nic do biegania Zarządzane dla Ciebie
Dane pozostają aktualne Tak Tak Zgasną w momencie wysłania Bądź na bieżąco z każdym połączeniem

Chcesz obsługiwać DuckDB przez HTTP bez rozszerzenia httpserver?

Społeczność serwer https Rozszerzenie doskonale nadaje się do uruchamiania punktu końcowego zapytania ad-hoc na kontrolowanej przez Ciebie maszynie. Uruchamia ono jednak dowolny kod SQL i nie obsługuje kluczy dla poszczególnych odbiorców, limitów ani ścieżki audytu — dlatego nie jest to coś, co powinno być skierowane do partnera. Jeśli Twoim celem jest przekazanie nazwanemu partnerowi jednego zarządzanego, tylko do odczytu zestawu wyników z własnym kluczem i bez serwera do uruchomienia, to właśnie tę lukę wypełniają strumienie zapytań.

W jaki sposób Query Streams przekształca zapytanie DuckDB w interfejs API REST

Po zainstalowaniu agenta sieciowego obok pliku DuckDB i skonfigurowaniu łącznika, przeniesienie zapisanego zapytania do współdzielonego punktu końcowego REST zajmuje około trzech kroków. Jeśli korzystasz już z Query Streams dla programu Excel, Arkuszy Google lub serwera MCP, agent i łącznik są już gotowe — zaczynasz od kroku drugiego.

1

Wskaż agentowi plik DuckDB

Zainstaluj agenta sieciowego na komputerze, na którym znajduje się Twój .duckdb Plik i dodaj łącznik DuckDB. Agent otwiera plik tylko do odczytu i nawiązuje połączenie wychodzące TLS do strumieni zapytań — nic nie jest udostępniane internetowi.

2

Zapisz zapytanie SQL

Napisz SELECT w Kreatorze zapytań dla połączenia DuckDB — agregacje, funkcje okien i odczyty z podłączonego pliku Parquet, CSV lub JSON są mile widziane. Nazwij i zapisz.

3

Promuj i udostępniaj klucz

Otwórz kartę Instalacja, wybierz typ punktu końcowego (stały, wygasający lub budżet połączeń) i format wyjściowy, a następnie zaproś odbiorcę e-mailem. Otrzyma on zgłoszenie magicznego łącza i własne. qsapi_* klawisz.

Jedno zapisane zapytanie, wiele powierzchni

To samo zapisane zapytanie DuckDB może powodować odświeżenie programu Excel, pasek boczny Arkuszy Google, konwersację Claude'a lub Cursora Serwer MCP, oraz punkt końcowy REST skierowany do partnera w tym samym czasie. Zapytanie tworzy się raz, a strumienie zapytań obsługują powierzchnie.

Brak serwera do uruchomienia, brak pliku do przekazania

Model bezpieczeństwa jest powodem, dla którego zespoły decydują się na to rozwiązanie zamiast serwer https Rozszerzenie lub plik współdzielony. Twój plik DuckDB nigdy nie opuszcza Twojego komputera, a ścieżka do niego znajduje się wyłącznie w konfiguracji agenta w Twojej sieci — nigdy nie jest przesyłany do naszej chmury i nigdy nie jest widoczny dla odbiorcy. Sam DuckDB jest otwierany w trybie tylko do odczytu, a walidator w Twojej sieci odrzuca każde polecenie inne niż SELECT. NARUSZENIE TYLKO DO ODCZYTU zanim będzie można go wykonać.

Oprócz wymuszania ustawień tylko do odczytu, ten sam agent działający tylko w trybie wychodzącym (HTTPS na porcie 443, brak portów przychodzących lub VPN) obsługuje kontrolę każdego odbiorcy na każdym punkcie końcowym — listy dozwolonych adresów IP i CORS, dwupoziomowe limity przepustowości i opcjonalne limity bajtów, które można ograniczyć przed udostępnieniem. jak działają połączenia wychodzące i zabezpieczenia dla poszczególnych odbiorców →

Zadzwoń do swojego interfejsu API REST DuckDB

Odbiorcy wywołują punkt końcowy jak każdy inny interfejs API REST: token nośnika i adres URL. Każdy udostępniony parametr zapisanego zapytania można ustawić w każdym wywołaniu — w ciągu zapytania. DOSTAWAĆ lub w treści JSON dla POSTAgent wiąże te wartości jako właściwe parametry przygotowanego polecenia, nigdy jako łączenie ciągów znaków, więc odbiorca nie może wyjść poza filtr, aby wstrzyknąć polecenie SQL.

GET z parametrem filtru
# Wywołanie odbiorcy w odniesieniu do punktu końcowego obsługiwanego przez DuckDB kędzior -H „Autoryzacja: Nośnik qsapi_K7…ZmQ” \ „https://api.querystreams.com/v1/endpoints/revenue-by-month?year=2026&region=EMEA”

Wybierz format wyjściowy dla każdego połączenia za pomocą Przyjąć nagłówek (lub ?format= parametr zapytania): JSON dla pojedynczej tablicy, CSV dla arkuszy kalkulacyjnych i Pandas lub w punkcie końcowym przesyłania strumieniowego, NDJSON (jeden wiersz JSON na linię) dla potoków parsowania „na bieżąco” — przydatne w przypadku dużych zestawów wyników analitycznych, do których generowania DuckDB został stworzony. Użytkownicy wrażliwi na przepustowość powinni wybrać opcję LZ4 kompresja ładunku z Kodowanie akceptujące: lz4; nieskompresowane odpowiedzi również otrzymują standard gzip automatycznie na kablu. Aby uzyskać pełny podział trybów statycznych i strumieniowych, czterech kombinacji kabli i generacji OpenAPI 3.1, zobacz Natychmiastowy interfejs API REST dla baz danych SQL przewodnik.

Jak rozliczane jest użytkowanie

Platforma API jest częścią każdego planu Query Streams — bez oddzielnej subskrypcji — i Kodowanie akceptujące: lz4 rachunki za połączenia na podstawie skompresowanych bajtów, które faktycznie zostały przeniesione. jak mierzone jest wykorzystanie platformy API →

Podłącz do Power BI, Tableau i dowolnego urządzenia odczytującego JSON

DuckDB to silnik analityczny, więc jego wyniki najczęściej trafiają do pulpitu nawigacyjnego. Ponieważ każdy punkt końcowy zwraca standardowe JSON — dzięki możliwości odczytu plików CSV i strumieniowego przesyłania danych NDJSON — każde narzędzie, które może odczytać kanał REST, pobiera dane z DuckDB bezpośrednio, bez konieczności instalowania czegokolwiek. Power Query jest najłatwiejszym mostem do stosu Microsoft BI: w Power BI wybierać Pobierz dane → Z sieci, wklej adres URL punktu końcowego, dodaj swój Upoważnienie nagłówek, a Power Query analizuje JSON i przekształca go w tabelę, którą można odświeżać i która zasila model danych. (W przypadku danych na żywo w arkuszu kalkulacyjnym, natywny Dodatek Query Streams do programu Excel jest prostszą ścieżką — Power Query jest dostępny, gdy chcesz mieć dane w samym modelu Power BI.)

Logo Microsoft Power Query Power Query Pobierz dane → Z sieci, wklej adres URL i token nośnika, rozwiń JSON do tabeli, którą można odświeżyć
Logo Microsoft Power BI Power BI Ten sam silnik Power Query — załaduj punkt końcowy bezpośrednio do modelu i zaplanuj odświeżenie
Logo Tableau Żywy obraz Wskaż łącznik danych internetowych lub źródło JSON w punkcie końcowym, aby uzyskać dostęp do pulpitów nawigacyjnych na żywo
Logo listonosza Listonosz Zaimportuj specyfikację OpenAPI 3.1, a następnie wysyłaj, sprawdzaj i udostępniaj żądania jednym kliknięciem

On również karmi n8n, Qlik, kędzior, Python (upraszanie lub pandas.read_json), Bezsenność, Hoppscotch — lub dowolny skrypt lub przepływ pracy, który może wysłać żądanie HTTP i odczytać JSON.

Działa z plikami lokalnymi i udziałami sieciowymi

Agent sieciowy łączy się w ten sam sposób z lokalnym .duckdb Plik, plik bazy danych w udziale sieciowym lub DuckDB w pamięci — i obsługuje dowolne zapytanie, które możesz uruchomić, w tym te odczytujące pliki Parquet, CSV lub JSON, do których może dotrzeć Twoja instancja DuckDB. Aby uzyskać jak najmniejsze opóźnienie, uruchom agenta na komputerze przechowującym dane lub w jego pobliżu. Jedno konto Query Streams może uruchamiać wiele agentów na różnych maszynach i w różnych lokalizacjach, a pojedynczy punkt końcowy zachowuje się identycznie, niezależnie od tego, który agent go obsługuje.

Więcej niż DuckDB

Ten sam przepływ pracy promuje zapisane zapytanie z PostgreSQL, Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle lub BigQuery do punktu końcowego REST. DuckDB to po prostu jeden z najszybciej rozwijających się punktów startowych. Przeglądaj Przewodniki konfiguracji złącza aby zobaczyć aktualną listę.

Często zadawane pytania

Czy muszę uruchomić serwer lub zainstalować rozszerzenie httpserver? +
Nie. DuckDB pozostaje dokładnie taki sam — to działający w procesie silnik oparty na plikach. Agent sieciowy otwiera .duckdb plik tylko do odczytu na własnym komputerze i nawiązuje połączenie wychodzące TLS agent.querystreams.com na porcie 443. Nie ma serwer https rozszerzenie do zainstalowania, brak portu do otwarcia i brak reguły zapory przychodzącej do dodania.
Czy odbiorca może zobaczyć mój kod SQL lub pobrać mój plik .duckdb? +
Nigdy. Odbiorca widzi adres URL punktu końcowego, treść odpowiedzi i wszelkie parametry udostępnione jako filtry. Kod SQL pozostaje w strumieniach zapytań, a .duckdb plik nigdy nie opuszcza Twojego komputera — w przeciwieństwie do pliku wysyłanego e-mailem, żadna kopia Twoich danych nie trafia na dysk odbiorcy.
Czym to się różni od rozszerzenia httpsserver DuckDB? +
Społeczność serwer https Rozszerzenie zamienia kontrolowaną przez Ciebie maszynę w punkt końcowy HTTP, który uruchamia dowolny kod SQL — idealne do szybkiego dostępu wewnętrznego, ale nie ma kluczy dla poszczególnych odbiorców, limitów ani śladu audytu, a Ty musisz je hostować i zabezpieczać samodzielnie. Query Streams stosuje odwrotne, węższe podejście do udostępniania wychodzącego: jedno zapisane zapytanie staje się jednym punktem końcowym, każdy odbiorca otrzymuje własny odwołalny klucz, każde wywołanie jest audytowane, a Ty nie musisz niczego wdrażać ani łatać.
Jakie formaty wyjściowe może zwracać API? +
JSON (domyślnie), CSV i — w punkcie końcowym przesyłania strumieniowego — NDJSON, który jest zgodny z dużymi zestawami wyników analitycznych generowanymi przez DuckDB; odbiorcy wybierają za pomocą wywołania Przyjąć nagłówek lub ?format= parametr. kombinacje czterech przewodów i kompresja LZ4 →
Czy zapytanie może odczytywać pliki Parquet, CSV lub JSON za pośrednictwem DuckDB? +
Tak. Wszystko, co zapisałeś SELECT Dane, które można odczytać w DuckDB — natywną tabelę, dołączony plik Parquet lub CSV, dokument JSON lub widok obejmujący kilka z nich — mogą stać się punktem końcowym. Odbiorca widzi jedynie wynik JSON; nigdy nie wie, czy pochodzi on z tabeli, czy z pliku w tle.
Czy punkt końcowy może wygasnąć lub ulec samozniszczeniu? +
Tak — punkt końcowy może być trwały, wygasnąć w określonym dniu lub mieć ustalony budżet wywołań, który kończy się po ustalonej liczbie żądań, a klucz dowolnego odbiorcy może zostać natychmiast odwołany bez wpływu na pozostałe. wyjaśnienie okresów istnienia punktów końcowych i unieważniania kluczy →
Gdzie należy uruchomić agenta DuckDB? +
Na komputerze, który może dotrzeć do pliku DuckDB — czyli na komputerze, na którym znajduje się lokalny plik .duckdb Plik lub taki, który ma dostęp do udziału sieciowego, w którym się znajduje. Aby uzyskać jak najmniejsze opóźnienie, należy go uruchomić jak najbliżej danych. Jedno konto Query Streams może obsługiwać wiele agentów na różnych maszynach i w różnych lokalizacjach, a każdy z nich może obsługiwać ten sam punkt końcowy.
Czy odbiorca potrzebuje konta Query Streams? +
Nie — udostępnij je innej osobie za pośrednictwem poczty e-mail, a ona przyzna Ci klucz Magic-Link (organizacja w ramach bezpłatnej wersji jest tworzona automatycznie) lub wyda klucz usługi umożliwiający nienadzorowany dostęp między maszynami. klucze dla każdego odbiorcy a klucze usługowe →

Rozpocznij

Opublikuj bezpłatnie swój pierwszy interfejs API REST DuckDB.

Zarejestruj się, zainstaluj agenta sieciowego obok pliku DuckDB, zapisz zapytanie SQL i wyślij adresatowi e-mail z oświadczeniem o magicznym łączu. Klucze dla każdego odbiorcy, wymuszanie trybu tylko do odczytu i pełny dziennik audytu są dostępne od pierwszego połączenia.

Powiązane przewodniki: Natychmiastowy interfejs API REST dla baz danych SQL | Udostępnij PostgreSQL jako API REST | Platforma API REST bazy danych | Przewodniki konfiguracji złącza

Kategoria: Platforma API

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

Metaopis: Zmień zapytanie DuckDB w bezpieczny, tylko do odczytu interfejs API REST z kluczami dla każdego odbiorcy — bez rozszerzenia httpsserver, bez serwera, bez kodu.

Zaktualizowano na czerwiec 16, 2026

Powered by BetterDocs