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