gpt4 book ai didi

insert - 如何在cassandra中多行插入

转载 作者:行者123 更新时间:2023-12-03 15:19:07 25 4
gpt4 key购买 nike

在cassandra列族中插入多行的最有效方法是什么。是否可以在单个调用中执行此操作。

现在,我的方法是添加多列然后执行。在一个电话中,我坚持一行。我正在寻找策略,以便可以批量插入。

最佳答案

CQL包含一个BEGIN BATCH...APPLY BATCH语句,该语句使您可以对多个插入进行分组,以便开发人员可以创建和执行一系列请求
(请参见http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0)。

以下对我有用(Scala):

PreparedStatement ps = session.prepare(
"BEGIN BATCH" +
"INSERT INTO messages (user_id, msg_id, title, body) VALUES (?, ?, ?, ?);" +
"INSERT INTO messages (user_id, msg_id, title, body) VALUES (?, ?, ?, ?);" +
"INSERT INTO messages (user_id, msg_id, title, body) VALUES (?, ?, ?, ?);" +
"APPLY BATCH" );

session.execute(ps.bind(uid, mid1, title1, body1, uid, mid2, title2, body2, uid, mid3, title3, body3));


如果您事先不知道要执行哪些语句,则可以使用以下语法(Scala):

var statement: PreparedStatement = session.prepare("INSERT INTO people (name,age) VALUES (?,?)")
var boundStatement = new BoundStatement(statement)
val batchStmt = new BatchStatement()
batchStmt.add(boundStatement.bind("User A", "10"))
batchStmt.add(boundStatement.bind("User B", "12"))
session.execute(batchStmt)


注意: BatchStatement最多只能容纳65536条语句。我了解到这很困难。 :-)

关于insert - 如何在cassandra中多行插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885238/

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