このトピックでは、Java ソフトウェア開発キット (SDK) を使用して、グローバルテーブルから 1 つ以上のレプリカを切り離す方法について説明します。
注意事項
デタッチ操作は、レプリカテーブルとグローバルテーブルとの関連付けのみを解除します。レプリカテーブルとそのデータは保持されます。DeleteTable 操作を呼び出して、レプリカテーブルを個別に削除できます。
この操作はデタッチリクエストを開始するだけです。デタッチプロシージャが完了するまでには時間がかかります。プロシージャが完了したことを確認するには、グローバルテーブル情報のクエリ 操作を呼び出して、グローバルテーブルのステータスを確認できます。グローバルテーブルのステータスが `active` に変更されると、デタッチは成功したことになります。
前提条件
メソッドの説明
public UnbindGlobalTableResponse unbindGlobalTable(UnbindGlobalTableRequest request) throws TableStoreException, ClientException例
private static void unbindGlobalTableExample(SyncClient client) {
// リクエストを構築します。
UnbindGlobalTableRequest request = new UnbindGlobalTableRequest(
// グローバルテーブル ID。
"gt-ee1b54db-f5d9-43f3-ad36-ec44********",
// グローバルテーブル名。
"my-global-table"
);
// 切り離すレプリカのリスト (Removals) を構築します。
List<GlobalTableTypes.Removal> removals = new ArrayList<>();
// 例:中国 (杭州) リージョンのレプリカを切り離します。
GlobalTableTypes.Removal hangzhouRemoval = new GlobalTableTypes.Removal(
// レプリカが配置されているリージョンの ID。
"cn-hangzhou",
// レプリカが属するインスタンスの名前。
"instance-replica-hz"
);
// 例:中国 (上海) リージョンのレプリカを切り離します。
GlobalTableTypes.Removal shanghaiRemoval = new GlobalTableTypes.Removal(
// レプリカが配置されているリージョンの ID。
"cn-shanghai",
// レプリカが属するインスタンスの名前。
"instance-replica-sh"
);
removals.add(hangzhouRemoval);
removals.add(shanghaiRemoval);
request.setRemovals(removals);
// リクエストを開始します。
UnbindGlobalTableResponse response = client.unbindGlobalTable(request);
System.out.println("Unbind start. Request ID: " + response.getRequestId());
}