Modificando Tabelas Ativas Globais Usando APIs

Em uma tabela Ativa Global, o esquema da tabela não pode ser alterado.

Não é possível adicionar novos campos ou remover campos existentes de uma tabela Ativa Global. A alteração do limite de capacidade de leitura ou do limite de capacidade de gravação em uma tabela Ativa Global aplica as alterações somente à região em que a alteração é iniciada. No entanto, alterar a capacidade de armazenamento ou alterar o valor TTL padrão no nível da tabela aplica as alterações a todas as regiões de réplica da tabela.

Modificando uma tabela Ativa Global

Os usuários podem usar a solicitação de tabela existente (TableRequest()) para atualizar o seguinte em uma tabela Ativa Global:

  • read-units: Altere o valor de read-units de uma réplica de tabela regional
  • unidades de gravação: Altere o valor de unidades de gravação de uma réplica de tabela regional
  • modo de capacidade: Altere o modo de capacidade (de sob demanda para provisionado ou vice-versa) de uma réplica de tabela regional.
  • tamanho da tabela: altere a capacidade de armazenamento da tabela em todas as réplicas regionais.
Alterando os limites da tabela (unidades de leitura, unidades de gravação e capacidade de armazenamento) de uma réplica de tabela regional. A capacidade de armazenamento é alterada em todas as réplicas regionais.
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);
Alterando o modo de capacidade de uma réplica de tabela regional de provisionada para a capacidade sob 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);
Você também pode adicionar uma réplica regional de uma tabela Ativa Global existente usando 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));
Você pode eliminar uma réplica regional de uma tabela Ativa Global existente usando DropReplicaRequest(). Quando todas as réplicas regionais são eliminadas, a tabela Ativo Global torna-se uma tabela ú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);

Observação:

Consulte Eliminando réplicas de tabelas pai-filho para entender a dependência ao eliminar uma réplica de uma tabela pai.