Ver categorias

Como expor um banco de dados DuckDB como uma API REST segura

12 minutos de leitura

Logotipo do DuckDB DUCKDB API REST

Transforme uma consulta DuckDB em uma consulta segura. API REST — Sem extensão httpserver, nenhum serviço para hospedar.

DuckDB é um mecanismo de análise rápido, baseado em arquivos, sem processos de servidor e sem autenticação integrada. Salve uma consulta SQL em seu banco de dados. .duckdb arquivo, gerar uma chave de API por destinatário e entregar a um parceiro um endpoint JSON ativo — não servidor http extensão para expor, sem necessidade de criar um wrapper FastAPI, sem arquivo de banco de dados para distribuir. Apenas um ambiente controlado e somente leitura. API REST do DuckDB Em minutos.

Nenhum servidor para executar Chaves por destinatário Somente leitura obrigatória Nada para implantar

O Query Streams é uma plataforma segura de integração de banco de dados em tempo real que transforma qualquer consulta salva no DuckDB em um endpoint de API REST pronto para uso por parceiros — com chaves por destinatário, imposição de somente leitura e um registro de auditoria completo. Você recebe um ao vivo API REST do DuckDB sem executar um servidor, instalando o servidor http extensão ou envio do seu arquivo de banco de dados. Saiba mais em QueryStreams.com e inscreva-se gratuitamente Publique seu primeiro endpoint DuckDB em minutos.

Por que expor um banco de dados DuckDB como uma API REST?

O DuckDB é brilhante justamente por não ter servidor — ele roda no mesmo processo, lê um único arquivo. .duckdb arquivo (ou consultas Parquet, CSV e JSON diretamente) e processa cargas de trabalho analíticas na velocidade de um armazenamento em colunas em um laptop ou em um servidor cron. Mas, no momento em que alguém fora da sua equipe precisa desses números — um cliente quer um feed ao vivo, o aplicativo de um parceiro precisa ler um relatório consolidado, um analista quer o agregado em seu painel — essa força da computação sem servidor se torna um obstáculo. Não há porta para conectar nem login para fornecer. As soluções alternativas usuais são todas problemáticas: você envia um e-mail para o .duckdb arquivo (agora uma cópia completa dos seus dados reside no disco rígido de outra pessoa), você cria a comunidade servidor http uma extensão ou um wrapper FastAPI (agora você possui um serviço HTTP, sua autenticação e seu TLS), ou você agenda mais uma exportação CSV. API REST do DuckDB Esta é a versão limpa — o parceiro recebe um URL e um token, não o seu arquivo. O Query Streams transforma isso em uma consulta salva mais uma chave.

Sem servidor, sem porta aberta

O DuckDB não possui um ouvinte de rede — e você não adiciona um. O Agente de Rede lê o seu .duckdb O arquivo é armazenado localmente e discado; as chamadas recebidas são encaminhadas de volta por essa única conexão de saída.

Chaves de API por destinatário

Cada destinatário recebe o seu próprio. qsapi_* Chave. Revogar uma sem afetar as outras — sem arquivo para recuperar, sem senha para rotacionar.

Somente leitura por design

O agente abre o DuckDB em modo somente leitura e um validador rejeita qualquer instrução que não seja SELECT. Não há INSTALAR, CÓPIA, ou ANEXAR caminho através da API.

Seu SQL e seus arquivos permanecem privados.

O destinatário vê o URL do endpoint, a resposta JSON e quaisquer filtros que você tenha exposto — nunca seu SQL, seu esquema ou o .duckdb o próprio arquivo.

Nada para hospedar ou corrigir.

Não servidor http extensão para expor, sem aplicativo FastAPI, sem proxy reverso. O endpoint é executado como um recurso gerenciado, portanto, não há pipeline de implantação ou rotação TLS para gerenciar.

Permanente, com prazo de validade ou autodestrutivo

Torne um endpoint permanente, defina uma data de expiração ou atribua a ele um orçamento de chamadas fixo que se autodestruirá após um número definido de solicitações.

As maneiras mais comuns de implementar uma API REST no DuckDB — e por que elas causam problemas.

Existem opções reais aqui, e cada uma tem sua utilidade. A questão é que todas elas exigem que você mantenha a infraestrutura, entregue uma cópia completa dos seus dados ou ambos. Veja como as abordagens comuns se comparam a um endpoint compartilhado do Query Streams quando o objetivo é simplesmente "permitir que um parceiro específico leia um conjunto de resultados específico".

