Cassandra JDBC INSERT不能始终工作

问题描述:

我已经对cassandra集群执行了1000次插入。但似乎只有5行在表中。这怎么可能?我知道有一种兑现机制,cassandra不会发布插入内容。但我怎么能完成插入Cassandra JDBC INSERT不能始终工作

for (int i = 0; i < 1000; i ++) { 
       try { 
      String testIns = 
     "INSERT INTO keyspace.testtable (var1, var . . .) " + 
     " VALUES (" . . .); " 
     ; 
     session.execute(testIns) ; 
     System.out.println("Row " + i); 
       } 
       catch (Exception e) { 

       } 
      } 

但这talbe SELECT * FROM keyspace.testtable只包含6行。为什么?如何解决这个问题?

有一种可能的方式是因为PRIMARY KEY的基数。

卡桑德拉PRIMARY KEY是独一无二的。所以,如果我的表的定义是这样的:

[email protected]> use stackoverflow ; 
[email protected]:stackoverflow> CREATE TABLE singlePrimaryKey (
           key1 text PRIMARY KEY, letter1 text); 

然后我插入六行...

[email protected]:stackoverflow> INSERT INTO singleprimarykey (key1,letter1) 
           VALUES ('A','A'); 
[email protected]:stackoverflow> INSERT INTO singleprimarykey (key1,letter1) 
           VALUES ('A','B'); 
[email protected]:stackoverflow> INSERT INTO singleprimarykey (key1,letter1) 
           VALUES ('A','C'); 
[email protected]:stackoverflow> INSERT INTO singleprimarykey (key1,letter1) 
           VALUES ('A','D'); 
[email protected]:stackoverflow> INSERT INTO singleprimarykey (key1,letter1) 
           VALUES ('A','E'); 
[email protected]:stackoverflow> INSERT INTO singleprimarykey (key1,letter1) 
           VALUES ('A','F'); 

我看到这个的时候我从整个表中选择:

[email protected]:stackoverflow> SELECT * FROM singleprimarykey ; 

key1 | letter1 
------+--------- 
    A |  F 

(1 rows) 

这怎么可能?

正如您所看到的,这是多个INSERT成为一行的方式。