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:

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