gpt4 book ai didi

python - Python 中的 Cassandra 批量插入

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:17 26 4
gpt4 key购买 nike

我需要使用 PythonCassandra 中执行批处理 INSERT。我正在使用最新的 Datastax python 驱动程序。

INSERTS 是将在同一行中的列批处理。我将插入很多行,但数据 block 将位于同一行中。

我可以在 for 循环 中执行单独的 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

最佳答案

自驱动程序版本 2.0.0 起,有一个 BatchStatement construct .如果使用 ORM,您还可以使用 BatchQuery class .

cluster = Cluster([sever_ip])
session = cluster.connect(keyspace)
insert_user = session.prepare('INSERT INTO table_name (id,name) VALUES (?, ?)')
batch = BatchStatement(consistency_level=ConsistencyLevel.QUORUM)
for i,j in some_value:
try:
batch.add(insert_user,(i,j))
logger.info('Data Inserted into the table')
except Exception as e:
logger.error('The cassandra error: {}'.format(e))
session.execute(batch)

关于python - Python 中的 Cassandra 批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22920678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com