2016-05-25 4 views

Antwort

1

Ja, es ist möglich.

Wenn Sie nur bestimmte Spalte-Qualifikation erhalten möchten, dann sollten Sie addColumn(byte[] family, byte[] qualifier) Methode Ihrer Get oder Scan-Instanzen verwenden. Dies ist die effizienteste Möglichkeit, Qualifier abzufragen, die Sie benötigen, da nur auf HBase-Stores zugegriffen werden muss, die die spezifischen Spalten in der Anforderung darstellen. Anwendungsbeispiel:

Get = new Get(Bytes.toBytes("rowKey")); 
get.addColumn(Bytes.toBytes("columnFamily", Bytes.toBytes("Qual")); 

Scan scan = new Scan(); 
scan.addColumn(Bytes.toBytes("columnFamily"), Bytes.toBytes("Qual1")); 
scan.addColumn(Bytes.toBytes("columnFamily"), Bytes.toBytes("Qual2")); 

Wenn Sie komplizierteres Werkzeug benötigen, um Ihre Qualifier zu filtern, dann können Sie QualifierFilter Klasse von Java-API verwenden. Beispiel dafür, wie können Sie alle Spalten mit bestimmten Qualifikations abfragen:

Filter filter = new QualifierFilter(CompareFilter.CompareOp.EQUAL, 
    new BinaryComparator(Bytes.toBytes("columnQual"))); 

Get = new Get(Bytes.toBytes("rowKey")); 
get.setFilter(filter); 

Scan scan = new Scan(); 
scan.setFilter(filter); 

Sie können auch über another HBase filters und how combine them in offizieller HBase Dokumentation lesen.

Verwandte Themen