在特定实例中,我使用 CQL Shell
使用 COPY
从 csv 文件导入 10 万行。平均耗时约 5.695 秒。速率:17559 行/秒。
如果我使用 Cassandra Python 驱动程序插入相同的数据,execute_async
将花费大约 13 秒。那么为什么会有这么大的差异呢?
我正在 Win 10 X64
上运行默认的 Cassandra
本地主机。也许它与集群中的节点数量有关,或者可以从使用批处理中受益?
最佳答案
Cqlsh使用Cassandra Python驱动,最终调用的是execute_async,可以查看源码:
https://github.com/apache/cassandra/blob/trunk/pylib/cqlshlib/copyutil.py https://github.com/apache/cassandra/tree/trunk/pylib/cqlshlib
尽管如此,它在这一点上已经进行了相当程度的优化。它执行的操作包括分割并发工作的 token 范围、自定义负载均衡器策略以及一些较低级别的增强功能。如果可以的话,它还会将 python cythonizes 为 native 代码。
关于python - 使用 shell 和 python 驱动程序导入 Cassandra 数据的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37857078/