2017-02-22 41 views
1

У меня есть простой вопрос. Должен ли я использовать CellUtil класс как это:HBASE CellUtil vs KeyValue

for (Cell cell : result.rawCells()) { 
      byte[] family = CellUtil.cloneFamily(cell); 
      byte[] column = CellUtil.cloneQualifier(cell); 
      byte[] value = CellUtil.cloneValue(cell); 
      System.out.println("\t" + Bytes.toString(family) + ":" + Bytes.toString(column) + " = " + Bytes.toString(value)); 
     } 

или KeyValue класса для доступа результата клетки

for(KeyValue kv : result.list()){ 
      String family = new String(kv.getFamily()); 
      System.out.println(family); 
      String qualifier = new String(kv.getQualifier()); 
      System.out.println(qualifier); 
      System.out.println(new String(kv.getValue())); 

     } 

Do KeyValue является устаревшим?

Большое спасибо за Ваш ответ

ответ

0

KeyValue не одобряется, но его методы, как getFamily, getQualifier, ПолучитьЗначение и т.п. есть. В документации API вы можете увидеть, что методы класса CellUtil рекомендуются (для клиентской стороны) и методы сотового интерфейса для сервера. Это связано с тем, что в соответствии с документами HBase KeyValue является основным типом HBase и рекомендуется, чтобы приложения и пользователи HBase использовали интерфейс Cell и избегали прямого использования функций KeyValue и членов, не определенных в Cell.