Lindorm では、LindormTable エンジンは C++、Python、Go などの HBase 非 Java API を介したアクセスをサポートしています。この Topic では、これらのアクセス操作について説明します。
前提条件
Thrift インストールパッケージをダウンロードします。
ApsaraDB for HBase の Thrift2 定義ファイルをダウンロードします。
Lindormコンソールのワイドテーブルエンジンのタブにある[hbase非java APIを使用してアクセス]の後に表示されるLindormTableエンドポイントを取得していること。詳細については、「エンドポイントの表示」をご参照ください。
PythonなどのJava以外の言語でApsaraDB for HBase APIを使用してLindormTableに接続する
Thrift インストールパッケージの使用方法の詳細については、「Apache Thrift 公式ドキュメント」をご参照ください。次のステップでは、Thrift を使用して Lindorm ワイドテーブルエンジンにアクセスする方法について説明します。
次のステートメントを実行して、ApsaraDB for HBaseのThrift2定義ファイルを使用して、対応する言語でインターフェース定義言語(IDL)ファイルを生成します。
thrift --gen <language> Hbase.thrift説明languageパラメーターは、使用するプログラミング言語を指定します。このパラメーターは python、php、cpp、または py に設定できます。ステートメントの例:
thrift --gen py Hbase.thriftLindormTable にアクセスするためのクライアントを作成します。
Lindorm の Thrift サーバーは、トランスポートレイヤーで HTTP を使用します。クライアントを作成するときは、Thrift の ThttpClient が必要です。クライアントの作成方法は言語によって異なります。アクセスコントロールリスト (ACL) が有効になっている場合は、認証のために ThttpClient の 2 つのヘッダーにユーザー名とパスワードを指定します。ACL が無効になっている場合、ユーザー名とパスワードは必要ありません。Thrift では、言語の関数を呼び出して、ThttpClient でカスタムヘッダーを指定できます。次の例では、Python を使用します。次の文を実行して、クライアントを作成し、LindormTable に接続できます。
# -*- coding: utf-8 -*- # pip install thrift コマンドを実行して、次の 2 つのモジュールを生成できます: from thrift.protocol import TBinaryProtocol from thrift.transport import THttpClient # thrift --gen py hbase.thrift コマンドを実行して、次の 2 つのモジュールを生成できます: from hbase import THBaseService from hbase.ttypes import TColumnValue, TColumn, TTableName, TTableDescriptor, TColumnFamilyDescriptor, TNamespaceDescriptor, TGet, TPut, TScan # LindormTable のエンドポイントを指定します。 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()