You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DuckDB调用read_parquet读取MinIO中Parquet文件URL格式错误求助

问题排查与解决

核心原因

你的错误是因为DuckDB的S3参数配置错误,导致Bucket名与MinIO端点的拼接逻辑异常,同时端点格式带了多余的HTTP前缀,最终生成了错误的请求URL。

具体排查步骤

1. 修正S3端点格式

配置s3_endpoint时不要带http://或https://前缀,只保留IP和端口:

SET s3_endpoint='172.20.20.101:9000';

如果你的MinIO没配置SSL,还要关闭SSL验证:

SET s3_use_ssl=false;

2. 强制使用路径模式访问Bucket

MinIO默认使用路径模式(Bucket名放在URL路径中),但DuckDB默认用虚拟主机模式(Bucket名作为域名前缀),这是导致bucketname.http://xxx错误拼接的关键。必须添加以下配置:

SET s3_style='path';

3. 完整的正确配置示例

把所有必要的S3参数配置齐全后再读取文件:

-- 配置MinIO连接参数
SET s3_endpoint='172.20.20.101:9000';
SET s3_use_ssl=false;
SET s3_access_key_id='你的MinIO访问密钥';
SET s3_secret_access_key='你的MinIO秘密密钥';
SET s3_region='us-east-1'; -- MinIO默认区域,可根据实际修改
SET s3_style='path';

-- 读取Parquet文件
SELECT * FROM read_parquet('s3://bucketname/sData/MarketDetails/Year=2024/1.parquet');

4. 额外验证项

  • 确认MinIO的bucketname存在,且文件路径sData/MarketDetails/Year=2024/1.parquet正确
  • 检查Jupyter所在机器能访问MinIO的9000端口,没有防火墙或网络策略拦截
  • 确认使用的MinIO密钥拥有该Bucket的读权限

内容的提问来源于stack exchange,提问作者Saumik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:10:58