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

Tablestore:グローバルテーブルのバインド

最終更新日:Feb 27, 2026

このトピックでは、Tablestore Java SDK を使用して、グローバルテーブルに 1 つ以上の配信ロケーションを追加する方法について説明します。

注意事項

バインド操作が成功すると、システムは非同期で新しいレプリカをバインドし、データを同期します。現在のグローバルテーブルのステータスを確認するには、`DescribeGlobalTable` を呼び出してください。応答で返されるステータスが `active` の場合、新しいグローバルテーブルレプリカのバインドが正常に完了しています。

前提条件

クライアントの初期化を行ってください。

メソッドの説明

public BindGlobalTableResponse bindGlobalTable(BindGlobalTableRequest request) throws TableStoreException, ClientException

BindGlobalTableRequest のパラメーター

  • globalTableId(必須)String:グローバルテーブルの ID。

    説明

    グローバルテーブル ID をご存じない場合は、`DescribeTable` 操作を呼び出してレプリカの詳細を照会してください。テーブルレプリカがグローバルテーブルに属している場合、`DescribeTable` 操作の応答に該当するグローバルテーブル ID が含まれます。

  • globalTableName(必須)String:グローバルテーブルの名前。ベーステーブルの名前と一致する必要があります。

  • placements(必須)List<Placement>:新しい配信ロケーション構成のリスト。各構成には以下のパラメーターが含まれます:

    名前

    説明

    regionId(必須)

    String

    リージョン ID。

    instanceName(必須)

    String

    インスタンス名。

    writable(必須)

    boolean

    書き込み可能かどうかを示します。デフォルト値は `false` です。プライマリセカンダリモードを使用する場合は、デフォルト設定のままにしてください。マルチアクティブモードを使用する場合は、必要に応じてこのパラメーターを `true` に設定します。

private static void bindGlobalTableExample(SyncClient client) {
    // リクエストの構築
    BindGlobalTableRequest request = new BindGlobalTableRequest(
                // グローバルテーブル ID
                "gt-ee1b54db-f5d9-43f3-ad36-ec44********",
                // グローバルテーブル名
                "my-global-table"
    ); 

    // Placement リストの構築(少なくとも 1 つのレプリカ構成が必要)
    List<GlobalTableTypes.Placement> placements = new ArrayList<>();

    // 例:中国 (杭州) リージョンにレプリカを追加
    GlobalTableTypes.Placement hangzhouReplica = new GlobalTableTypes.Placement(
                // レプリカのリージョン ID
                "cn-hangzhou", 
                // レプリカのインスタンス名
                "instance-replica-hz",
                // プライマリセカンダリモードでは、レプリカテーブルは書き込み不可(デフォルト値は false)
                // マルチアクティブモードでは、レプリカテーブルを読み取り/書き込み可能(true)または読み取り専用(false)に設定できます
                false
    );

    // 例:中国 (上海) リージョンにレプリカを追加
    GlobalTableTypes.Placement shanghaiReplica = new GlobalTableTypes.Placement(
                // レプリカのリージョン ID
                "cn-shanghai",  
                // レプリカのインスタンス名
                "instance-replica-sh", 
                // プライマリセカンダリモードでは、レプリカテーブルは書き込み不可(デフォルト値は false)
                // マルチアクティブモードでは、レプリカテーブルを読み取り/書き込み可能(true)または読み取り専用(false)に設定できます
                true
    );

    placements.add(hangzhouReplica);
    placements.add(shanghaiReplica);
    request.setPlacements(placements);

    // リクエストの送信
    BindGlobalTableResponse response = client.bindGlobalTable(request);
    System.out.println("バインドが成功しました。リクエスト ID:" + response.getRequestId());
}