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à.
Crea un piano di migrazione per la migrazione da Apache Cassandra ad Amazon Keyspaces
Per una corretta migrazione da Apache Cassandra ad Amazon Keyspaces, consigliamo di esaminare i concetti e le best practice di migrazione applicabili, nonché di confrontare le opzioni disponibili.
Questo argomento illustra come funziona il processo di migrazione introducendo diversi concetti chiave e gli strumenti e le tecniche a tua disposizione. È possibile valutare le diverse strategie di migrazione per selezionare quella che meglio soddisfa le proprie esigenze.
Argomenti
Compatibilità funzionale
Valuta attentamente le differenze funzionali tra Apache Cassandra e Amazon Keyspaces prima della migrazione. Amazon Keyspaces supporta tutte le operazioni più comuni sul piano dati di Cassandra, come la creazione di keyspace e tabelle, la lettura e la scrittura di dati.
Tuttavia, ci sono alcune API Cassandra che Amazon Keyspaces non supporta. Per ulteriori informazioni sulle API supportate, consulta. API, operazioni, funzioni e tipi di dati di Cassandra supportati Per una panoramica di tutte le differenze funzionali tra Amazon Keyspaces e Apache Cassandra, consulta. Differenze funzionali: Amazon Keyspaces e Apache Cassandra
Per confrontare le API e lo schema di Cassandra che stai utilizzando con le funzionalità supportate in Amazon Keyspaces, puoi eseguire uno script di compatibilità disponibile nel toolkit Amazon Keyspaces su. GitHub
Come usare lo script di compatibilità
Scaricate lo script Python di compatibilità da GitHub
e spostatelo in una posizione che abbia accesso al cluster Apache Cassandra esistente. Lo script di compatibilità utilizza parametri simili a.
CQLSH--portInserisci l'indirizzo IP e la porta che usi per connetterti ed eseguire query a uno dei nodi Cassandra del tuo cluster.--hostSe il tuo cluster Cassandra utilizza l'autenticazione, devi anche fornire e.
-username-passwordPer eseguire lo script di compatibilità, è possibile utilizzare il comando seguente.python toolkit-compat-tool.py --hosthostname or IP-u "username" -p "password" --portnative transport port
Stima i prezzi di Amazon Keyspaces
Questa sezione fornisce una panoramica delle informazioni da raccogliere dalle tabelle di Apache Cassandra per calcolare il costo stimato per Amazon Keyspaces. Ognuna delle tue tabelle richiede tipi di dati diversi, deve supportare diverse query CQL e mantiene un traffico distinto. read/write
Pensare ai tuoi requisiti in base a tabelle è in linea con le modalità di isolamento delle risorse a livello di tabella e capacità di throughput di Amazon Keyspaces. read/write Con Amazon Keyspaces, puoi definire la read/write capacità e le politiche di scalabilità automatica per le tabelle in modo indipendente.
La comprensione dei requisiti delle tabelle ti aiuta a stabilire le priorità delle tabelle per la migrazione in base alla funzionalità, ai costi e allo sforzo di migrazione.
Raccogli le seguenti metriche della tabella Cassandra prima di una migrazione. Queste informazioni aiutano a stimare il costo del carico di lavoro su Amazon Keyspaces.
Nome della tabella: il nome del keyspace completo e del nome della tabella.
Descrizione: una descrizione della tabella, ad esempio come viene utilizzata o che tipo di dati vi sono memorizzati.
Media di letture al secondo: il numero medio di letture a livello di coordinate sulla tabella in un ampio intervallo di tempo.
Media di scritture al secondo: il numero medio di scritture a livello di coordinate sulla tabella in un ampio intervallo di tempo.
Dimensione media delle righe in byte: la dimensione media delle righe in byte.
Dimensioni di archiviazione in GB: la dimensione di archiviazione non elaborata per una tabella.
Ripartizione della coerenza di lettura: percentuale di letture che utilizzano la coerenza finale (
LOCAL_ONEoONE) rispetto a una consistenza forte ().LOCAL_QUORUM
Questa tabella mostra un esempio delle informazioni sulle tabelle che è necessario raccogliere quando si pianifica una migrazione.
| Nome tabella | Description | Media di letture al secondo | Media di scritture al secondo | Dimensione media delle righe in byte | Dimensioni di archiviazione in GB | Leggi la ripartizione della coerenza |
|---|---|---|---|---|---|---|
|
mykeyspace.mytable |
Utilizzato per memorizzare la cronologia del carrello |
10.000 |
5.000 |
2.200 |
2.000 |
100% |
mykeyspace.mytable2 |
Utilizzato per memorizzare le informazioni più recenti del profilo |
20.000 |
1.000 |
850 |
1.000 |
25% |
Come raccogliere le metriche delle tabelle
Questa sezione fornisce istruzioni dettagliate su come raccogliere le metriche di tabella necessarie dal cluster Cassandra esistente. Queste metriche includono le dimensioni delle righe, le dimensioni della tabella e read/write le richieste al secondo (RPS). Consentono di valutare i requisiti di capacità di throughput per una tabella Amazon Keyspaces e stimare i prezzi.
Come raccogliere le metriche della tabella nella tabella sorgente di Cassandra
Determina la dimensione della riga
La dimensione delle righe è importante per determinare la capacità di lettura e l'utilizzo della capacità di scrittura in Amazon Keyspaces. Il diagramma seguente mostra la distribuzione tipica dei dati su un intervallo di token Cassandra.
Puoi utilizzare uno script di campionamento delle dimensioni delle righe disponibile su GitHub
per raccogliere le metriche delle dimensioni delle righe per ogni tabella del cluster Cassandra. Lo script esporta i dati delle tabelle da Apache Cassandra utilizzando
cqlsheawkcalcolando la deviazione minima, massima, media e standard della dimensione delle righe su un set di esempio configurabile di dati di tabella. Il campionatore delle dimensioni delle righe passa gli argomenti acqlsh, in modo che gli stessi parametri possano essere utilizzati per connettersi e leggere dal cluster Cassandra.La seguente dichiarazione ne è un esempio.
./row-size-sampler.sh10.22.33.449142 \\ -u "username" -p "password" --sslPer ulteriori informazioni su come viene calcolata la dimensione delle righe in Amazon Keyspaces, consultaStima della dimensione delle righe in Amazon Keyspaces.
Determina le dimensioni della tabella
Con Amazon Keyspaces, non è necessario effettuare il provisioning dello storage in anticipo. Amazon Keyspaces monitora continuamente le dimensioni fatturabili delle tabelle per determinare i costi di archiviazione. Lo spazio di archiviazione viene fatturato per. GB-month Le dimensioni della tabella Amazon Keyspaces si basano sulla dimensione grezza (non compressa) di una singola replica.
Per monitorare le dimensioni della tabella in Amazon Keyspaces, puoi utilizzare la metrica
BillableTableSizeInBytes, visualizzata per ogni tabella nel. Console di gestione AWSPer stimare la dimensione fatturabile della tua tabella Amazon Keyspaces, puoi utilizzare uno di questi due metodi:
Usa la dimensione media delle righe e moltiplicala per il numero o le righe.
Puoi stimare la dimensione della tabella Amazon Keyspaces moltiplicando la dimensione media delle righe per il numero di righe della tabella sorgente di Cassandra. Usa lo script di esempio sulla dimensione delle righe della sezione precedente per acquisire la dimensione media delle righe. Per acquisire il conteggio delle righe, puoi utilizzare strumenti come
dsbulk countdeterminare il numero totale di righe nella tabella di origine.Usa il
nodetoolper raccogliere i metadati della tabella.Nodetoolè uno strumento amministrativo fornito nella distribuzione Apache Cassandra che fornisce informazioni sullo stato del processo Cassandra e restituisce i metadati delle tabelle. Puoi utilizzarlonodetoolper campionare i metadati sulle dimensioni della tabella e quindi estrapolare le dimensioni della tabella in Amazon Keyspaces.Il comando da usare è.
nodetool tablestatsTablestats restituisce le dimensioni e il rapporto di compressione della tabella. Le dimensioni della tabella vengono memorizzate cometablelivespaceper la tabella ed è possibile dividerle per.compression ratioQuindi moltiplica questo valore di dimensione per il numero di nodi. Infine dividi per il fattore di replica (in genere tre).Questa è la formula completa per il calcolo che puoi usare per valutare le dimensioni della tabella.
((tablelivespace / compression ratio) * (total number of nodes))/ (replication factor)Supponiamo che il cluster Cassandra abbia 12 nodi. L'esecuzione del
nodetool tablestatscomando restituisce un valoretablelivespacedi 200 GB e un valorecompression ratiodi 0,5. Il keyspace ha un fattore di replica pari a tre.Ecco come appare il calcolo per questo esempio.
(200 GB / 0.5) * (12 nodes)/ (replication factor of 3) = 4,800 GB / 3 = 1,600 GB is the table size estimate for Amazon Keyspaces
Acquisisci il numero di letture e scritture
Per determinare la capacità e i requisiti di scalabilità per le tabelle Amazon Keyspaces, acquisisci la frequenza di richieste di lettura e scrittura delle tabelle Cassandra prima della migrazione.
Amazon Keyspaces è serverless e paghi solo per quello che usi. In generale, il prezzo del read/write throughput in Amazon Keyspaces si basa sul numero e sulla dimensione delle richieste.
Esistono due modalità di capacità in Amazon Keyspaces:
On-demand— Si tratta di un'opzione di fatturazione flessibile in grado di soddisfare migliaia di richieste al secondo senza la necessità di pianificare la capacità. Offre prezzi pay-per-request per le richieste di lettura e scrittura, in modo da pagare solo per ciò che si utilizza.
Fornito: se si sceglie la modalità di capacità di throughput con provisioning, si specifica il numero di letture e scritture al secondo necessarie per l'applicazione. Questo ti aiuta a gestire l'utilizzo di Amazon Keyspaces in modo che rimanga pari o inferiore a una frequenza di richiesta definita per mantenere la prevedibilità.
La modalità provisioned offre la scalabilità automatica per regolare automaticamente la frequenza assegnata per aumentare o diminuire per migliorare l'efficienza operativa. Per ulteriori informazioni sulla gestione delle risorse serverless, vedere. Gestione delle risorse serverless in Amazon Keyspaces (per Apache Cassandra)
Poiché fornisci capacità di throughput in lettura e scrittura separatamente in Amazon Keyspaces, devi misurare la frequenza di richieste di lettura e scrittura nelle tabelle esistenti in modo indipendente.
Per raccogliere le metriche di utilizzo più accurate dal cluster Cassandra esistente, acquisisci la media delle richieste al secondo (RPS) per le operazioni di lettura e scrittura a livello di coordinatore per un lungo periodo di tempo per una tabella aggregata su tutti i nodi in un unico data center.
L'acquisizione dell'RPS medio per un periodo di almeno diverse settimane consente di rilevare picchi e valli nei modelli di traffico, come mostrato nel diagramma seguente.
Sono disponibili due opzioni per determinare la frequenza di richieste di lettura e scrittura della tabella Cassandra.
Usa il monitoraggio Cassandra esistente
Puoi utilizzare le metriche mostrate nella tabella seguente per osservare le richieste di lettura e scrittura. Tieni presente che i nomi delle metriche possono cambiare in base allo strumento di monitoraggio che stai utilizzando.
Dimensione Metrica Cassandra JMX Scritture
org.apache.cassandra.metrics:type=ClientRequest, scope=Write,name=Latency#CountLetture
org.apache.cassandra.metrics:type=ClientRequest, scope=Read,name=Latency#CountUtilizzo della
nodetoolUsa
nodetool tablestatsenodetool infoper acquisire le operazioni medie di lettura e scrittura dalla tabella.tablestatsrestituisce il numero totale di letture e scritture dal momento in cui il nodo è stato avviato.nodetool infofornisce il tempo di attività di un nodo in secondi.Per ricevere la media al secondo di letture e scritture, dividi il numero di letture e scritture per il tempo di attività del nodo in secondi. Quindi, per le letture si divide per il livello di coerenza e per le scritture si divide per il fattore di replica. Questi calcoli sono espressi nelle seguenti formule.
Formula per la media delle letture al secondo:
((number of reads * number of nodes in cluster) / read consistency quorum (2)) / uptimeFormula per la media delle scritture al secondo:
((number of writes * number of nodes in cluster) / replication factor of 3) / uptimeSupponiamo di avere un cluster a 12 nodi attivo da 4 settimane.
nodetool inforestituisce 2.419.200 secondi di uptime enodetool tablestatsrestituisce 1 miliardo di scritture e 2 miliardi di letture. Questo esempio comporterebbe il seguente calcolo.((2 billion reads * 12 in cluster) / read consistency quorum (2)) / 2,419,200 seconds = 12 billion reads / 2,419,200 seconds = 4,960 read request per second ((1 billion writes * 12 in cluster) / replication factor of 3) / 2,419,200 seconds = 4 billion writes / 2,419,200 seconds = 1,653 write request per second
Determinare l'utilizzo della capacità della tabella
Per stimare l'utilizzo medio della capacità, iniziate con i tassi medi di richiesta e la dimensione media delle righe della tabella sorgente di Cassandra.
Amazon Keyspaces utilizza unità di capacità di lettura (RCU) e unità di capacità di scrittura (WCU) per misurare la capacità di throughput assegnata per le letture e le scritture delle tabelle. Per questa stima utilizziamo queste unità per calcolare le esigenze di capacità di lettura e scrittura della nuova tabella Amazon Keyspaces dopo la migrazione.
Più avanti in questo argomento discuteremo di come la scelta tra la modalità di capacità predisposta e quella su richiesta influisca sulla fatturazione. Tuttavia, per la stima dell'utilizzo della capacità in questo esempio, assumiamo che la tabella sia in modalità provvisoria.
Letture: una RCU rappresenta una richiesta di
LOCAL_QUORUMlettura o due richieste diLOCAL_ONElettura per una riga di dimensioni fino a 4 KB. Se è necessario leggere una riga di dimensioni superiori a 4 KB, l'operazione di lettura utilizza RCU aggiuntive. Il numero totale di RCU richieste dipende dalla dimensione della riga e dal fatto che si desideri utilizzareLOCAL_QUORUMo meno la coerenza diLOCAL_ONElettura.Ad esempio, la lettura di una riga da 8 KB richiede 2 RCU che utilizzano la coerenza di
LOCAL_QUORUMlettura e 1 RCU se si sceglie la coerenza di lettura.LOCAL_ONEScritture: una WCU rappresenta una scrittura per una riga di dimensioni fino a 1 KB. Tutte le scritture utilizzano
LOCAL_QUORUMla coerenza e non sono previsti costi aggiuntivi per l'utilizzo di transazioni leggere (LWT).Il numero totale di WCU richieste dipende dalla dimensione delle righe. Se è necessario scrivere una riga di dimensioni superiori a 1 KB, l'operazione di scrittura utilizza WCU aggiuntive. Ad esempio, se la dimensione della riga è di 2 KB, sono necessarie 2 WCU per eseguire una richiesta di scrittura.
La formula seguente può essere utilizzata per stimare gli RCU e i WCU richiesti.
La capacità di lettura nelle RCU può essere determinata moltiplicando le letture al secondo per il numero di righe lette per lettura moltiplicato per la dimensione media delle righe divisa per 4 KB e arrotondata al numero intero più vicino.
La capacità di scrittura nelle WCU può essere determinata moltiplicando il numero di richieste per la dimensione media delle righe divisa per 1 KB e arrotondata al numero intero più vicino.
Ciò è espresso nelle seguenti formule.
Read requests per second * ROUNDUP((Average Row Size)/4096 per unit) = RCUs per second Write requests per second * ROUNDUP(Average Row Size/1024 per unit) = WCUs per secondAd esempio, se stai eseguendo 4.960 richieste di lettura con una dimensione di riga di 2,5 KB sulla tua tabella Cassandra, hai bisogno di 4.960 RCU in Amazon Keyspaces. Se attualmente esegui 1.653 richieste di scrittura al secondo con una dimensione di riga di 2,5 KB sulla tua tabella Cassandra, hai bisogno di 4.959 WCU al secondo in Amazon Keyspaces.
Questo esempio è espresso nelle seguenti formule.
4,960 read requests per second * ROUNDUP( 2.5KB /4KB bytes per unit) = 4,960 read requests per second * 1 RCU = 4,960 RCUs 1,653 write requests per second * ROUNDUP(2.5KB/1KB per unit) = 1,653 requests per second * 3 WCUs = 4,959 WCUsL'utilizzo
eventual consistencyconsente di risparmiare fino alla metà della capacità di throughput per ogni richiesta di lettura. Ogni lettura alla fine coerente può consumare fino a 8 KB. È possibile calcolare eventuali letture coerenti moltiplicando il calcolo precedente per 0,5, come mostrato nella formula seguente.4,960 read requests per second * ROUNDUP( 2.5KB /4KB per unit) * .5 = 2,480 read request per second * 1 RCU = 2,480 RCUs-
Calcola la stima mensile dei prezzi per Amazon Keyspaces
Per stimare la fatturazione mensile della tabella in base al throughput di read/write capacità, puoi calcolare i prezzi per la modalità on-demand e per la modalità provisioned utilizzando diverse formule e confrontare le opzioni per la tua tabella.
Modalità con provisioning: il consumo di capacità di lettura e scrittura viene fatturato in base a una tariffa oraria basata sulle unità di capacità al secondo. Innanzitutto, dividi tale percentuale per 0,7 per rappresentare l'utilizzo previsto di scalabilità automatica predefinito del 70%. Quindi moltiplica per 30 giorni di calendario, 24 ore al giorno e i prezzi della tariffa regionale.
Questo calcolo è riassunto nelle seguenti formule.
(read capacity per second / .7) * 24 hours * 30 days * regional rate (write capacity per second / .7) * 24 hours * 30 days * regional rateOn-demand modalità: la capacità di lettura e scrittura viene fatturata in base alla tariffa per richiesta. Innanzitutto, moltiplica la frequenza delle richieste per 30 giorni di calendario e 24 ore al giorno. Quindi dividi per un milione di unità di richiesta. Infine, moltiplica per il tasso regionale.
Questo calcolo è riassunto nelle seguenti formule.
((read capacity per second * 30 * 24 * 60 * 60) / 1 Million read request units) * regional rate ((write capacity per second * 30 * 24 * 60 * 60) / 1 Million write request units) * regional rate
Scegli una strategia di migrazione
Puoi scegliere tra le seguenti strategie di migrazione durante la migrazione da Apache Cassandra ad Amazon Keyspaces:
Online: si tratta di una migrazione in tempo reale che utilizza due scritture per iniziare a scrivere nuovi dati contemporaneamente su Amazon Keyspaces e sul cluster Cassandra. Questo tipo di migrazione è consigliato per le applicazioni che richiedono zero tempi di inattività durante la migrazione e la coerenza tra lettura e scrittura.
Per ulteriori informazioni su come pianificare e implementare una strategia di migrazione online, vedereMigrazione online ad Amazon Keyspaces: strategie e best practice.
Offline: questa tecnica di migrazione prevede la copia di un set di dati da Cassandra ad Amazon Keyspaces durante un periodo di inattività. La migrazione offline può semplificare il processo di migrazione, perché non richiede modifiche all'applicazione o la risoluzione dei conflitti tra dati storici e nuove scritture.
Per ulteriori informazioni su come pianificare una migrazione offline, vedereProcesso di migrazione offline: da Apache Cassandra ad Amazon Keyspaces.
Ibrida: questa tecnica di migrazione consente di replicare le modifiche su Amazon Keyspaces quasi in tempo reale, ma senza coerenza tra lettura e scrittura.
Per ulteriori informazioni su come pianificare una migrazione ibrida, consulta. Utilizzo di una soluzione di migrazione ibrida: da Apache Cassandra ad Amazon Keyspaces
Dopo aver esaminato le tecniche di migrazione e le best practice discusse in questo argomento, è possibile inserire le opzioni disponibili in un albero decisionale per progettare una strategia di migrazione basata sui requisiti e sulle risorse disponibili.