特定の基準を満たすすべての行をスキャンするには、HBase で Scan を使用する必要があります。これが、フィルター (実際には 2 つの SingleColumnValueFilter を含む複合フィルター リスト) を使用する理由です。これで、rowKeys が次のように構造化されました。
a.b.x|1|1252525
a.b.x|1|2373273
a.b.x|1|2999238
...
a.b.x|2|3000320
a.b.x|2|4000023
...
a.b.y|1|1202002
a.b.y|1|1778949
a.b.y|1|2738273
追加の要件として、「abx|1」で始まるrowKeyを持つ行のみを反復処理する必要があります
さて、質問
- フィルタ リストで追加の PrefixFilter を使用すると、スキャナは常にすべての行をスキャンしますか (そして、それぞれにフィルタを適用しますか)?
- startRow (接頭辞) と filterlist (PrefixFilter なし) を渡して Scan をインスタンス化すると、指定された行の接頭辞からスキャンが開始されることがわかりました。それで、私が「abx」をstartRowとして使用していると仮定すると、スキャンはabyもスキャンしますか?
- new Scan(startRow, endRow) を使用してから setFilter を使用すると、どのような動作になりますか? つまり、欠落しているコンストラクタ Scan(byte [] start, byte [] end, Filter filter) はどうですか?
前もってありがとう
アンドレア