2017-10-11 8 views
0

私は、カッサンドラクラスに対して1000のインサートを実行しました。しかし、テーブルには5行しかないようです。これはどのように可能ですか?私は、キャッサンドラがインサートをポストしない、ある種の現金化メカニズムがあることを知っています。しかし、どのように私は、インサート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) { 

       } 
      } 

しかしSELECT * FROM keyspace.testtableはわずか6行を含むこのtalbeを確定することができます。どうして ?これを修正するには?

答えて

1

PRIMARY KEYのカーディナリティが原因である可能性があります。

カサンドラプライマリキーは一意です。だから私のテーブル定義は次のように見える場合:

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

そして私は、私は、テーブル全体から選択したとき、私はこれを参照してください6行...

[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が1行になる方法です。

関連する問題