Preocupação Extensão httpserver (auto-hospedada) Faça você mesmo FastAPI + duckdb Envie o arquivo .duckdb Fluxos de consulta
Exposição à rede Você executa e expõe um servidor HTTP. Você hospeda um serviço Nenhuma — mas os dados saem do seu controle. Agente somente de saída — sem porta de entrada
O que o destinatário detém Uma URL que executa SQL arbitrário por padrão. Um URL para o seu serviço Uma cópia completa de todo o seu banco de dados. Uma chave de propósito único para uma consulta
Exposição de dados/esquema Banco de dados inteiro, todas as tabelas Independentemente do que você codificar manualmente. Tudo, para sempre. Uma consulta salva, nada mais.
Chaves por destinatário + revogação Não está incluído Construa você mesmo Impossível, uma vez compartilhado Construído em
Registro de auditoria de todas as chamadas Adicione você mesmo Adicione você mesmo Visibilidade totalmente nula Construído em
Você opera/corrige/rotaciona TLS Sim, para sempre. Sim, para sempre. Nada para correr Gerenciado para você
Os dados permanecem ativos Sim Sim Fica obsoleto no momento em que você o envia. Ao vivo em todas as chamadas

Deseja disponibilizar o DuckDB via HTTP sem a extensão httpserver?

A comunidade servidor http A extensão é ótima para criar um endpoint de consulta ad-hoc em uma máquina que você controla. Mas ela executa SQL arbitrário e não tem o conceito de chaves por destinatário, cotas ou trilha de auditoria — portanto, não é algo que você queira compartilhar com um parceiro. Se o seu objetivo é fornecer a um parceiro específico um conjunto de resultados somente leitura e controlado, com sua própria chave e sem a necessidade de um servidor para executá-lo, é exatamente essa lacuna que o Query Streams preenche.

Como o Query Streams transforma uma consulta DuckDB em uma API REST

Após a instalação do Agente de Rede ao lado do seu arquivo DuckDB e a configuração do conector, a promoção de uma consulta salva para um endpoint REST compartilhado requer cerca de três etapas. Se você já utiliza o Query Streams para Excel, Planilhas Google ou o Servidor MCP, seu Agente e conector já estão instalados — você começa na etapa dois.

1

Aponte o Agente para o seu arquivo DuckDB.

Instale o Agente de Rede na máquina que contém seu .duckdb O agente abre o arquivo e adiciona um conector DuckDB. Ele abre o arquivo em modo somente leitura e estabelece uma conexão TLS de saída com o Query Streams — nada é exposto à internet.

2

Salvar uma consulta SQL

Escreva o SELECIONAR No Construtor de Consultas, em relação à sua conexão com o DuckDB, são aceitas agregações, funções de janela e leituras em arquivos Parquet, CSV ou JSON anexados. Dê um nome à consulta e salve.

3

Divulgue e compartilhe uma chave.

Abra a aba Instalar, escolha o tipo de endpoint (permanente, com prazo de validade ou orçamento de chamadas) e o formato de saída e, em seguida, convide um destinatário por e-mail. Ele receberá um link mágico e sua própria conta. qsapi_* chave.

Uma consulta salva, várias superfícies

A mesma consulta salva no DuckDB pode acionar uma atualização do Excel, uma barra lateral do Google Sheets, uma conversa com o Claude ou o Cursor por meio do Servidor MCP, e um endpoint REST voltado para parceiros simultaneamente. Você cria a consulta uma vez; o Query Streams cuida das interfaces.

Sem servidor para executar, sem arquivo para entregar.

O modelo de segurança é o motivo pelo qual as equipes optam por essa solução em vez da outra. servidor http extensão ou um arquivo compartilhado. Seu arquivo DuckDB nunca sai da sua máquina, e o caminho para ele existe apenas dentro da configuração do Agente na sua rede — ele nunca é transmitido para nossa nuvem e nunca fica visível para um destinatário. O próprio DuckDB é aberto em modo somente leitura, e um validador na sua rede rejeita qualquer instrução que não seja SELECT com VIOLAÇÃO_SOMENTE_LEITURA antes que possa ser executado.

Além da aplicação de modo somente leitura, o mesmo Agente somente de saída (HTTPS na porta 443, sem portas de entrada ou VPN) suporta os controles por destinatário de cada endpoint — listas de permissão de IP e CORS, limites de taxa de dois níveis e cotas de bytes opcionais que você pode restringir antes de compartilhar. Como funcionam a conexão somente de saída e as salvaguardas por destinatário →

Chame sua API REST do DuckDB

