Modificación de tablas activas globales mediante API

En una tabla activa global, el esquema de la tabla no se puede cambiar.

No puede agregar campos nuevos ni eliminar campos existentes de una tabla activa global. Al cambiar el límite de capacidad de lectura o el límite de capacidad de escritura en una tabla activa global, los cambios solo se aplican a la región en la que se inicia el cambio. Sin embargo, al cambiar la capacidad de almacenamiento o el valor de TTL de nivel de tabla por defecto, se aplican los cambios a todas las regiones de réplica de la tabla.

Modificación de una tabla activa global

Los usuarios pueden utilizar la solicitud de tabla existente (TableRequest()) para actualizar lo siguiente en una tabla activa global:

  • read-units: cambie el valor de las unidades de lectura de una réplica de tabla regional
  • write-units: cambie el valor de las unidades de escritura de una réplica de tabla regional
  • modo de capacidad: cambie el modo de capacidad (de bajo demanda a aprovisionado o viceversa) de una réplica de tabla regional.
  • tamaño de tabla: cambie la capacidad de almacenamiento de la tabla en todas las réplicas regionales.
Cambio de los límites de tabla (unidades de lectura, unidades de escritura y capacidad de almacenamiento) de una réplica de tabla regional. La capacidad de almacenamiento se cambia en todas las réplicas regionales.
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);
Cambio del modo de capacidad de una réplica de tabla regional de aprovisionada a capacidad bajo demanda:
// 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);
También puede agregar una réplica regional de una tabla activa global existente mediante 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));
Puede borrar una réplica regional de una tabla activa global existente mediante DropReplicaRequest(). Cuando se borran todas las réplicas regionales, la tabla Global Active se convierte en una tabla única.
/* 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);

Note:

Consulte Borrado de réplicas de tablas principal-secundario para comprender la dependencia al borrar una réplica de una tabla principal.