Modificando Tabelas Ativas Globais Usando APIs

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

Não é possível adicionar novos campos ou remover campos existentes de uma tabela Global Ativa. A alteração do limite de capacidade de leitura ou do limite de capacidade de gravação em uma tabela Global Ativa aplica as alterações somente à região em que a alteração é iniciada. No entanto, a alteração da capacidade de armazenamento ou da alteração do 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 Global Ativa

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

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 capacidade provisionada para 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 Global Active 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 Global Active existente usando DropReplicaRequest(). Quando todas as réplicas regionais são eliminadas, a tabela Ativo Global se torna 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.

Tópicos Relacionados