HBase - Verileri Oku
HBase Shell kullanarak Veri Okuma
get komut ve get() yöntemi HTablesınıfı, HBase'deki bir tablodan veri okumak için kullanılır. Kullanmagetkomutu, bir seferde tek bir veri satırı alabilirsiniz. Sözdizimi aşağıdaki gibidir:
get ’<table name>’,’row1’
Misal
Aşağıdaki örnek, get komutunun nasıl kullanılacağını gösterir. İlk satırını tarayalım.emp tablo.
hbase(main):012:0> get 'emp', '1'
COLUMN CELL
personal : city timestamp = 1417521848375, value = hyderabad
personal : name timestamp = 1417521785385, value = ramu
professional: designation timestamp = 1417521885277, value = manager
professional: salary timestamp = 1417521903862, value = 50000
4 row(s) in 0.0270 seconds
Belirli Bir Sütunu Okumak
Aşağıda verilen sözdizimi, belirli bir sütunu kullanarak okumak için get yöntem.
hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}
Misal
Aşağıda HBase tablosunda belirli bir sütunu okumak için örnek verilmiştir.
hbase(main):015:0> get 'emp', 'row1', {COLUMN ⇒ 'personal:name'}
COLUMN CELL
personal:name timestamp = 1418035791555, value = raju
1 row(s) in 0.0080 seconds
Java API Kullanarak Veri Okuma
Bir HBase tablosundan veri okumak için, get()HTable sınıfının yöntemi. Bu yöntem,Getsınıf. HBase tablosundan veri almak için aşağıda verilen adımları izleyin.
Adım 1: Konfigürasyon Sınıfının Örneğini Oluşturun
Configurationsınıfı, HBase yapılandırma dosyalarını nesnesine ekler. Kullanarak bir yapılandırma nesnesi oluşturabilirsiniz.create() yöntemi HbaseConfiguration aşağıda gösterildiği gibi sınıf.
Configuration conf = HbaseConfiguration.create();
Adım 2: HTable Sınıfının Örneğini Oluşturun
Adlı bir sınıfınız var HTable, HBase'de Table uygulaması. Bu sınıf, tek bir HBase tablosu ile iletişim kurmak için kullanılır. Bu sınıfın örneğini oluştururken, yapılandırma nesnesini ve tablo adını parametre olarak kabul eder. HTable sınıfını aşağıda gösterildiği gibi başlatabilirsiniz.
HTable hTable = new HTable(conf, tableName);
3. Adım: Get Sınıfının örneğini oluşturun
HBase tablosundaki verileri, get() yöntemi HTablesınıf. Bu yöntem, belirli bir satırdan bir hücre çıkarır. GerektirirGetparametre olarak sınıf nesnesi. Aşağıda gösterildiği gibi oluşturun.
Get get = new Get(toBytes("row1"));
Adım 4: Verileri Okuyun
Verileri alırken, kimliğe göre tek bir satır alabilir veya bir dizi satır kimliğine göre bir dizi satır alabilir veya bir tablonun tamamını veya bir satır alt kümesini tarayabilirsiniz.
Add method varyantlarını kullanarak bir HBase tablo verisi alabilirsiniz. Get sınıf.
Belirli bir sütun ailesinden belirli bir sütun almak için aşağıdaki yöntemi kullanın.
get.addFamily(personal)
Belirli bir sütun ailesinden tüm sütunları almak için aşağıdaki yöntemi kullanın.
get.addColumn(personal, name)
Adım 5: Sonucu Alın
Geçerek sonucu alın Get get yönteminin sınıf örneği HTablesınıf. Bu yöntem,Resultistenen sonucu tutan sınıf nesnesi. Aşağıda verilen kullanımdırget() yöntem.
Result result = table.get(g);
Adım 6: Sonuç Örneğinden Değerleri Okuma
Result sınıf sağlar getValue()değerleri örneğinden okumak için yöntem. Değerleri aşağıdaki şekilde okumak için kullanın.Result örnek.
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
Aşağıda, HBase tablosundan değerleri okumak için eksiksiz bir program verilmiştir.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
public class RetriveData{
public static void main(String[] args) throws IOException, Exception{
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(config, "emp");
// Instantiating Get class
Get g = new Get(Bytes.toBytes("row1"));
// Reading the data
Result result = table.get(g);
// Reading values from Result class object
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
// Printing the values
String name = Bytes.toString(value);
String city = Bytes.toString(value1);
System.out.println("name: " + name + " city: " + city);
}
}
Yukarıdaki programı aşağıda gösterildiği gibi derleyin ve çalıştırın.
$javac RetriveData.java
$java RetriveData
Aşağıdakiler çıktı olmalıdır:
name: Raju city: Delhi