すべてのプロダクト
Search
ドキュメントセンター

Lindorm:HBase 非 Java API を使用したアプリケーション開発

最終更新日:Jun 21, 2026

Lindorm のワイドテーブルエンジンでは、C++、Python、Go などの言語で HBase 非 Java API を使用して接続できます。このトピックでは、その方法について説明します。

前提条件

  • Thrift インストールパッケージをダウンロード済みであること。

  • HBase Thrift2 定義ファイルをダウンロード済みであること。

  • LindormTable の [HBase 非 Java API によるアクセス] 用のエンドポイントを取得します。 詳細については、「エンドポイントの表示」をご参照ください。 Lindorm コンソールにログインします。 インスタンス詳細ページで、[Wide Table Engine] タブを選択し、[HBase 互換エンドポイント] セクションを展開します。 次に、[HBase 非 Java API] セクションで Virtual Private Cloud (VPC) またはパブリックネットワークのエンドポイントを取得します。 ポート番号は 9190 です。

Python などの非 Java 言語での HBase 非 Java API を使用した LindormTable への接続

Thrift インストールパッケージの使用方法の詳細については、Apache Thrift の公式ドキュメントをご参照ください。 Thrift を使用して Lindorm ワイドテーブルエンジンにアクセスするには、以下の手順に従ってください。

  1. 次のステートメントを実行し、HBase の Thrift2 定義ファイルを使用して、対応する言語のインターフェイス定義言語 (IDL) ファイルを生成します。

    thrift --gen <language> Hbase.thrift
    説明

    language プレースホルダーは、ターゲットのプログラミング言語 (例: python、php、cpp、py) を表します。

    サンプルステートメント:

    thrift --gen py Hbase.thrift
  2. Lindorm ワイドテーブルエンジンにアクセスするためのクライアントを作成します。

    Lindorm の Thrift サーバーは、トランスポート層で HTTP を使用します。クライアントを作成する際は、Thrift の ThttpClient が必要です。クライアントの作成方法は言語によって異なります。アクセス制御リスト (ACL) が有効になっている場合は、認証のために ThttpClient の 2 つのヘッダーにユーザー名とパスワードを指定します。ACL が無効になっている場合、ユーザー名とパスワードは不要です。Thrift では、言語の関数を呼び出して ThttpClient でカスタムヘッダーを指定できます。次の例では、Python を使用します。次のステートメントを実行して、クライアントを作成し、LindormTable に接続できます。

     # -*- coding: utf-8  -*-
     # 以下の 2 つのモジュールは、'pip install thrift' コマンドを実行することで生成されます。
     from thrift.protocol import TBinaryProtocol
     from thrift.transport import THttpClient
     # 以下の 2 つのモジュールは、'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()

その他の言語のサンプルコード

その他の非 Java 言語の完全なサンプルコードを入手するには、次のダウンロードリンクのいずれかをクリックして、GitHub から各言語のサンプルコードをダウンロードしてください。