搜索快捷键 cmd + k | ctrl + k
httpserver

DuckDB HTTP API 服务器扩展

安装和加载

INSTALL httpserver FROM community;
LOAD httpserver;

示例

-- Start a DuckDB HTTP API Server with parameters
D SELECT httpserve_start('0.0.0.0', 9999, 'user:pass');
┌───────────────────────────────────────────────┐
 httpserve_start('0.0.0.0', 9999, 'user:pass') 
                    varchar                    
├───────────────────────────────────────────────┤
 HTTP server started on 0.0.0.0:9999           
└───────────────────────────────────────────────┘

-- Browse to your DuckDB HTTP API endpoint to Query using the embedded interface

-- Query your DuckDB HTTP API Server using curl or any other client w/ HTTP Basic Auth
curl -X POST -d "LOAD chsql; SELECT *, uuid() FROM numbers(10)" "http://user:pass@localhost:9999/"

-- Query your DuckDB HTTP API Server using curl or any other client w/ X-API-Key header 
curl -X POST --header "X-API-Key: secretkey" -d "LOAD chsql; SELECT *, uuid() FROM numbers(10)" "https://:9999/"

-- Query your DuckDB HTTP API Server using DuckDB HTTPFS extension w/ Header Authentication
D CREATE SECRET extra_http_headers (
  TYPE HTTP,
  EXTRA_HTTP_HEADERS MAP{
      'X-API-Key': 'secretkey'
  }
);

-- DuckDB API Server settings
* If you want no authentication, just pass an empty string as parameter.
* If you want the API run in foreground set `DUCKDB_HTTPSERVER_FOREGROUND=1`
* If you want logs set `DUCKDB_HTTPSERVER_DEBUG=1` or `DUCKDB_HTTPSERVER_SYSLOG=1`

![image info](https://private-user-images.githubusercontent.com/1423657/376339324-e930a8d2-b3e4-454e-ba12-e5e91b30bfbe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzMzNDI2MTksIm5iZiI6MTczMzM0MjMxOSwicGF0aCI6Ii8xNDIzNjU3LzM3NjMzOTMyNC1lOTMwYThkMi1iM2U0LTQ1NGUtYmExMi1lNWU5MWIzMGJmYmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTIwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEyMDRUMTk1ODM5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjI5OTEwZGNhM2NhZGI4NDJiYTE5ZmM1ZWIzZDE4OTBkZDY3ODBkMTkxM2E1ZWNiMjRmZDAzNzlkOWEyMjVmMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.iCK1p26RFbEjMWPyG5i8XmhPyzUn8J9cCsm1N1T8y5E)

关于 httpserver

DuckDB HTTP 服务器扩展

此扩展将 DuckDB 实例转换为轻量级多用户 HTTP OLAP API 服务。
支持认证 (基本认证或 X-Token) 并包含 play SQL 用户界面。

功能

  • 将任何 DuckDB 实例转换为 HTTP OLAP API 服务器
  • 使用内置的 Web 用户界面 来查询和可视化数据
  • 使用本地和远程数据集,包括 MotherDuck 🐤
  • 100% 开源,可供社区随时使用和扩展!

此扩展为实验性质,可能不稳定。请自行承担风险使用。

新增函数

函数名称 函数类型 描述 备注 示例
httpserve_start 标量 NULL NULL  
httpserve_stop 标量 NULL NULL