用途:该技能材料介绍 DuckDB 访问云存储(S3、GCS、Azure、S3 兼容端点)的多种方式,包括原生 HTTPFS 扩展、fsspec 文件系统注册和 Delta Lake 集成。
主要能力:HTTPFS 扩展可直接查询远程 Parquet、CSV 等文件;支持通过 SET 配置 s3_region、s3_access_key_id、s3_secret_access_key、临时凭证 s3_session_token,以及 S3 兼容端点 s3_endpoint(例如 MinIO)。也可使用 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION 等环境变量自动读取。fsspec 可注册 DuckDB 原生不支持的协议,随后以对应 URI(如 gcs://)查询。Delta 扩展提供 delta_scan 读取 Delta 表,并支持按版本进行时间旅行。COPY 语句可在 DuckDB 表与云存储之间导入导出 Parquet。
使用方式:安装并加载扩展,例如 con.execute("INSTALL httpfs; LOAD httpfs;");Delta 使用 "INSTALL delta; LOAD delta;"。查询使用 read_parquet('s3://bucket/data/*.parquet')、read_csv('gs://bucket/data.csv') 等。fsspec 使用 duckdb.register_filesystem(fsspec.filesystem('gcs'))。连接建议使用上下文管理器(with duckdb.connect(...) as con)确保关闭,避免连接泄漏。性能上建议谓词下推、列裁剪、远程查询使用 Parquet、按日期等分区存储,并用 EXPLAIN 验证下推效果。认证模式的更多细节需参考 storage-authentication 相关材料。
适用场景:在数据工程流程中直接对云上数据湖文件做 SQL 查询、在对象存储与本地表之间搬运数据、读取 Delta 表。
限制:材料主要覆盖 S3、GCS 的示例,Azure 仅提及名称,具体配置步骤暂未提供;完整认证细节、版本兼容性与性能基准数据暂未提供。