如何在 CrateDB 中使用 python 执行批量插入?

Posted

技术标签:

【中文标题】如何在 CrateDB 中使用 python 执行批量插入?【英文标题】:How can I perform a bulk insert with python in CrateDB? 【发布时间】:2018-08-15 16:34:29 【问题描述】:

我正在尝试在 CrateDB 中使用 python 进行批量插入。与使用 pyodbc 的 SQL Server 一样,executemany 命令并不真正执行批量插入。 使用 pyodbc 我可以使用它:

cursor.fast_executemany = True

解决问题,如here 所述。但是对于 python 的库“crate”,我没有这个选项。有解决办法吗?

【问题讨论】:

【参考方案1】:

与 pyodbc 不同, cratedb python 驱动程序在没有该选项的情况下执行真正的批量插入。 请参阅我们文档中的示例https://crate.io/docs/clients/python/en/latest/client.html#inserting-data

【讨论】:

我将 SQL Server 的插入速度与 Crate 的进行了比较,结果与我的预期不同:SQL Server 更快,用相同的函数 executemany 测试两个 DBMS(其中 cursor.fast_executemany = True SQL Server python 脚本。将此选项设置为 False,SQL Server 会慢得多)。我在 CrateDB 的配置中犯了一些错误吗?我将 .yml 配置文件保留为默认配置,并在 localhost 中运行 Crate。 不确定,取决于您的设置。你运行多少节点?在什么操作系统上? Windows 10 Home 上的一个节点 cratedb 确实提升了,当您在多个节点上使用它时,在基于 unix 的系统上的性能也更好。您可能希望使用多个连接写入 cratedb 并确保优化分片。 好的,谢谢!我会尝试使用更多的节点。我希望找到一个 CrateDB 克服 SQL Server 的“盈亏平衡点”,增加插入的数据量。

以上是关于如何在 CrateDB 中使用 python 执行批量插入?的主要内容,如果未能解决你的问题,请参考以下文章

cratedb 集群搭建说明

cratedb 做为prometheus 的后端存储

cratedb joins 原理(官方文档)

cratedb nodejs 试用

cratedb 基本试用

CentOS7安装cratedb