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

如何在非本地文件系统创建/连接DuckDB数据库文件?

如何在非本地文件系统中创建/连接DuckDB文件

DuckDB目前原生不支持直接通过fsspec路径、filesystem参数或类文件对象来连接非本地文件系统的数据库文件,默认只能操作本地文件系统里的文件。如果要在HDFS、S3这类远程存储中使用DuckDB,可以试试以下几种替代方案:

  • 挂载远程存储到本地目录
    用工具把远程存储挂载成本地路径,比如用s3fs挂载S3桶、用HDFS的本地挂载工具映射远程目录,之后就能像操作本地文件一样,用duckdb.connect("/挂载目录/my.db")来创建或连接数据库。

  • 利用DuckDB扩展实现数据交互
    部分云存储可以通过DuckDB的扩展间接支持,比如针对S3的httpfs扩展。虽然没法直接连接S3上的DuckDB文件,但可以实现数据的导入导出,或者在内存库中处理后持久化到远程存储。示例代码:

    INSTALL httpfs;
    LOAD httpfs;
    -- 将本地表数据导出到S3
    COPY (SELECT * FROM my_table) TO 's3://my-bucket/data.parquet';
    -- 从S3导入数据到本地DuckDB
    COPY my_table FROM 's3://my-bucket/data.parquet';
    
  • 手动同步文件
    适合操作频率低的场景:先把远程的DuckDB文件下载到本地,完成操作后再上传回远程存储。比如用hdfs dfs -get下载HDFS上的文件,操作完用hdfs dfs -put上传回去。

需要注意的是,直接在远程存储上读写DuckDB文件的原生支持目前还在社区讨论阶段,尚未正式推出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:13:16