Utilizzo di CQL per creare e gestire tabelle multiregionali - Amazon Keyspaces (per Apache Cassandra)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di CQL per creare e gestire tabelle multiregionali

Puoi usare Cassandra Query Language (CQL) per creare e gestire spazi chiave e tabelle multiregionali in Amazon Keyspaces.

Questa sezione fornisce esempi di come creare e gestire tabelle multiregionali con CQL. Tutte le tabelle create in uno spazio chiave multiarea ereditano automaticamente le impostazioni multiregione dallo spazio chiave. Per ulteriori informazioni su CQL, consulta il riferimento al linguaggio CQL di Amazon Keyspaces.

Per ulteriori informazioni sulle configurazioni e sulle funzionalità supportate, consulta. Note sull'utilizzo della replica multiregionale di Amazon Keyspaces

Creazione di uno spazio chiave multiregionale (CQL)

Per creare uno spazio chiave multiregione, utilizzare NetworkTopologyStrategy per specificare in Regioni AWS che modo verrà replicato lo spazio chiave. È necessario includere la regione corrente e almeno una regione aggiuntiva. La seguente istruzione CQL ne è un esempio.

CREATE KEYSPACE mykeyspace WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'us-east-1':'3', 'ap-southeast-1':'3','eu-west-1':'3' };

Tutte le tabelle nel keyspace utilizzano la stessa strategia di replica del keyspace. Non è possibile modificare la strategia di replica a livello di tabella.

NetworkTopologyStrategy— Il fattore di replica per ogni regione è tre perché Amazon Keyspaces replica i dati su tre zone di disponibilità all'interno della Regione AWS stessa, per impostazione predefinita.

Nota

Quando crei uno spazio di chiavi multiregionale, Amazon Keyspaces crea un ruolo collegato al servizio con il nome nel tuo account. AWSServiceRoleForAmazonKeyspacesReplication Questo ruolo consente ad Amazon Keyspaces di replicare le scritture su tutte le repliche di una tabella multiregionale per tuo conto. Per ulteriori informazioni, vedi Utilizzo dei ruoli per la replica multiregionale di Amazon Keyspaces.

Puoi utilizzare un'istruzione CQL per interrogare la tables tabella system_multiregion_info nello spazio delle chiavi per elencare in modo programmatico le regioni e lo stato della tabella multiregionale specificata. Il codice seguente ne è un esempio.

SELECT * from system_multiregion_info.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

L'output dell'istruzione è simile al seguente:

keyspace_name | table_name | region | status ----------------+----------------+----------------+-------- mykeyspace | mytable | us-east-1 | ACTIVE mykeyspace | mytable | ap-southeast-1 | ACTIVE mykeyspace | mytable | eu-west-1 | ACTIVE

Creazione di una tabella multiregionale con impostazioni predefinite (CQL)

Per creare una tabella multiregionale con impostazioni predefinite, è possibile utilizzare l'esempio seguente.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode':{ 'throughput_mode':'PAY_PER_REQUEST' }, 'point_in_time_recovery':{ 'status':'enabled' }, 'encryption_specification':{ 'encryption_type':'AWS_OWNED_KMS_KEY' }, 'client_side_timestamps':{ 'status':'enabled' } };

Creazione di una tabella multiregionale con modalità di capacità assegnata e scalabilità automatica (CQL)

Per creare una tabella multiregione in modalità provisioning con ridimensionamento automatico, è necessario innanzitutto specificare la modalità di capacità definendo CUSTOM_PROPERTIES per la tabella. Dopo aver specificato la modalità di capacità assegnata, è possibile configurare le impostazioni di ridimensionamento automatico per la tabella utilizzando. AUTOSCALING_SETTINGS

Per informazioni dettagliate sulle impostazioni di ridimensionamento automatico, sulla politica di tracciamento degli obiettivi, sul valore target e sulle impostazioni opzionali, vedereCrea una nuova tabella con ridimensionamento automatico utilizzando CQL.

