加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何在cassandra中多次插入行

发布时间:2020-12-12 06:23:05 所属栏目:MsSql教程 来源:网络整理
导读:在cassandra列族中插入多行的最有效方法是什么.是否可以在一次通话中完成此操作. 现在我的方法是添加多列,然后执行.在一个电话中,我坚持一行.我正在寻找策略,以便我可以进行批量插入. 解决方法 CQL附带了一个BEGIN BATCH … APPLY BATCH语句,可以将多个插入组
在cassandra列族中插入多行的最有效方法是什么.是否可以在一次通话中完成此操作.

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

解决方法

CQL附带了一个BEGIN BATCH … APPLY BATCH语句,可以将多个插入组合在一起,以便开发人员可以构建一个这样的批处理请求的字符串并执行它.
[ http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0]

以下对我有用:

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

session.execute(ps.bind(uid,mid1,title1,body1,uid,mid2,title2,body2,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语句.很难理解这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读