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