HBase: Сканировать классификаторы столбцов - возможно ли это?

У меня есть несколько различных идентификаторов, связанных с каждой строкой: скажем, 1001, а также 1002, Каждый из этих идентификаторов имеет похожий набор атрибутов.

Поэтому я думаю, что нужно иметь одно семейство столбцов ('cf') с квалификаторами столбцов как таковыми:

cf:1001-attribute1 -> 'value a'
cf:1001-attribute2 -> 'value b'
cf:1001-attribute3 -> 'value c'
cf:1002-attribute1 -> 'value d'
cf:1002-attribute2 -> 'value e'
cf:1002-attribute3 -> 'value f'

Могу ли я сканировать: строку (x), семейство столбцов (cf), столбцы (1001*), чтобы в этом случае я поднял карту всех атрибутов для 1001?

Очевидно, что я могу сделать это для ключей строки, я не уверен, что классификаторы столбцов работают так же.

1 ответ

Решение

Вы можете использовать ColumnPrefixFilter

HTableInterface t = ...;
byte[] prefix = Bytes.toBytes("1001");
Scan scan = new Scan() 
Filter f = new ColumnPrefixFilter(prefix);
scan.setFilter(f);
scan.setBatch(20); // set this if there could be many columns returned
ResultScanner rs = t.getScanner(scan);
for (Result r = rs.next(); r != null; r = rs.next()) {
  for (KeyValue kv : r.raw()) {
    // each kv represents a column
  }
}
rs.close();
Другие вопросы по тегам