カサンドラにヘクター API を使用しています。
次のようなカウンターテーブルを作成します
private void addColumnFamilyCounter(ThriftCluster cluster, String cfName, int rowCacheKeysToSave) {
String cassandraKeyspace = this.env.getProperty("cassandra.keyspace");
ThriftCfDef cfd =
new ThriftCfDef(cassandraKeyspace, cfName, ComparatorType.UTF8TYPE);
cfd.setRowCacheKeysToSave(rowCacheKeysToSave);
cfd.setDefaultValidationClass(ComparatorType.COUNTERTYPE.getClassName());
cluster.addColumnFamily(cfd);
}
上記のメソッドを次のように呼び出します
addColumnFamilyCounter(cluster, COUNTER_CF, 0);
テーブルのフォーマットは次のようになります
Primary key columns
Munich jingle : 1
mingle : 2
tingle : 1
pingle : 5
ここで、クエリを実行して、ミュンヘンの下にあるすべての列とその値を取得したいと考えています。すべての列を取得する方法はありますか。
今まで知っているのは次のクエリですが、主キーと列キーの組み合わせに対してのみ値が得られます。
@Override
public long getTagCounter(String domain, String tag) {
CounterQuery<String, String> counter =
new ThriftCounterColumnQuery<String, String>(keyspaceOperator,
StringSerializer.get(),
StringSerializer.get());
counter.setColumnFamily(TAG_COUNTER_CF).setKey("p_key").setName("name");
return counter.execute().get().getValue();
}