Quando crei una tabella multiregionale, puoi anche specificare diverse impostazioni di capacità di lettura e ridimensionamento automatico di lettura per ogni replica della tabella. Le impostazioni specificate sovrascrivono le impostazioni generali della tabella per quanto specificato. Regione AWS La capacità di scrittura, tuttavia, rimane sincronizzata tra tutte le repliche per garantire una capacità sufficiente per replicare le scritture in tutte le regioni.

Per definire la capacità di lettura per una replica di tabella in una regione specifica, puoi configurare i seguenti parametri come parte della tabella: replica_updates

  • La regione

  • Le unità di capacità di lettura fornite (opzionali)

  • Impostazioni di ridimensionamento automatico per la capacità di lettura (opzionale)

L'esempio seguente mostra un'CREATE TABLEistruzione per una tabella multiregionale in modalità provisioning. Le impostazioni generali di autoscaling della capacità di scrittura e lettura sono le stesse. Tuttavia, le impostazioni di lettura automatica specificano periodi di recupero aggiuntivi di 60 secondi prima di aumentare o ridurre la capacità di lettura della tabella. Inoltre, le impostazioni di ridimensionamento automatico della capacità di lettura per la regione Stati Uniti orientali (Virginia settentrionale) sono superiori a quelle di altre repliche. Inoltre, il valore target è impostato al 70% anziché al 50%.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 5, 'write_capacity_units': 5 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } }, 'replica_updates': { 'us-east-1': { 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 20, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 70 } } } } } };

Aggiornamento della capacità fornita e delle impostazioni di ridimensionamento automatico di una tabella multiregionale (CQL)

È possibile utilizzare ALTER TABLE per aggiornare la modalità di capacità e le impostazioni di ridimensionamento automatico di una tabella esistente. Se stai aggiornando una tabella che è attualmente in modalità di capacità su richiesta, capacity_mode è obbligatorio. Se la tabella è già in modalità di capacità assegnata, questo campo può essere omesso.

Per informazioni dettagliate sulle impostazioni di ridimensionamento automatico, sulla politica di tracciamento degli obiettivi, sul valore target e sulle impostazioni opzionali, vedereCrea una nuova tabella con ridimensionamento automatico utilizzando CQL.

Nella stessa istruzione, puoi anche aggiornare la capacità di lettura e le impostazioni di ridimensionamento automatico delle repliche di tabella in regioni specifiche aggiornando la proprietà della replica_updates tabella. La seguente dichiarazione ne è un esempio.

ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } }, 'replica_updates': { 'us-east-1': { 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 20, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 70 } } } } } };

Visualizzazione della capacità fornita e delle impostazioni di ridimensionamento automatico di una tabella multiregionale (CQL)

Per visualizzare la configurazione di ridimensionamento automatico di una tabella multiregione, utilizzare il comando seguente.

SELECT * FROM system_multiregion_info.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

L'output di questo comando è simile al seguente:

keyspace_name | table_name | region | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ----------------+------------+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | ap-southeast-1 | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}} mykeyspace | mytable | us-east-1 | {'minimum_units': 5, 'maximum_units': 20, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 70, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}} mykeyspace | mytable | eu-west-1 | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}

Disattivazione della scalabilità automatica per una tabella multiregione (CQL)

È possibile utilizzare ALTER TABLE per disattivare il ridimensionamento automatico per una tabella esistente. Tieni presente che non puoi disattivare il ridimensionamento automatico per una singola replica di tabella.

Nell'esempio seguente, la scalabilità automatica è disattivata per la capacità di lettura della tabella.

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_read_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
Nota

Per eliminare il ruolo collegato al servizio utilizzato da Application Auto Scaling, è necessario disabilitare il ridimensionamento automatico su tutte le tabelle dell'account in generale. Regioni AWS

Impostazione manuale della capacità fornita di una tabella multiregionale (CQL)

Se è necessario disattivare la scalabilità automatica per una tabella multiregionale, è possibile utilizzare per ALTER TABLE fornire manualmente la capacità di lettura della tabella per una tabella di replica.

ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 }, 'replica_updates': { 'us-east-1': { 'read_capacity_units': 2 } } };
Nota

Si consiglia di utilizzare la scalabilità automatica per le tabelle multiregionali che utilizzano la capacità assegnata. Per ulteriori informazioni, consulta Utilizzo di tabelle multiregionali in Amazon Keyspaces.