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

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

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

Modifier 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é sur 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 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);

Note : Voir 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