Contoh Kueri HBase: Perintah put(), get() & scan()
⚡ Ringkasan Cerdas
Perintah HBase put, get, dan scan adalah perintah inti untuk menulis dan membaca data, memungkinkan Anda menyimpan nilai sel berdasarkan baris dan kolom, mengambil satu baris, atau menelusuri banyak baris dari shell atau Java API.

Tulis Data ke Tabel HBase: Shell
Contoh-contoh ini mengasumsikan HBase adalah terpasang dan berjalan, shell HBase terbuka, dan sebuah tabel bernama guru99 sudah ada pada keluarga kolom pendidikan dan proyek.
Perintah put digunakan untuk menyimpan data ke dalam tabel.
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Perintah ini digunakan untuk hal-hal berikut:
- Ini akan menempatkan 'nilai' sel pada tabel atau baris atau kolom yang ditentukan atau ditentukan.
- Fitur ini secara opsional akan mengkoordinasikan stempel waktu.
Sebagai contoh, di sini kita memasukkan nilai ke dalam tabel “guru99” pada baris r1 dan kolom c1:
hbase> put 'guru99', 'r1', 'c1', 'value', 10
Kami telah memasukkan tiga nilai, 10, 15, dan 30, ke dalam tabel “guru99”, seperti yang ditunjukkan pada tangkapan layar di bawah ini.
Misalkan tabel “guru99” memiliki referensi tabel, misalnya g. Anda juga dapat menjalankan perintah pada referensi tabel tersebut, seperti ini:
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
Hasilnya akan terlihat seperti yang ditunjukkan pada tangkapan layar di atas setelah memasukkan nilai ke dalam “guru99”.
Baca Data dari Tabel HBase: Shell
Di bagian ini, kita akan memeriksa hal-hal berikut ini: cangkang HBase:
- Nilai yang dimasukkan ke dalam tabel HBase “guru99”.
- Nama kolom beserta nilai yang ada di tabel HBase guru99.
Output pemindaian di bawah ini mencantumkan setiap nilai yang dimasukkan ke dalam “guru99”, beserta nama baris dan kolomnya:
Dari tangkapan layar di atas, kita dapat menyimpulkan hal-hal berikut:
- Jika kita menjalankan perintah “scan” di shell HBase, maka nilai yang dimasukkan ke dalam “guru99” akan ditampilkan sebagai berikut.
- Di dalam shell HBase, akan ditampilkan nilai-nilai yang dimasukkan oleh kode kita, beserta nama kolom dan barisnya.
- Di sini kita dapat melihat nama kolom yang dimasukkan adalah “pendidikan” dan “proyek”.
- Nilai yang dimasukkan adalah “BigData” dan “HBase Tutorials” ke dalam kolom yang disebutkan.
Anda juga dapat menggunakan perintah get untuk membaca data dari sebuah tabel.
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Di sini, parameter tambahan meliputi TIMERANGE, TIMESTAMP, VERSIONS, dan FILTERS. Dengan menggunakan perintah ini, Anda mendapatkan baris atau isi sel yang ada dalam tabel. Anda dapat menambahkan parameter tambahan, seperti TIMESTAMP, TIMERANGE, VERSIONS, atau FILTERS, untuk mengambil baris atau isi sel tertentu. Tabel di bawah ini merangkum parameter-parameter tersebut:
| Parameter | Tujuan |
|---|---|
| RENTANG WAKTU | Mengembalikan sel-sel yang stempel waktunya berada di antara waktu mulai dan waktu akhir yang ditentukan. |
| URUTAN WAKTU | Hanya mengembalikan versi sel yang tersimpan pada stempel waktu yang tepat. |
| VERSI | Menentukan berapa banyak versi sel yang akan dikembalikan (nilai default adalah 1). |
| FILTER | Menerapkan filter untuk membatasi baris atau kolom mana yang akan dikembalikan. |
| KOLOM | Membatasi hasil pada kelompok kolom atau kualifikasi tertentu. |
Berikut beberapa contoh penggunaan perintah get:
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Untuk tabel “guru99”, nilai baris r1 dan kolom c1 akan ditampilkan menggunakan perintah ini, seperti yang ditunjukkan pada tangkapan layar di bawah ini.
hbase> get 'guru99', 'r1'
Untuk tabel “guru99”, nilai baris r1 akan ditampilkan menggunakan perintah ini.
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Untuk tabel “guru99”, nilai baris r1 dalam rentang waktu ts1 hingga ts2 akan ditampilkan menggunakan perintah ini.
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Untuk tabel “guru99”, nilai baris r1 dan keluarga kolom c1, c2, dan c3 akan ditampilkan menggunakan perintah ini.
Tulis Data ke Tabel HBase: JAVA API
Pada langkah ini, kita akan menulis data ke dalam tabel HBase “guru99”.
Pertama, kita harus menulis kode untuk memasukkan dan mengambil nilai dari HBase, menggunakan program HBaseLoading.java. Untuk membuat dan memasukkan nilai ke dalam tabel pada tingkat kolom, Anda dapat menulis kode seperti yang ditunjukkan di bawah ini.
Tangkapan layar di bawah ini menunjukkan Java Kode yang membangun konfigurasi HBase dan memasukkan nilai ke dalam “guru99”:
Dari tangkapan layar di atas:
- Saat kita membuat konfigurasi HBase, konfigurasi tersebut mengarah ke konfigurasi apa pun yang kita tetapkan dalam file hbase-site.xml dan hbase-default.xml selama instalasi HBase.
- Pembuatan tabel “guru99” menggunakan metode HTable.
- Menambahkan baris 1 ke tabel “guru99”.
- Menentukan nama kolom “pendidikan” dan “proyek” dan memasukkan nilai ke dalam nama kolom di baris1 yang bersangkutan. Nilai yang dimasukkan di sini adalah BigData dan “HBaseTutorials”.
Baca Data dari Tabel HBase: Java API
Nilai apa pun yang kita masukkan ke dalam tabel HBase di bagian atas, di sini kita akan mengambil dan menampilkan nilai-nilai tersebut.
Output konsol di bawah ini menunjukkan data yang dibaca kembali dari tabel HBase “guru99”:
Untuk mengambil hasil yang tersimpan di “guru99”:
- Di sini kita akan mengambil nilai-nilai yang tersimpan dalam keluarga kolom, yaitu “pendidikan” dan “proyek”.
- Dengan menggunakan perintah “get”, kita akan mengambil nilai-nilai yang tersimpan dalam tabel HBase.
- Memindai hasil menggunakan perintah “scan”. Nilai yang tersimpan di baris 1 akan ditampilkan di konsol.
Setelah kode ditulis, Anda menjalankannya. Java aplikasi seperti ini:
Klik kanan pada HBaseLoading.java -> Jalankan Sebagai -> Java Aplikasi.
Setelah menjalankan “HBaseLoading.java”, nilai-nilai dimasukkan ke dalam “guru99” di setiap kolom di HBase, dan dalam program yang sama, nilai-nilai tersebut juga dapat diambil.
Berikut kode lengkapnya:
import java.io.IOException; 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.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.util.Bytes; public class HBaseLoading { public static void main(String[] args) throws IOException { /* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/ org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create(); /*This instantiates an HTable object that connects you to the "test" table*/ HTable table = new HTable(config, "guru99"); /* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/ Put p = new Put(Bytes.toBytes("row1")); /*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/ p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData")); p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials")); // Once you've adorned your Put instance with all the updates you want to make, to commit it do the following table.put(p); // Now, to retrieve the data we just wrote. Get g = new Get(Bytes.toBytes("row1")); Result r = table.get(g); byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1")); byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2")); String valueStr = Bytes.toString(value); String valueStr1 = Bytes.toString(value1); System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1); Scan s = new Scan(); s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1")); s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2")); ResultScanner scanner = table.getScanner(s); try { for (Result rr = scanner.next(); rr != null; rr = scanner.next()) { System.out.println("Found row : " + rr); } } finally { // Make sure you close your scanners when you are done! scanner.close(); } } }
Catatan tentang versi API: Contoh di atas menggunakan kelas HTable dan metode add(), yang mencerminkan API klien HBase yang lebih lama. Sejak HBase 1.0, HTable sudah usang. Kode modern mendapatkan Tabel melalui ConnectionFactory.createConnection(…).getTable(…) dan membangun Put dengan addColumn() alih-alih add(). Logika put, get, dan scan tetap sama.





