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

:非 Java HBase SDK を使用した LindormTable へのアクセス

最終更新日:Jun 23, 2026

Lindorm のワイドカラムエンジンは、C++、Python、Go などの非 Java の HBase API を介したアクセスをサポートしています。このトピックでは、SDK のインストール方法とアクセス操作の実行方法について説明します。

背景情報

Lindorm のワイドテーブルエンジンは、`Thrift` を介して非 Java 言語 (C++、Python、Go など) からのアクセスをサポートしています。

Lindorm のワイドテーブルエンジンは HBase `Thrift2` インターフェイス定義を使用しているため、言語固有のインターフェイスを生成するには HBase `Thrift2` 定義ファイルをダウンロードする必要があります。HBase Thrift1 定義と比較して、`Lindorm` の HBase `Thrift2` インターフェイス定義はより明確で、Java に似た API 呼び出しエクスペリエンスを提供します。現在、HBase `Thrift2` 定義ファイルは、HBase Thrift1 定義ファイルよりも包括的な機能を提供し、使いやすくなっています。

前提条件

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

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

  • [非 Java ApsaraDB for HBase API を使用したアクセス] のエンドポイントを取得済みであること。詳細については、「エンドポイントの表示」をご参照ください。ご利用の `Lindorm` インスタンスの [データベース接続] ページで、[LindormTable] タブを選択し、[ApsaraDB for HBase 互換エンドポイント] セクションを展開してから、VPC またはパブリックネットワークの [非 Java ApsaraDB for HBase API を使用したアクセス] セクションにある HTTP エンドポイントをコピーします。ポートは 9190 です。

LindormTable へのアクセス (Python の例)

`Thrift` インストールパッケージの使用方法については、Apache Thrift 公式ドキュメントをご参照ください。次の手順では、`Thrift` を使用して `LindormTable` にアクセスする方法について説明します。

  1. HBase `Thrift2` 定義ファイルを使用して、ターゲット言語のインターフェイスファイルを生成します。次のコマンドを実行します。

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

    `language` パラメーターは、ターゲット言語のジェネレーターフラグを指定します。たとえば、Python の場合は `py`、その他に `php` や `cpp` などがあります。サポートされている言語とその対応するジェネレーターフラグの完全なリストについては、Apache Thrift 公式ドキュメントをご参照ください。

    たとえば、Python インターフェイスファイルを生成するには、`language` パラメーターを `py` に設定して、次のコマンドを実行します。

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

    `Lindorm` の `Thrift` サーバーは、トランスポートレイヤーに HTTP を使用します。したがって、クライアントを作成するときは、`ThttpClient` トランスポート実装を使用する必要があります。インスタンスでアクセス制御リスト (ACL) が有効になっている場合は、ユーザー名とパスワードを渡すために、`ThttpClient` オブジェクトに 2 つのカスタムヘッダーを追加する必要があります。ACL が無効になっている場合、この手順は不要です。`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
    # 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()

コードサンプル

他の非 Java 言語の完全なコードサンプルは、次の `GitHub` リンクから入手できます。