cassandra 批量插入

来源:互联网 发布:域名为什么要买 编辑:程序博客网 时间:2024/05/20 07:32

废话不多说, maven依赖:


<dependency>
              <groupId>com.datastax.cassandra</groupId>
              <artifactId>cassandra-driver-core</artifactId>
              <version>2.0.3</version>

</dependency> 


java编程例子,例子是用cassandra存储log, log表建表语句为 create table log_original(partitionid bigint, uuid text, host text, apptype text, content text, primary key(partitionid, uuid, host, apptype)) :


import com.datastax.driver.core.BatchStatement;
import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Session;


String keyspace = "logging";
Cluster cluster = Cluster.builder().addContactPoint("10.0.250.100").build();

Session session=cluster.connect(keyspace);

BatchStatement batch = new BatchStatement();

 PreparedStatement ps = session
                    .prepare("insert into log_original(partitionid, uuid, host,apptype, content) values(?,?,?,?,?)");
        for (int i = 0; i < 10; i++) {
            LogEntry log = new LogEntry();
            log.setPartitionId(TimeSliceUtil.getCurrentSlice());
            log.setAppType("test");
            log.setContent(System.currentTimeMillis() +" ");
            log.setHost("10.0.250.121");
            log.setUuid(UUID.randomUUID().toString());
          
            BoundStatement bs = ps.bind(log.getPartitionId(), log.getUuid(),
                    log.getHost(), log.getAppType(), log.getContent());
            batch.add(bs);
        }
        session.execute(batch);

       batch.clear();


0 0