API를 사용하여 Global Active Table 수정

Global Active 테이블에서는 테이블의 스키마를 변경할 수 없습니다.

글로벌 활성 테이블에서 새 필드를 추가하거나 기존 필드를 제거할 수 없습니다. 전역 활성 테이블에서 읽기 용량 제한 또는 쓰기 용량 제한을 변경하면 변경사항이 시작된 영역에만 변경사항이 적용됩니다. 그러나 스토리지 용량을 변경하거나 기본 테이블 레벨 TTL 값을 변경하면 테이블의 모든 복제 영역에 변경사항이 적용됩니다.

Global Active 테이블 수정

사용자는 기존 테이블 요청(TableRequest())을 사용하여 전역 활성 테이블에서 다음을 업데이트할 수 있습니다.

  • read-units: 지역 테이블 복제본의 read-units 값을 변경합니다.
  • 쓰기 단위: 지역별 테이블 복제본의 쓰기 단위 값을 변경합니다.
  • capacity-mode: 지역별 테이블 복제본의 용량 모드(온디맨드에서 프로비저닝됨으로 또는 그 반대로)를 변경합니다.
  • 테이블 크기: 모든 지역 복제본에서 테이블의 스토리지 용량을 변경합니다.
지역별 테이블 복제본의 테이블 제한(읽기 단위, 쓰기 단위 및 스토리지 용량)을 변경합니다. 모든 지역 복제본에서 스토리지 용량이 변경됩니다.
TableLimits limits = new TableLimits(40, 10, 5);
TableRequest treq = new TableRequest().setTableName( "<table_name>" ).setTableLimits(limits);
TableResult tres = handle.tableRequest(treq);
/* wait for completion of the operation */
tres.waitForCompletion(handle, 60000, 1000);
프로비저닝된 용량에서 온디맨드 용량으로 지역 테이블 복제본의 용량 모드를 변경합니다.
// Call the constructor to only set storage limit (for on-demand)
TableLimits limits = new TableLimits(10);
TableRequest treq = new TableRequest().setTableName("<table_name>").setTableLimits(limits);
TableResult tres = serviceHandle.tableRequest(treq);
tres.waitForCompletion(serviceHandle, 50000,3000);
AddReplicaRequest() 를 사용하여 기존 전역 활성 테이블의 지역 복제본을 추가할 수도 있습니다.
/* add replica ca-toronto-1 */
System.output.println("Adding replica: " + region);
AddReplicaRequest addRepReq = new AddReplicaRequest()
                              .setTableName(tableName)
                              .setReplicaName(region);
res = handle.addReplica(addRepReq);
res.waitForCompletion(handle, 90000, 1000);
System.output.println("Added replica: " + region);
System.output.println("Table:\n" + JsonUtils.prettyPrint(res));
DropReplicaRequest()를 사용하여 기존 전역 활성 테이블에서 지역 복제본을 삭제할 수 있습니다. 모든 지역 복제본이 삭제되면 전역 활성 테이블이 단일 테이블이 됩니다.
/* drop replica ca-montreal-1 */
System.output.println("\nDropping replica: " + region);
DropReplicaRequest dropRepReq = new DropReplicaRequest()
                               .setTableName(tableName)
                               .setReplicaName(region);
res = handle.dropReplica(dropRepReq);
res.waitForCompletion(handle, 60000, 500);
System.output.println("Dropped replica: " + region);

주:

상위 테이블의 복제본을 삭제할 때의 종속성을 이해하려면 상위-하위 테이블의 복제본 삭제를 참조하십시오.