HBase - Baca Data

Membaca Data menggunakan HBase Shell

Itu get perintah dan get() metode dari HTablekelas digunakan untuk membaca data dari tabel di HBase. Menggunakangetperintah, Anda bisa mendapatkan satu baris data dalam satu waktu. Sintaksnya adalah sebagai berikut:

get ’<table name>’,’row1’

Contoh

Contoh berikut menunjukkan bagaimana menggunakan perintah get. Mari kita pindai baris pertama dariemp meja.

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

Membaca Kolom Tertentu

Diberikan di bawah ini adalah sintaks untuk membaca kolom tertentu menggunakan get metode.

hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}

Contoh

Diberikan di bawah ini adalah contoh untuk membaca kolom tertentu dalam tabel HBase.

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

Membaca Data Menggunakan Java API

Untuk membaca data dari tabel HBase, gunakan get()metode kelas HTable. Metode ini membutuhkan turunan dariGetkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk mengambil data dari tabel HBase.

Langkah 1: Buat instance Kelas Konfigurasi

Configurationkelas menambahkan file konfigurasi HBase ke objeknya. Anda dapat membuat objek konfigurasi menggunakancreate() metode dari HbaseConfiguration kelas seperti yang ditunjukkan di bawah ini.

Configuration conf = HbaseConfiguration.create();

Langkah 2: Buat instance Kelas HTable

Anda memiliki kelas yang disebut HTable, implementasi Tabel di HBase. Kelas ini digunakan untuk berkomunikasi dengan tabel HBase tunggal. Saat membuat instance kelas ini, ia menerima objek konfigurasi dan nama tabel sebagai parameter. Anda dapat membuat instance kelas HTable seperti yang ditunjukkan di bawah ini.

HTable hTable = new HTable(conf, tableName);

Langkah 3: Buat instance Get Class

Anda dapat mengambil data dari tabel HBase menggunakan get() metode dari HTablekelas. Metode ini mengekstrak sel dari baris tertentu. Ini membutuhkanGetobjek kelas sebagai parameter. Buat seperti yang ditunjukkan di bawah ini.

Get get = new Get(toBytes("row1"));

Langkah 4: Baca Data

Saat mengambil data, Anda bisa mendapatkan satu baris dengan id, atau mendapatkan satu set baris dengan satu set id baris, atau memindai seluruh tabel atau subset baris.

Anda dapat mengambil data tabel HBase menggunakan varian metode add di Get kelas.

Untuk mendapatkan kolom tertentu dari keluarga kolom tertentu, gunakan metode berikut.

get.addFamily(personal)

Untuk mendapatkan semua kolom dari keluarga kolom tertentu, gunakan metode berikut.

get.addColumn(personal, name)

Langkah 5: Dapatkan Hasilnya

Dapatkan hasil dengan mengoper Get instance kelas ke metode get dari HTablekelas. Metode ini mengembalikanResultobjek kelas, yang menyimpan hasil yang diminta. Diberikan di bawah ini adalah penggunaanget() metode.

Result result = table.get(g);

Langkah 6: Membaca Nilai dari Contoh Hasil

Itu Result kelas menyediakan getValue()metode untuk membaca nilai dari instance-nya. Gunakan seperti yang ditunjukkan di bawah ini untuk membaca nilai dariResult contoh.

byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));

Diberikan di bawah ini adalah program lengkap untuk membaca nilai dari tabel HBase.

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);
   }
}

Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.

$javac RetriveData.java
$java RetriveData

Outputnya adalah sebagai berikut:

name: Raju city: Delhi