我的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的批处理执行来优化插入查询语句。
提前致谢。