私はいくつかのPOCに取り組んでいます。
サーバーイベントを格納する列ファミリーがあります。行のサイズが大きくなりすぎないように、行キーで compositeType を使用して、各行を別の N 行に分割しています。
CREATE COLUMN FAMILY logs with comparator='ReversedType(TimeUUIDType)' and key_validation_class='CompositeType(UTF8Type,IntegerType)' and default_validation_class=UTF8Type;
そのため、サーバー名ごとに N 行があり、非常に単純なラウンド ロビン アルゴリズムを使用して各行にデータを書き込みます。
どの行にもデータを書き込むのに問題はありません。
Mutator<Composite> mutator = HFactory.createMutator(keySpace, CompositeSerializer.get());
HColumn<UUID,String> col =
HFactory.createColumn( TimeUUIDUtils.getUniqueTimeUUIDinMillis(), log);
Composite rowName = new Composite();
rowName.addComponent(serverName, StringSerializer.get());
rowName.addComponent(this.roundRobinDestributor.getRow(), IntegerSerializer.get());
mutator.insert(rowName, columnFamilyName, col);
}
ここまでは順調ですが、2 つの質問があります。
1) serverName のすべてのログを取得したい場合、行キーをスキャンする必要があるため、使用する必要がありますByteOrderedPartitioner
か?
2) サーバー 1 ({server1:0}、{server1:1} {server1:2) などのすべての行を取得する Hector クエリを作成する方法を教えてください。CompositeType をコンパレータとして使用する例はたくさん見ましたが、キー バリデータの例はありません。
ヘルプやコメントは大歓迎です。