Gestione della scalabilità automatica di Amazon Keyspaces con Cassandra Query Language (CQL) - 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à.

Gestione della scalabilità automatica di Amazon Keyspaces con Cassandra Query Language (CQL)

Per creare e gestire le impostazioni di ridimensionamento automatico per le tabelle Amazon Keyspaces con Cassandra Query Language (CQL), puoi usare. cqlsh Questo argomento offre una panoramica delle attività di auto scaling che è possibile gestire a livello di codice utilizzando CQL.

Per ulteriori informazioni sulle istruzioni CQL descritte in questo argomento, vedere. Istruzioni DDL (linguaggio di definizione dei dati) in Amazon Keyspaces

Prima di iniziare

È necessario completare le seguenti attività prima di iniziare.

Configurazione delle autorizzazioni

Se non l'hai ancora fatto, devi configurare le autorizzazioni appropriate per consentire all'utente di creare e gestire le impostazioni di ridimensionamento automatico. In AWS Identity and Access Management (IAM), la policy AWS gestita AmazonKeyspacesFullAccess è necessaria per gestire le policy di scalabilità di Amazon Keyspaces. Per informazioni dettagliate sulle fasi, consulta Prima di iniziare: concessione delle autorizzazioni utente per il ridimensionamento automatico di Amazon Keyspaces.

Configurare cqlsh

Se non l'hai già fatto, devi installarlo e configurarlo. cqlsh A tale scopo, segui le istruzioni riportate all'indirizzoUtilizzo di cqlsh-expansion per connettersi ad Amazon Keyspaces. È quindi possibile utilizzare il AWS CloudShell per eseguire i comandi nelle sezioni seguenti.

Crea una nuova tabella con ridimensionamento automatico utilizzando CQL

Quando crei una nuova tabella Amazon Keyspaces, puoi abilitare automaticamente la scalabilità automatica per la capacità di scrittura o lettura della tabella nell'istruzione. CREATE TABLE Ciò consente ad Amazon Keyspaces di contattare Application Auto Scaling per tuo conto per registrare la tabella come destinazione scalabile e regolare la capacità di scrittura o lettura fornita.

Per ulteriori informazioni su come creare una tabella multiregionale e configurare diverse impostazioni di ridimensionamento automatico per le repliche di tabelle, vedere. Creazione di una tabella multiregionale con impostazioni predefinite (CQL)

Nota

La scalabilità automatica di Amazon Keyspaces richiede la presenza di un ruolo collegato al servizio (AWSServiceRoleForApplicationAutoScaling_CassandraTable) per eseguire azioni di ridimensionamento automatico per tuo conto. Questo ruolo viene creato automaticamente per te. Per ulteriori informazioni, consulta Utilizzo di ruoli collegati ai servizi per Amazon Keyspaces.

Per configurare le impostazioni di auto scaling per una tabella a livello di codice, usi l'AUTOSCALING_SETTINGSistruzione che contiene i parametri per la scalabilità automatica di Amazon Keyspaces. I parametri definiscono le condizioni che spingono Amazon Keyspaces a modificare il throughput assegnato alla tabella e quali azioni opzionali aggiuntive intraprendere. In questo esempio, definisci le impostazioni di ridimensionamento automatico per mytable.

La policy contiene i seguenti elementi:

  • AUTOSCALING_SETTINGS— Indica se Amazon Keyspaces è autorizzato a modificare la capacità di throughput per tuo conto. Sono obbligatori i seguenti valori:

    • provisioned_write_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • provisioned_read_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • scaling_policy— Amazon Keyspaces supporta la politica di tracciamento degli obiettivi. Per definire la politica di tracciamento degli obiettivi, configuri i seguenti parametri.

      • target_value— La scalabilità automatica di Amazon Keyspaces assicura che il rapporto tra capacità consumata e capacità fornita rimanga pari o vicino a questo valore. target_value viene definito in percentuale.

      • disableScaleIn: (Facoltativo) A boolean che specifica se scale-in è disabilitato o abilitato per la tabella. Questo parametro è disabilitato per impostazione predefinita. Per attivarloscale-in, imposta il boolean valore suFALSE. Ciò significa che la capacità viene automaticamente ridotta per una tabella per conto dell'utente.

      • scale_out_cooldown— Un'attività di scalabilità orizzontale aumenta la velocità effettiva assegnata alla tabella. Per aggiungere un periodo di recupero per le attività con scalabilità orizzontale, specifica un valore, in secondi, per. scale_out_cooldown Se non specifichi un valore, il valore predefinito è 0. Per ulteriori informazioni sul tracciamento del target e sui periodi di cooldown, consulta Target Tracking Scaling Policies nella Application Auto Scaling User Guide.

      • scale_in_cooldown— Un'attività scalabile riduce il throughput assegnato alla tabella. Per aggiungere un periodo di recupero per le attività scalabili, specifica un valore, in secondi, per. scale_in_cooldown Se non specificate un valore, il valore predefinito è 0. Per ulteriori informazioni sul tracciamento del target e sui periodi di cooldown, consulta Target Tracking Scaling Policies nella Application Auto Scaling User Guide.

