Modifier 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 ni 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 dans laquelle la modification est lancée. Toutefois, la modification de la capacité de stockage ou 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.

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 :

  • read-units : modifiez la valeur des unités de lecture d'une réplique de table régionale.
  • unités d'écriture : modifiez la valeur des unités d'écriture d'une réplique de table régionale.
  • capacity-mode : modifiez le mode de capacité (à la demande, provisionné ou vice versa) d'une réplique de table régionale.
  • Taille de la table : modifiez la capacité de stockage de la table dans toutes les répliques régionales.
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 d'une capacité provisionnée à une 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 d'une table active globale existante à l'aide de DropReplicaRequest(). Lorsque toutes les répliques régionales sont supprimées, la table active globale 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);

Remarques :

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.