Lindorm wide table engine memungkinkan Anda terhubung melalui API non-Java HBase dalam bahasa seperti C++, Python, dan Go. Topik ini menjelaskan cara melakukannya.
Prasyarat
-
Anda telah mengunduh paket instalasi Thrift.
-
Anda telah mengunduh file definisi HBase Thrift2.
-
Anda telah memperoleh endpoint untuk Access by Using HBase non-Java API untuk LindormTable. Untuk informasi selengkapnya, lihat View endpoints. Masuk ke Konsol Lindorm. Pada halaman detail instans, pilih tab Wide Table Engine, perluas bagian HBase-compatible Endpoints, lalu peroleh endpoint untuk Virtual Private Cloud (VPC) atau jaringan publik di bagian HBase non-Java API. Nomor port-nya adalah 9190.
Gunakan API ApsaraDB for HBase untuk bahasa non-Java, seperti Python, untuk terhubung ke LindormTable
Untuk informasi lebih lanjut tentang penggunaan paket instalasi Thrift, lihat dokumentasi resmi Apache Thrift. Untuk mengakses Lindorm wide table engine menggunakan Thrift, ikuti langkah-langkah berikut:
-
Jalankan pernyataan berikut untuk menggunakan file definisi Thrift2 ApsaraDB for HBase guna menghasilkan file Interface Definition Language (IDL) dalam bahasa target yang sesuai:
thrift --gen <language> Hbase.thriftCatatanPlaceholder
languagemerepresentasikan bahasa pemrograman target Anda, misalnya python, php, cpp, atau py.Contoh pernyataan:
thrift --gen py Hbase.thrift -
Buat klien untuk mengakses Lindorm wide table engine.
Server Thrift di Lindorm menggunakan HTTP pada lapisan transport. Oleh karena itu, diperlukan ThttpClient dari Thrift saat membuat klien. Metode pembuatan klien bervariasi tergantung bahasa pemrograman. Jika Access Control List (ACL) diaktifkan, tentukan nama pengguna dan kata sandi dalam dua header di ThttpClient untuk otentikasi. Nama pengguna dan kata sandi tidak diperlukan jika ACL dinonaktifkan. Thrift memungkinkan Anda memanggil fungsi dalam suatu bahasa untuk menentukan header kustom di ThttpClient. Contoh berikut menggunakan Python. Jalankan pernyataan berikut untuk membuat klien dan terhubung ke LindormTable:
# -*- coding: utf-8 -*- # Dua modul berikut dihasilkan dengan menjalankan perintah 'pip install thrift'. from thrift.protocol import TBinaryProtocol from thrift.transport import THttpClient # Dua modul berikut dihasilkan dengan menjalankan perintah 'thrift --gen py hbase.thrift'. from hbase import THBaseService from hbase.ttypes import TColumnValue, TColumn, TTableName, TTableDescriptor, TColumnFamilyDescriptor, TNamespaceDescriptor, TGet, TPut, TScan # Konfigurasikan endpoint untuk mesin tabel lebar Lindorm. url = "http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9190" transport = THttpClient.THttpClient(url) headers = {} # Atur username. headers["ACCESSKEYID"]="testuser"; # Atur password yang sesuai dengan username. headers["ACCESSSIGNATURE"]="password" transport.setCustomHeaders(headers) protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport) client = THBaseService.Client(protocol) transport.open() # Tutup koneksi setelah operasi selesai. transport.close()