Nota

Per capire meglio come funziona target_value, supponiamo di avere una tabella con un'impostazione di velocità effettiva assegnata pari a 200 unità di capacità in scrittura. Si decide di creare una policy di dimensionamento per questa tabella, con un target_value del 70%.

Si supponga ora di iniziare a guidare il traffico di scrittura verso la tabella in modo che la velocità effettiva di scrittura sia di 150 unità di capacità. Il consumed-to-provisioned rapporto è ora (150/ 200), ovvero il 75 percento. Questo rapporto supera l'obiettivo, quindi la scalabilità automatica aumenta la capacità di scrittura assegnata a 215 in modo che il rapporto sia (150/ 215), ovvero il 69,77 percento, il più vicino target_value possibile, ma senza superarlo.

Per mytable, hai impostato la capacità di lettura e scrittura al TargetValue 50%. La scalabilità automatica di Amazon Keyspaces regola il throughput assegnato dalla tabella entro un intervallo di 5-10 unità di capacità in modo che il rapporto rimanga pari o vicino al consumed-to-provisioned 50%. Per quanto riguarda la capacità di lettura, si impostano i valori per e fino a 60 secondi. ScaleOutCooldown ScaleInCooldown

Puoi utilizzare la seguente istruzione per creare una nuova tabella Amazon Keyspaces con la scalabilità automatica abilitata.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) 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 } } } };

Abilita il ridimensionamento automatico su una tabella esistente utilizzando CQL

Per una tabella Amazon Keyspaces esistente, puoi attivare la scalabilità automatica per la capacità di scrittura o lettura della tabella utilizzando l'istruzione. ALTER TABLE Se stai aggiornando una tabella che è attualmente in modalità di capacity_mode capacità su richiesta, è necessario. Se la tabella è già in modalità di capacità assegnata, questo campo può essere omesso.

Nota

La scalabilità automatica di Amazon Keyspaces richiede la presenza di un ruolo collegato al servizio (AWSServiceRoleForApplicationAutoScaling_CassandraTable) che esegue azioni di ridimensionamento automatico per tuo conto. Questo ruolo viene creato automaticamente per te. Per ulteriori informazioni, consulta Utilizzo di ruoli collegati ai servizi per Amazon Keyspaces.

Nell'esempio seguente, l'istruzione aggiorna la tabella mytable, che è in modalità di capacità su richiesta. L'istruzione modifica la modalità di capacità della tabella in modalità provisioning con la scalabilità automatica abilitata.

La capacità di scrittura è configurata nell'intervallo di 5-10 unità di capacità con un valore target del 50%. La capacità di lettura è inoltre configurata nell'intervallo di 5-10 unità di capacità con un valore obiettivo del 50%. Per la capacità di lettura, si impostano i valori per scale_out_cooldown e scale_in_cooldown fino a 60 secondi.

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

Visualizza la configurazione di scalabilità automatica di Amazon Keyspaces della tua tabella utilizzando CQL

Per visualizzare i dettagli della configurazione di ridimensionamento automatico di una tabella, utilizzare il comando seguente.

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

L'output di questo comando è simile al seguente.

keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'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}}}

Disattiva la scalabilità automatica di Amazon Keyspaces per una tabella utilizzando CQL

Puoi disattivare la scalabilità automatica di Amazon Keyspaces per la tua tabella in qualsiasi momento. Se non hai più bisogno di ridimensionare la capacità di lettura o scrittura della tabella, dovresti prendere in considerazione la possibilità di disattivare la scalabilità automatica in modo che Amazon Keyspaces non continui a modificare le impostazioni della capacità di lettura o scrittura della tabella. Puoi aggiornare la tabella con una dichiarazione. ALTER TABLE

L'istruzione seguente disattiva la scalabilità automatica per la capacità di scrittura della tabella mytable. Elimina anche gli CloudWatch allarmi che sono stati creati per tuo conto.

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_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 tutto. Regioni AWS