Os destinatários chamam o endpoint como qualquer outra API REST: um token de portador e uma URL. Qualquer parâmetro de consulta salvo que você tenha exposto pode ser definido por chamada — na string de consulta para PEGAR ou em um corpo JSON para PUBLICARO agente vincula esses valores como parâmetros de instruções preparadas adequados, nunca por concatenação de strings, portanto, um destinatário não pode escapar de um filtro para injetar SQL.

GET com um parâmetro de filtro
# Chamada do destinatário para seu endpoint com suporte do DuckDB cachos -H “Autorização: Portador qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/revenue-by-month?year=2026&region=EMEA”

Selecione o formato de saída por chamada com o Aceitar cabeçalho (ou um ?formato= parâmetro de consulta): JSON para um único array, CSV para planilhas e pandas ou, em um endpoint de streaming, NDJSON (uma linha JSON por linha) para pipelines de análise contínua — útil para os grandes conjuntos de resultados analíticos que o DuckDB foi projetado para produzir. Para consumidores com restrições de largura de banda, opte por LZ4 compressão de carga útil com Codificação de aceitação: lz4Respostas não comprimidas também recebem o padrão gzip na rede automaticamente. Para obter uma descrição completa dos modos estático e de streaming, das quatro combinações de fios e da geração OpenAPI 3.1, consulte o API REST instantânea para bancos de dados SQL guia.

Como o uso é cobrado

A Plataforma de API faz parte de todos os planos do Query Streams — sem necessidade de assinatura separada — e é Codificação de aceitação: lz4 As contas de chamadas são baseadas nos bytes comprimidos que realmente foram transferidos. Como a utilização da API Platform é medida →

Integre-o ao Power BI, Tableau e qualquer outra ferramenta que leia JSON.

O DuckDB é um mecanismo de análise, portanto, na maioria das vezes, seus resultados são direcionados para um painel de controle. Isso ocorre porque cada endpoint retorna resultados padrão. JSON — com CSV e streaming NDJSON disponíveis — qualquer ferramenta que consiga ler um feed REST consome seus dados do DuckDB diretamente, sem precisar instalar nada do lado dela. Power Query é a ponte mais fácil para o conjunto de ferramentas de BI da Microsoft: em Power BI escolher Obter dados → Da WebCole o URL do endpoint e adicione o seu Autorização O Power Query cria um cabeçalho e analisa o JSON, transformando-o em uma tabela atualizável que alimenta seu modelo de dados. (Para dados em tempo real dentro de uma planilha, use o recurso nativo.) Suplemento Query Streams para Excel é o caminho mais simples — o Power Query está disponível quando você deseja os dados no próprio modelo do Power BI.

Logotipo do Microsoft Power Query Power Query Obter dados → Da Web, cole o URL e o token de portador, expanda o JSON para uma tabela atualizável.
Logotipo do Microsoft Power BI Power BI O mesmo mecanismo do Power Query — carregue o endpoint diretamente no seu modelo e agende a atualização.
Logotipo do Tableau Quadro Aponte um conector de dados da Web ou uma fonte JSON para o endpoint para painéis de controle em tempo real.
Logotipo do carteiro Carteiro Importe a especificação OpenAPI 3.1 e, em seguida, envie, inspecione e compartilhe solicitações com um único clique.

Também alimenta n8n, Qlik, cachos, Python (solicitações ou pandas.read_json), Insomnia, Hoppscotch — ou qualquer script ou fluxo de trabalho que possa enviar uma solicitação HTTP e ler JSON.

Funciona com arquivos locais e compartilhamentos de rede.

O Agente de Rede se conecta da mesma forma a um dispositivo local. .duckdb O Query Streams pode executar vários agentes em diferentes máquinas e locais, e um único endpoint se comporta de maneira idêntica, independentemente do agente que o atenda. Ele pode ser um arquivo .bashrc, um arquivo de banco de dados em um compartilhamento de rede ou um DuckDB em memória — e atende a qualquer consulta que você possa executar, incluindo aquelas que leem arquivos Parquet, CSV ou JSON que sua instância do DuckDB possa acessar. Para obter a menor latência possível, execute o agente na máquina que contém os dados ou próximo a ela. Uma conta do Query Streams pode executar vários agentes em diferentes máquinas e locais, e um único endpoint se comporta de maneira idêntica, independentemente do agente que o atenda.

Mais do que o DuckDB

