Bermigrasi dari versi HBase sebelumnya
Klien Cloud Bigtable HBase untuk Java menargetkan versi 1.x dan 2.x dari Apache HBase API. API versi 1.0 menyertakan beberapa perubahan penting dari versi HBase sebelumnya. Jika bermigrasi ke Bigtable dari HBase, dan aplikasi Anda menargetkan versi yang lebih lama HBase API, Anda harus mengupdate aplikasi agar kompatibel dengan Bigtable.
Untuk membantu migrasi Anda, halaman ini merangkum perubahan yang paling penting pada HBase 1.0 API.
Antarmuka koneksi
Di HBase 1.0 dan yang lebih baru, Anda harus menggunakan org.apache.hadoop.hbase.client.ConnectionFactory
, bukan mengandalkan antarmuka HConnection
yang tidak digunakan lagi.
Class ini membuat objek yang menerapkan antarmuka
Connection
baru. ConnectionFactory
menggantikan class
ConnectionManager
dan HConnectionManager
yang tidak digunakan lagi.
Membuat objek Connection
adalah operasi yang relatif mahal. Anda harus
membuat satu objek Connection
per proses dan membagikan objek tersebut sesuai kebutuhan.
Objek Connection
aman untuk thread.
Selain itu, pastikan untuk menutup koneksi setelah Anda selesai menggunakannya. Pada HBase 1.0 dan yang lebih baru, aplikasi bertanggung jawab untuk mengelola siklus proses koneksi.
Kode yang diperbarui akan terlihat seperti contoh berikut:
Connection connection = ConnectionFactory.createConnection(config);
// ...
connection.close();
Class TableName
Pada HBase versi sebelumnya, saat memanipulasi tabel, Anda dapat menentukan nama tabel sebagai nilai String
atau byte[]
. Pada HBase 1.0 dan yang lebih baru, Anda harus
menentukan nama tabel dengan membuat instance
org.apache.hadoop.hbase.TableName
:
String tableName = "MyTable";
// or byte[] tableName = Bytes.toBytes("MyTable");
TableName tableNameObj = TableName.valueOf(tableName);
Antarmuka Tabel, BufferedMutator, dan RegionLocator
Di HBase 1.0, class HTable
diganti dengan antarmuka berikut:
org.apache.hadoop.hbase.client.Table
: Memungkinkan Anda bekerja dengan data dalam satu tabel.org.apache.hadoop.hbase.client.BufferedMutator
: Memungkinkan Anda melakukan penulisan batch asinkron ke tabel. Gunakan class ini, bukan memanggil metodesetAutoFlush(boolean)
diHTableInterface
.org.apache.hadoop.hbase.client.RegionLocator
: Memberikan akses ke informasi tentang region tabel.
Gunakan objek Connection
untuk mendapatkan instance antarmuka berikut:
Table table = connection.getTable(tableNameObj);
BufferedMutator mutator = connection.getBufferedMutator(tableNameObj);
RegionLocator regionLocator = connection.getRegionLocator(tableNameObj);
Instance Table
, BufferedMutator
, dan RegionLocator
tidak aman untuk thread. Namun, objek ini adalah objek ringan, sehingga Anda dapat membuatnya sesuai
kebutuhan dalam konteks satu thread.
Antarmuka admin
Di HBase 1.0, class HBaseAdmin
diganti dengan
antarmuka org.apache.hadoop.hbase.client.Admin
. Karena Bigtable menangani tugas pemeliharaan secara otomatis, banyak metode di antarmuka Admin
yang tidak didukung. Lihat Perbedaan antara
HBase dan Bigtable API untuk mengetahui detailnya.
Gunakan objek Connection
untuk mendapatkan instance antarmuka Admin
:
Admin admin = connection.getAdmin();