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:

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