O mesmo fluxo de trabalho promove uma consulta salva do PostgreSQL, Microsoft SQL Server, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle ou BigQuery para um endpoint REST. O DuckDB é simplesmente um dos pontos de partida que mais crescem. Navegue pelo Guias de configuração de conectores para a lista atual.

Perguntas frequentes

Preciso executar um servidor ou instalar a extensão httpserver? +
Não. O DuckDB permanece exatamente como está — um mecanismo baseado em arquivos e em processo. O Agente de Rede abre o seu .duckdb arquivo somente leitura em sua própria máquina e estabelece uma conexão TLS de saída para agente.querystreams.com na porta 443. Não há servidor http Extensão para instalar, nenhuma porta para abrir e nenhuma regra de firewall de entrada para adicionar.
O destinatário pode visualizar meu SQL ou baixar meu arquivo .duckdb? +
Nunca. O destinatário vê o URL do endpoint, o corpo da resposta e quaisquer parâmetros que você tenha exposto como filtros. O SQL permanece dentro dos Fluxos de Consulta, e o .duckdb O arquivo nunca sai do seu computador — ao contrário do envio por e-mail, nenhuma cópia dos seus dados chega ao disco rígido do destinatário.
Qual a diferença entre isso e a extensão httpserver do DuckDB? +
A comunidade servidor http A extensão transforma uma máquina que você controla em um endpoint HTTP que executa SQL arbitrário — ótimo para acesso interno rápido, mas não possui chaves por destinatário, cotas, registro de auditoria e você precisa hospedá-la e protegê-la por conta própria. O Query Streams adota uma abordagem oposta, mais específica para compartilhamento externo: uma consulta salva se torna um endpoint, cada destinatário recebe sua própria chave revogável, cada chamada é auditada e não há nada para você implantar ou corrigir.
Quais formatos de saída a API pode retornar? +
JSON (padrão), CSV e — em um endpoint de streaming — NDJSON, que é adequado para os grandes conjuntos de resultados analíticos produzidos pelo DuckDB; os destinatários escolhem por chamada com o Aceitar cabeçalho ou um ?formato= parâmetro. as quatro combinações de fios e a compressão LZ4 →
A consulta consegue ler arquivos Parquet, CSV ou JSON através do DuckDB? +
Sim. Tudo o que você salvou. SELECIONAR O DuckDB pode ler dados de uma tabela nativa, de um arquivo Parquet ou CSV anexado, de um documento JSON ou de uma visualização de vários deles, e tudo isso pode se tornar um endpoint. O destinatário vê apenas o resultado JSON; ele nunca sabe se a origem do dado é uma tabela ou um arquivo.
Um endpoint pode expirar ou se autodestruir? +
Sim — um endpoint pode ser permanente, expirar em uma data ou ter um orçamento de chamadas fixo que se esgota após um número determinado de solicitações, e a chave de qualquer destinatário pode ser revogada instantaneamente sem afetar as demais. Explicação sobre o tempo de vida dos endpoints e a revogação de chaves →
Onde o agente precisa ser executado para o DuckDB? +
Em uma máquina que consiga acessar seu arquivo DuckDB — seja o computador que contém o arquivo local .duckdb arquivo ou um com acesso ao compartilhamento de rede onde ele está localizado. Para obter a menor latência possível, execute-o o mais próximo possível dos dados. Uma conta do Query Streams pode executar vários agentes em diferentes máquinas e locais, e qualquer um deles pode atender ao mesmo endpoint.
O destinatário precisa de uma conta do Query Streams? +
Não — compartilhe com alguém por e-mail e essa pessoa reivindicará uma chave de link mágico (uma organização de nível gratuito é criada automaticamente) ou emita uma chave de serviço para acesso não supervisionado de máquina para máquina. Chaves por destinatário vs. chaves de serviço →

Começar a usar

Publique sua primeira API REST do DuckDB gratuitamente.

Cadastre-se, instale o Agente de Rede ao lado do seu arquivo DuckDB, salve uma consulta SQL e envie um link mágico de reivindicação por e-mail para o destinatário. Chaves por destinatário, restrição de somente leitura e um registro de auditoria completo são ativados desde a primeira chamada.

Guias relacionados: API REST instantânea para bancos de dados SQL | Expor o PostgreSQL como uma API REST | Plataforma de API REST de banco de dados | Guias de configuração de conectores

Categoria: Plataforma de API

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

Metadescrição: Transforme uma consulta DuckDB em uma API REST segura e somente leitura com chaves por destinatário — sem extensão httpserver, sem servidor, sem código.

Atualizado em 16 de junho de 2026

Desenvolvido por BetterDocs