Bermigrasi dari versi HBase sebelumnya
Klien HBase Cloud Bigtable untuk Java menargetkan versi 1.x dan 2.x dari Apache HBase API. API versi 1.0 menyertakan beberapa perubahan yang signifikan dari HBase versi sebelumnya. Jika Anda bermigrasi ke Bigtable dari HBase, dan aplikasi Anda menargetkan versi HBase API yang lebih lama, Anda harus mengupdate aplikasi agar kompatibel dengan Bigtable.
Untuk membantu migrasi Anda, halaman ini meringkas perubahan yang paling penting di 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 mengimplementasikan 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 sesuai kebutuhan.
Objek Connection
aman untuk thread.
Selain itu, pastikan untuk menutup koneksi setelah Anda selesai menggunakannya. Di 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
Di HBase versi sebelumnya, saat memanipulasi tabel, Anda dapat menentukan
nama tabel sebagai nilai String
atau byte[]
. Di 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 Table, BufferedMutator, dan RegionLocator
Di HBase 1.0, class HTable
diganti dengan antarmuka berikut:
org.apache.hadoop.hbase.client.Table
: Memungkinkan Anda menangani data dalam satu tabel.org.apache.hadoop.hbase.client.BufferedMutator
: Memungkinkan Anda melakukan operasi tulis 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 ini:
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, 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
tidak didukung. Lihat Perbedaan antara HBase dan Bigtable API untuk mengetahui detailnya.
Gunakan objek Connection
untuk mendapatkan instance antarmuka Admin
:
Admin admin = connection.getAdmin();