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成为一行的方式。