我的java代码如下:
public void execute() {
Batch batch = QueryBuilder.unloggedBatch();
SimpleStatement simpleStatement;
simpleStatement.setConsistencyLevel(ConsistencyLevel.QUORUM);
simpleStatement = new SimpleStatement("INSERT INTO myTable (id, name, phone) VALUES (1, 'Abc', 9876543210)");
batch.add(simpleStatement);
simpleStatement = new SimpleStatement("INSERT INTO myTable (id, name, phone) VALUES (2, 'Mno', 0123456789)");
batch.add(simpleStatement);
simpleStatement = new SimpleStatement("INSERT INTO myTable (id, name, phone) VALUES (3, 'Xyz', 9876501234)");
batch.add(simpleStatement);
try{
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("testkeyspace");
//Executing the query
session.execute(batch);
} catch (Exception e) {
e.printStackTrace();
}
finally {
//Closing Cluster object
cluster.close();
}
}
我正在研究Java 8和Cassandra 3.5 .
我需要使用Datastax Java驱动程序在Batches中执行类似的插入查询语句到Cassandra DB . 我正在尝试使用来自datastax java驱动程序的Batch . 此外,我正在尝试创建一个Statement对象并将其添加到Batch并将ConsistencyLevel设置为QUORUM .
当我执行此方法时,只有一个记录插入到表中 . 我读了一篇文章“Cassandra: Batch loading without the Batch keyword”,它声明从不尝试在Cassandra DB中执行类似的批量执行语句 . 但是,需要知道如何通过批处理执行执行更多查询的备用解决方案 .
我还尝试从com.datastax.driver.core.BatchStatement Examples执行代码示例 . 请告诉我如何使用Cassandra DB的批量执行来优化插入查询语句 .
提前致谢 .