我需要使用 Python
在 Cassandra
中批量 INSERT
. 我正在使用最新的 Datastax
python驱动程序 .
INSERTS
是将在同一行中的批次列 . 我将要插入许多行,但数据块将在同一行中 .
我可以在 for loop
中单独执行 INSERTS
,如本文所述:Parameterized queries with the Python Cassandra Module我正在使用参数化查询,该示例中显示的值 .
这没有帮助:How to multi insert rows in cassandra
我不清楚如何组装参数化INSERT:
BEGIN BATCH
INSERT(query values1)
INSERT(query values2)
...
APPLY BATCH;
cursor.execute(batch_query)
这甚至可能吗?这会加速我的 INSERTS
吗?我必须做数百万 . 甚至数千人花了太长时间 . 我找到了一些Java信息:http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0
4 回答
简介:现在DataStax Python驱动程序还没有正在进行中,而且测试版很快就会出现 . 此时,您将能够拥有
BATCH
语句,您可以根据需要添加绑定的预准备语句 .考虑到上述情况,您可以使用的解决方案是您链接的帖子中描述的解决方案:准备一个包含
BATCH
和一系列INSERT
的语句 . 此解决方案的明显缺点是您必须相应地拆分输入数据 .示例代码:
然后,当您收到数据时,您可以迭代它,并为每个
BATCH_SIZE
行将它们绑定到上面的prep_batch
并执行它 .你看过这些官方文档吗? This和This
我已经看过它并厌倦了在Python代码中做到这一点 . 我需要参数化条目 . 我需要编写代码来移动超过100M * 16的条目 . 数据以16个为一组,在同一个Cassandra Row的不同列中按顺序插入 . 看到这个:
Parameterized queries with the Python Cassandra Module
我可以做到以上 . 如何使用BATCH进行'for'循环???
这会有帮助吗?