⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
HTTP(S) 支持

通过 httpfs 扩展,可以直接通过 HTTP(S) 协议查询文件。这适用于 DuckDB 或其各种扩展支持的所有文件类型,并提供只读访问权限。

SELECT *
FROM 'https://domain.tld/file.extension';

部分读取

对于 CSV 文件,由于该格式基于行的特性,大多数情况下文件会被完整下载。对于 Parquet 文件,DuckDB 支持部分读取,即它可以通过结合 Parquet 元数据和 HTTP 范围请求 (Range requests),仅下载查询实际所需的文件部分。例如,以下查询将仅读取 Parquet 元数据以及 column_a 列的数据

SELECT column_a
FROM 'https://domain.tld/file.parquet';

在某些情况下,根本不需要读取实际数据,因为它们只需要读取元数据

SELECT count(*)
FROM 'https://domain.tld/file.parquet';

扫描多个文件

同样支持通过 HTTP(S) 扫描多个文件

SELECT *
FROM read_parquet([
    'https://domain.tld/file1.parquet',
    'https://domain.tld/file2.parquet'
]);

身份验证

要对 HTTP(S) 端点进行身份验证,请使用密钥管理器 (Secrets Manager) 创建一个 HTTP 密钥

CREATE SECRET http_auth (
    TYPE http,
    BEARER_TOKEN 'token'
);

CREATE SECRET http_auth (
    TYPE http,
    EXTRA_HTTP_HEADERS MAP {
        'Authorization': 'Bearer token'
    }
);

HTTP 代理

DuckDB 支持 HTTP 代理。

您可以使用密钥管理器添加 HTTP 代理

CREATE SECRET http_proxy (
    TYPE http,
    HTTP_PROXY 'http_proxy_url',
    HTTP_PROXY_USERNAME 'username',
    HTTP_PROXY_PASSWORD 'password'
);

或者,您可以通过配置选项添加它

SET http_proxy = 'http_proxy_url';
SET http_proxy_username = 'username';
SET http_proxy_password = 'password';

使用自定义证书文件

要将 httpfs 扩展与自定义证书文件一起使用,请在加载扩展之前设置以下配置选项

LOAD httpfs;
SET ca_cert_file = 'certificate_file';
SET enable_server_cert_verification = true;
© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南