r - 如何限制 Duckdb 在 R 中的内存使用量?
问题描述
我有几个大的 R data.frames,我想将它们放入本地的duckdb 数据库中。我遇到的问题是即使我将文件指定为位置,duckdb 似乎也会将所有内容加载到内存中。
另外,我不清楚建立连接的正确方法(所以我不确定这是否与它有关)。我努力了:
duckdrv <- duckdb(dbdir="dt.db", read_only=FALSE)
dkCon <- dbConnect(drv=duckdrv)
并且:
duckdrv <- duckdb()
dkCon <- dbConnect(drv=duckdrv, dbdir="dt.db", read_only=FALSE)
两者都可以正常工作,这意味着我可以创建表、使用 dbWriteTable、运行查询等。但是,内存使用率非常高(与 data.frames 的大小大致相同)。我想我在某处读到,duckdb 默认使用一定百分比的可用内存,这对我不起作用,因为我使用的系统是共享资源。我还想并行运行一些查询,这将提高内存使用率。
我试过这个:
dbExecute(dkCon, "PRAGMA memory_limit='1GB';")
但这似乎没有什么区别,即使我关闭连接,关闭实例并重新连接。
有谁知道我该如何解决这个问题?当我将数据写入表时,RSQLite 也会暂时占用大量内存,但随后它会恢复正常,如果我打开只读连接,这根本不是问题。我想让duckdb工作,因为我认为查询应该更快。任何帮助,将不胜感激!
解决方案
推荐阅读
- django - 在 React 购物车中调用 django APi
- c# - Web客户端下载文件上的“自动重定向太多”错误?
- tensorflow - 将 Keras 模型转换为 TFJS:权重不同
- keras - ResUNet 分割输出很差,尽管训练和验证的精度和召回值更高
- unity3d - 曲线和拉伸精灵以鼠标点击/触摸
- swift - 使用 Swift 将给定索引处的字符串大写
- git - git:cherry-pick 无法使用 Gerrit Code Review 从 master 修复分支
- docker - 在构建期间安装 NPM 失败 Docker 构建
- svg - SVG - 为什么 SVG 过滤器被宣布支持 97.02% 而特定的 SVG 过滤器似乎几乎不支持 49、50%?
- virtual-machine - Apache 的 Mesos 基础架构和虚拟机集群有什么区别