はっきりさせて
次のような UTF8 キーを持つ列ファミリーがあります:apple#NewYork、banana#LosAngeles、banana#NewYork、cherry#NewYork など
それらはソートされているので必要ですが、すべての「バナナ」開始キーを取得したいですか?
それは可能ですか、それとも回避策はありますか?
はっきりさせて
次のような UTF8 キーを持つ列ファミリーがあります:apple#NewYork、banana#LosAngeles、banana#NewYork、cherry#NewYork など
それらはソートされているので必要ですが、すべての「バナナ」開始キーを取得したいですか?
それは可能ですか、それとも回避策はありますか?
複合型はどうですか?
現在の行を次のような列にマップします
row_key => { バナナ:a => "希望する値", バナナ:b => "希望する値", ... }
複合型のメリットは
a:b:c
の場合、a、a:b の範囲内のすべての列に対してクエリを実行したり、a:b:c などのポイント クエリを実行したりできます。これで、たとえば phpcassa Exを使用して列スライスを実行できます。
row_key => { 1:a => 1, 1:b => 1, 10:bb => 1, 1:c => 2}
ColumnSlice(array(1), array(1)) => All Columns with first component equal to 1
ColumnSlice(array(1), array(10)) => All Columns with first component between 1 and 10
ColumnSlice("", array(1, 'c')) => All Columns from the beginning of row whose first component less than 1 and second component less than 'c'
上記のことを逆に行うことができ、包括的制限と排他的制限で遊ぶこともできます。
また、覚えておくべき点が 1 つあります。最初のコンポーネントをスキップして、2 番目のコンポーネント < x の範囲内のすべての列を直接要求することはできません。
行キーでさえ複合型をサポートしますが、ランダム パーティショナーを使用している場合は意味がありません。