Modification de tables actives globales à l'aide d'API

Dans une table Global Active, le schéma de la table ne peut pas être modifié.

Vous ne pouvez pas ajouter de nouveaux champs ni supprimer des champs existants d'une table Global Active. La modification de la limite de capacité de lecture ou de capacité d'écriture dans une table Global Active applique les modifications uniquement à la région où la modification est initiée. Toutefois, la modification de la capacité de stockage ou de la valeur de durée de vie au niveau de la table par défaut applique les modifications à toutes les régions de réplique de la table.

Modification d'une table active globale

Les utilisateurs peuvent utiliser la demande de table existante (TableRequest()) pour mettre à jour les éléments suivants dans une table active globale :

Modification des limites de table (unités de lecture, unités d'écriture et capacité de stockage) d'une réplique de table régionale. La capacité de stockage est modifiée dans toutes les répliques régionales.

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

Modification du mode de capacité d'une réplique de table régionale de la capacité provisionnée à la capacité à la demande :

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

Vous pouvez également ajouter une réplique régionale d'une table active globale existante à l'aide de 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));

Vous pouvez supprimer une réplique régionale à partir d'une table active globale existante à l'aide de DropReplicaRequest(). Lorsque toutes les répliques régionales sont supprimées, la table Global Active devient une table 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);

Remarque : reportez-vous à Suppression de répliques de tables parent-enfant pour comprendre la dépendance lors de la suppression d'une réplique d'une table parent.

Rubriques connexes