我正在使用 dbWriteTable 从 R 在 Snowflake 中创建数据库表。当我推送 350,000 行的数据帧时,这效果很好,但当我尝试推送大约 3,000,000 行的表时,会失败并显示
SQL compilation error: Compilation memory exhausted.
。
我想了解为什么会发生这种情况。显然与数据框的大小有关,但我不知道是什么。当我将较大的数据框保存到 csv 时,它小于 200MB。
我查看了
showMethods("dbWriteTable", includeDefs = TRUE)
并查看了日志,但没有任何明显的证据表明失败的原因。这篇Snowflake 社区帖子 表明这是由于复杂的查询或 TB 大小的数据集造成的。我没有 TB 的数据,所以可能是查询大小问题?查询大小有 限制为 1MB,但是当保存为 csv 时,具有 350,000 行的数据框比这个大得多,而且我在那里没有任何问题。