云原生多模數據庫 Lindorm寬表引擎支持通過HBase非Java(例如C++、Python和Go等)API進行訪問,本文介紹具體的訪問操作。
準備工作
已下載Thrift安裝包,下載鏈接請單擊Thrift安裝包。
已下載HBase Thrift2定義文件,下載鏈接請單擊HBase Thrift2定義文件。
已獲取Lindorm寬表引擎的使用HBase 非Java API訪問的連接地址,具體操作請參見查看連接地址。
訪問Lindorm寬表引擎(以Python語言為例)
Thrift安裝包的使用請參見Apache Thrift官方文檔,通過Thrift訪問云原生多模數據庫 Lindorm寬表引擎的步驟如下:
使用HBase Thrift2定義文件來生成對應語言的接口文件。 命令語句如下:
thrift --gen <language> Hbase.thrift
說明language
為目標語言,例如:python、php、cpp、py等。語句示例:
thrift --gen python Hbase.thrift
構造客戶端訪問云原生多模數據庫 Lindorm寬表引擎。
Lindorm中Thrift服務器端的transport層使用的是HTTP,因此在構造客戶端時,需要thrift中的ThttpClient(各個語言都有相應實現)。并且在ACL開啟的情況下,需要在ThttpClient上加上兩個header來向服務器傳輸用戶名和密碼進行認證(如果關閉ACL則不需要)。Thrift在每個語言實現的ThttpClient都有加定制header的函數。以Python語言為例,使用以下語句構造客戶端并訪問Lindorm寬表引擎。
# -*- coding: utf-8 -*- # 以下兩個模塊通過執行pip install thrift 語句生成 from thrift.protocol import TBinaryProtocol from thrift.transport import THttpClient # 以下兩個模塊通過執行thrift --gen py hbase.thrift 語句生成 from hbase import THBaseService from hbase.ttypes import TColumnValue, TColumn, TTableName, TTableDescriptor, TColumnFamilyDescriptor, TNamespaceDescriptor, TGet, TPut, TScan # 配置Lindorm寬表引擎的連接地址 url = "http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9190" transport = THttpClient.THttpClient(url) headers = {} # 設置用戶名 headers["ACCESSKEYID"]="testuser"; # 設置用戶名對應的密碼 headers["ACCESSSIGNATURE"]="password" transport.setCustomHeaders(headers) protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport) client = THBaseService.Client(protocol) transport.open() # 具體操作后,執行關閉連接操作 transport.close()
相關代碼示例
文檔內容是否對您有幫助?