我需要做一个批次INSERT中Cassandra使用Python。我正在使用最新的Datastaxpython 驱动程序。
这些INSERTS是将在同一行中的成批列。我将有很多行要插入,但数据块将在同一行中。
我可以按照这篇文章INSERTS中的for loop描述进行单独的操作:
使用 Python Cassandra 模块
进行参数化查询我正在使用参数化查询,值如该示例所示。
这没有帮助: 如何在 cassandra 中多插入行
我不清楚如何组装参数化的 INSERT:
BEGIN BATCH
INSERT(query values1)
INSERT(query values2)
...
APPLY BATCH;
cursor.execute(batch_query)
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?这会加快我的速度INSERTS吗?我必须做数百万。甚至数千也需要太长时间。我发现了一些 Java 信息:http :
//www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0
小智 5
从驱动程序的 2.0.0 版开始,有一个BatchStatement构造. 如果使用 ORM,您还可以使用BatchQueryclass。
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)
Run Code Online (Sandbox Code Playgroud)