在java中,如何在cassandra数据库的单个批处理中执行类似的插入查询?

时间:2016-08-05 20:18:14

标签: java cassandra batch-processing datastax

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

提前致谢。

0 个答案:

没有答案