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

ApsaraDB for HBase:多言語での API アクセス

最終更新日:Mar 29, 2026

Thrift を使用して、Python、Go、C++、Node.js、または PHP から ApsaraDB for HBase Performance-enhanced Edition クラスターに接続します。

前提条件

開始する前に、以下をご確認ください。

仕組み

ApsaraDB for HBase Performance-enhanced Edition は、Thrift トランスポートレイヤーで HTTP を使用します。 すべてのクライアントは、標準のソケットトランスポートではなく、THttpClient を使用して接続する必要があります。 Thrift 2 の場合、THttpClient インスタンスでユーザー名とパスワードをカスタム HTTP ヘッダーとして指定する必要があります。

Thrift 1 と Thrift 2 の比較

機能Thrift 1Thrift 2
認証サポートされていません必須 (ユーザー名 + パスワード)
コアノードあたりの最大接続数1,000
トランスポートTHttpClientTHttpClient (HTTP のみ)

新規の統合には Thrift 2 を使用してください。 Thrift 1 には認証サポートがなく、ACL が有効になっているクラスターには適していません。

Thrift のセットアップ

Thrift コンパイラのインストール

ほとんどの言語では、パッケージマネージャを介して Thrift ライブラリを直接インストールできます。 コンパイラは、Hbase.thrift からインターフェイス定義ファイルを再生成する必要がある場合にのみダウンロードしてください。

パッケージマネージャ (推奨):

言語コマンド
Pythonpip install thrift
Goimport "github.com/apache/thrift/lib/go/thrift" を Go モジュールに追加

手動でのコンパイラのインストールthrift-0.12.0.tar.gz をダウンロードし、「Thrift インストールガイド」に従ってください。

インターフェイス定義ファイルの生成

  1. ApsaraDB for HBase 用の Thrift 2 定義ファイルをダウンロードします。

  2. Thrift コンパイラパッケージを展開し、展開したディレクトリから次のコマンドを実行して、言語固有のバインディングを生成します:

    thrift --gen <language> Hbase.thrift

    例:

    thrift --gen py Hbase.thrift
    thrift --gen cpp Hbase.thrift
    thrift --gen php Hbase.thrift

クライアントの初期化

次の例では Python を使用します。 他の言語にも同じパターンを適用します。THttpClient を作成し、認証ヘッダーを追加し、TBinaryProtocol でラップして、プロトコルを THBaseService.Client に渡します。

# -*- coding: utf-8 -*-
# Thrift ライブラリのインストール: 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
)

# <host> をご利用のクラスターエンドポイントに置き換えます。
url = "http://<host>:9190"

# HBase Thrift サーバーは標準のソケットトランスポートではなく HTTP トランスポートを使用するため、THttpClient が必要です。
transport = THttpClient.THttpClient(url)

# 認証情報をカスタム HTTP ヘッダーとして渡します。 Thrift 2 ではユーザー名とパスワードが必要です。
headers = {
    "ACCESSKEYID": "<your-username>",       # クラスターのユーザー名
    "ACCESSSIGNATURE": "<your-password>",   # クラスターのパスワード
}
transport.setCustomHeaders(headers)

# TBinaryProtocolAccelerated は、利用可能な場合に C 拡張機能を使用してシリアル化を高速化し、利用できない場合は純粋な Python 実装にフォールバックします。
protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)

# 設定されたプロトコルを使用して HBase クライアントを作成します。
client = THBaseService.Client(protocol)

# 呼び出しを行う前に接続を開きます。
transport.open()

# ここに HBase 操作を記述します。

# 完了したらトランスポートを閉じて接続を解放します。
transport.close()

プレースホルダー:

プレースホルダー説明
<host>ご利用のクラスターエンドポイント (http:// プレフィックスなし)
<your-username>クラスターのユーザー名
<your-password>クラスターのパスワード
説明

Thrift 1 は認証をサポートしていません。 ご利用のクラスターで認証情報が必要な場合は、上記のように Thrift 2 を使用してください。

サンプルコード

各言語の完全な実行可能なクライアントのサンプルは GitHub で入手できます。 各リポジトリには、Thrift 定義ファイルと、言語固有の依存関係が含まれています。

言語リンク
Pythonサンプルコードのダウンロード
Goサンプルコードのダウンロード
C++サンプルコードのダウンロード
Node.jsサンプルコードのダウンロード
PHPサンプルコードのダウンロード

次のステップ