Lindorm wide-column engine mendukung akses melalui API HBase non-Java, seperti C++, Python, dan Go. Topik ini menjelaskan cara menginstal SDK dan melakukan operasi akses.
Informasi latar belakang
Lindorm wide table engine mendukung akses dari bahasa non-Java (seperti C++, Python, dan Go) melalui Thrift.
Mesin tabel lebar Lindorm menggunakan definisi antarmuka HBase Thrift2, sehingga Anda perlu mengunduh file definisi HBase Thrift2 untuk menghasilkan antarmuka khusus bahasa. Dibandingkan dengan HBase Thrift1, definisi antarmuka HBase Thrift2 di Lindorm lebih jelas dan memberikan pengalaman pemanggilan API yang mirip dengan Java. Saat ini, file definisi HBase Thrift2 menyediakan fitur yang lebih lengkap dan lebih mudah digunakan daripada file definisi HBase Thrift1.
Prasyarat
-
Anda telah mengunduh paket instalasi Thrift.
-
Anda telah mengunduh file definisi HBase Thrift2.
-
Anda telah memperoleh endpoint untuk Access by using a non-Java ApsaraDB for HBase API. Untuk informasi selengkapnya, lihat View endpoints. Pada halaman Database connection instans Lindorm Anda, pilih tab LindormTable, buka bagian ApsaraDB for HBase-compatible endpoints, lalu salin endpoint HTTP pada bagian Access by using a non-Java ApsaraDB for HBase API untuk VPC atau jaringan publik. Port-nya adalah 9190.
Akses LindormTable (contoh Python)
Untuk petunjuk penggunaan paket instalasi Thrift, lihat dokumentasi resmi Apache Thrift. Langkah-langkah berikut menjelaskan cara menggunakan Thrift untuk mengakses LindormTable:
-
Gunakan file definisi HBase Thrift2 untuk menghasilkan file antarmuka untuk bahasa target Anda. Jalankan perintah berikut:
thrift --gen <language> hbase.thriftCatatanParameter
languagemenentukan flag generator untuk bahasa target Anda, misalnyapyuntuk Python,php, ataucpp. Untuk daftar lengkap bahasa yang didukung beserta flag generator-nya, lihat dokumentasi resmi Apache Thrift.Sebagai contoh, untuk menghasilkan file antarmuka Python, atur parameter
languagekepydan jalankan perintah berikut:thrift --gen py hbase.thrift -
Buat client untuk mengakses mesin tabel lebar Lindorm.
Server Thrift di Lindorm menggunakan HTTP sebagai lapisan transport-nya. Oleh karena itu, Anda harus menggunakan implementasi transport
ThttpClientsaat membuat client. Jika Access Control List (ACL) diaktifkan untuk instans Anda, Anda harus menambahkan dua header kustom ke objekThttpClientuntuk meneruskan username dan password. Langkah ini tidak diperlukan jika ACL dinonaktifkan. Setiap implementasiThttpClientkhusus bahasa menyediakan fungsi untuk mengatur header kustom. Contoh Python berikut menunjukkan cara membuat client dan mengakses 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 LindormTable. url = "http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9190" transport = THttpClient.THttpClient(url) headers = {} # Atur username. headers["ACCESSKEYID"]="testuser"; # Atur password untuk username tersebut. headers["ACCESSSIGNATURE"]="password" transport.setCustomHeaders(headers) protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport) client = THBaseService.Client(protocol) transport.open() # Tutup koneksi setelah menyelesaikan operasi. transport.close()