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 al cambiar el valor 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:

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 capacidad 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 Global Active 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 singleton.

/* 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);

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

Temas relacionados