Astyanax を使用して以下を達成するには:
cqlsh を使用:
cqlsh:TEST_KS> INSERT INTO "MESSAGE_CF" (KEY, "DELETED_RECEIVER", "DELETED_SENDER", "SENDER")
VALUES ('user-1241324', 'Yes', 'No', 'user@mail.com');
cqlsh:TEST_KS> SELECT * FROM "MESSAGE_CF";
key | DELETED_RECEIVER | DELETED_SENDER | RECEIVER | SENDER
--------------+------------------+----------------+----------+---------------
user-1241324 | Yes | No | null | user@mail.com
アステュアナクスと:
Keyspace keyspace = Astyanax.getKeyspaceContext();
ColumnFamily<String, String> mail = new ColumnFamily<String, String>(
keyspace.getKeyspaceName(), // CF Name
StringSerializer.get(), // Key Serializer
StringSerializer.get()); // Column Serializer
// You could start looping here to alter what data is being inserted
// or make the method take in parameters and call it multiple times.
String cqlStatement =
"INSERT INTO MESSAGE_CF (KEY, DELETED_RECEIVER, DELETED_SENDER, SENDER) "
+ "VALUES ('user-1281324', 'Yes', 'No', 'user@mail.com');";
// execute the insertion
OperationResult<CqlResult<String, String>> result =
keyspace.prepareQuery(mail).withCql(cqlStatement).execute();
// stop looping
注: 準備済みステートメントではこれを達成できませんでした。Astyanax は、準備済みステートメントがサポートされていることをwiki (準備済み CQL の下) で示していますが、私は astyanax-1.56.21 を使用しており、asPreparedStatement()
機能がありません。
また、これを機能させるには、CQL3 を使用するように AstyanaxContext を設定することを忘れないでください。
new com.netflix.astyanax.impl.AstyanaxConfigurationImpl()
.setCqlVersion("3.0.0")) //using CQL3
アップデート
バッチキーワードを調べます。バッチの高速化機能の主な要因は、ラウンドトリップを節約できることです。CQL ステートメントの管理は難しくなりますが、更新速度は向上します。CUD 操作 (挿入、更新、および削除) は実行できますが、SELECT は実行できません。また、 CQL3 のドキュメントを読んで、cql でできることを学ぶことをお勧めします。