1

我在批量加载记录时遇到了一些麻烦,以比cursor.executemany允许的速度更快。我希望这里使用常规 MonetDB 记录的批量操作可能会起作用,所以我尝试导出作为测试。例如cursor.execute("COPY SELECT * FROM foo INTO '/file/path.csv'")。除非文件已经存在,否则不会引发错误,但生成的文件始终为 0 字节。我对文件进行了同样的尝试STDOUT,但它什么也没打印。

这些COPY命令是否适用于嵌入式版本?

注意:这是我第一次使用与 MonetDB 相关的任何东西。作为 SQLite 的粉丝和对 Amazon Redshift 印象不深的用户,这似乎是一个不错的项目。不确定 MonetDB/e 是否与 MonetDBLite 相同 - 前者最近似乎更活跃?

4

2 回答 2

1

我在以下位置为它创建了一个测试:https ://github.com/MonetDBSolutions/monetdbe-examples/blob/CI/C/copy_into.c

还在 GitHub 上提交了错误报告:https ://github.com/MonetDB/MonetDB/issues/7058

我们目前正在调查这个问题。

于 2021-02-08T16:13:35.723 回答
1

COPY INTO在 MonetDB/e 中应该可以通过命令导出数据,是的。

但是,此功能目前无法使用。我能够重现您的问题,即COPY INTO创建数据应导出到的文件,但不写入数据。常规 MonetDB 不会发生这种情况。

我们的团队已收到此问题的通知,我们正在对其进行调查。感谢您的提醒!

PS:关于您对 MonetDB/e 与 MonetDBLite 的疑问:我们的团队不再开发和维护 MonetDBLite。两者都是使用 MonetDB 作为核心引擎的嵌入式数据库,但不推荐使用 MonetDBLite。在了解了 MonetDBLite 的一些注意事项后,我们的团队正在开发我们的下一代嵌入式数据库。

因此,对于您的嵌入式数据库需求,您应该关注我们的 MonetDB/e 项目的成果。

于 2021-02-08T12:08:49.800 回答