Come stimare il consumo di capacità della velocità effettiva di lettura e scrittura in Amazon Keyspaces - 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à.

Come stimare il consumo di capacità della velocità effettiva di lettura e scrittura in Amazon Keyspaces

Quando leggi o scrivi dati in Amazon Keyspaces, la quantità di unità di richiesta di lettura/scrittura (RRUS/WRUS) o unità di capacità di lettura/scrittura (RCU/WCU) consumate dalla query dipende dalla quantità totale di dati che Amazon Keyspaces deve elaborare per eseguire la query. In alcuni casi, i dati restituiti al client possono essere un sottoinsieme dei dati che Amazon Keyspaces ha dovuto leggere per elaborare la query. Per le scritture condizionali, Amazon Keyspaces consuma capacità di scrittura anche se il controllo condizionale fallisce.

Per stimare la quantità totale di dati elaborati per una richiesta, devi considerare la dimensione codificata di una riga e il numero totale di righe. Questo argomento illustra alcuni esempi di scenari e modelli di accesso comuni per mostrare come Amazon Keyspaces elabora le query e come ciò influisca sul consumo di capacità. Puoi seguire gli esempi per stimare i requisiti di capacità delle tue tabelle e utilizzare Amazon CloudWatch per osservare il consumo di capacità di lettura e scrittura per questi casi d'uso.

Per informazioni su come calcolare la dimensione codificata delle righe in Amazon Keyspaces, consulta. Calcolo della dimensione delle righe in Amazon Keyspaces

Interrogazioni sull'intervallo

Per esaminare il consumo di capacità di lettura di una query con intervallo, utilizziamo la seguente tabella di esempio che utilizza la modalità di capacità su richiesta.

pk1 | pk2 | pk3 | ck1 | ck2 | ck3 | value -----+-----+-----+-----+-----+-----+------- a | b | 1 | a | b | 50 | <any value that results in a row size larger than 4KB> a | b | 1 | a | b | 60 | value_1 a | b | 1 | a | b | 70 | <any value that results in a row size larger than 4KB>

Ora esegui la seguente query su questa tabella.

SELECT * FROM amazon_keyspaces.example_table_1 WHERE pk1='a' AND pk2='b' AND pk3=1 AND ck1='a' AND ck2='b' AND ck3 > 50 AND ck3 < 70;

Riceverai il seguente set di risultati dalla query e l'operazione di lettura eseguita da Amazon Keyspaces consuma 2 RRU in modalità di coerenza. LOCAL_QUORUM

pk1 | pk2 | pk3 | ck1 | ck2 | ck3 | value -----+-----+-----+-----+-----+-----+------- a | b | 1 | a | b | 60 | value_1

Amazon Keyspaces utilizza 2 RRU per valutare le righe con i valori ck3=60 ed ck3=70 elaborare la query. Tuttavia, Amazon Keyspaces restituisce solo la riga in cui la WHERE condizione specificata nella query è vera, ovvero la riga con valore. ck3=60 Per valutare l'intervallo specificato nella query, Amazon Keyspaces legge la riga che corrisponde al limite superiore dell'intervallo, in questo casock3 = 70, ma non restituisce quella riga nel risultato. Il consumo di capacità di lettura si basa sui dati letti durante l'elaborazione della query, non sui dati restituiti.

Limita le interrogazioni

Durante l'elaborazione di una query che utilizza la LIMIT clausola, Amazon Keyspaces legge le righe fino alla dimensione massima della pagina quando cerca di soddisfare la condizione specificata nella query. Se Amazon Keyspaces non riesce a trovare dati corrispondenti sufficienti che soddisfino il LIMIT valore nella prima pagina, potrebbero essere necessarie una o più chiamate impaginate. Per continuare le letture nella pagina successiva, puoi utilizzare un token di impaginazione. La dimensione predefinita della pagina è 1 MB. Per ridurre la capacità di lettura quando si utilizzano le LIMIT clausole, è possibile ridurre le dimensioni della pagina. Per ulteriori informazioni sull'impaginazione, vedere. Risultati di impaginazione in Amazon Keyspaces

Per un esempio, diamo un'occhiata alla seguente query.

SELECT * FROM my_table WHERE partition_key=1234 LIMIT 1;”

Se non imposti la dimensione della pagina, Amazon Keyspaces legge 1 MB di dati anche se ti restituisce solo 1 riga. Per fare in modo che Amazon Keyspaces legga solo una riga, puoi impostare la dimensione della pagina su 1 per questa query. In questo caso, Amazon Keyspaces leggerebbe solo una riga, a condizione che non ci siano righe scadute in base alle ime-to-live impostazioni T o ai timestamp sul lato client. Per consumare meno capacità di lettura, consigliamo di impostare la dimensione della pagina uguale al LIMIT valore per ridurre la quantità di dati letti da Amazon Keyspaces.

Scansioni delle tabelle

Le interrogazioni che generano scansioni complete della tabella, ad esempio le query che utilizzano l'ALLOW FILTERINGopzione, sono un altro esempio di query che elaborano più letture di quelle restituite come risultati. Inoltre, il consumo di capacità di lettura si basa sui dati letti, non sui dati restituiti.

Per l'esempio di scansione delle tabelle, utilizziamo la seguente tabella di esempio in modalità di capacità su richiesta.

pk | ck | value ---+----+--------- pk | 10 | <any value that results in a row size larger than 4KB> pk | 20 | value_1 pk | 30 | <any value that results in a row size larger than 4KB>

Amazon Keyspaces crea una tabella in modalità di capacità su richiesta con quattro partizioni per impostazione predefinita. In questa tabella di esempio, tutti i dati sono archiviati in una partizione e le tre partizioni rimanenti sono vuote.

Ora esegui la seguente query sulla tabella.

SELECT * from amazon_keyspaces.example_table_2;

Questa query genera un'operazione di scansione della tabella in cui Amazon Keyspaces analizza tutte e quattro le partizioni della tabella e utilizza 6 RRU in modalità di coerenza. LOCAL_QUORUM Innanzitutto, Amazon Keyspaces utilizza 3 RRU per la lettura delle tre righe. pk=‘pk’ Quindi, Amazon Keyspaces utilizza le 3 RRU aggiuntive per la scansione delle tre partizioni vuote della tabella. Poiché questa query genera una scansione della tabella, Amazon Keyspaces analizza tutte le partizioni della tabella, incluse le partizioni senza dati.

Transazioni leggere

Le transazioni leggere (LWT) consentono di eseguire operazioni di scrittura condizionali sui dati della tabella. Le operazioni di aggiornamento condizionale sono utili per l'inserimento, l'aggiornamento e l'eliminazione dei record in base a condizioni che valutano lo stato corrente.

In Amazon Keyspaces, tutte le operazioni di scrittura richiedono la coerenza LOCAL_QUORUM e non sono previsti costi aggiuntivi per l'utilizzo di LWT. La differenza per le LWT è che quando un controllo delle condizioni LWT restituisce FALSE, consuma unità di capacità di scrittura. Il numero di unità di capacità di scrittura utilizzate dipende dalla dimensione della riga. Se la dimensione della riga è 2 KB, la scrittura condizionale non riuscita consuma due unità di capacità di scrittura. Se la riga non esiste attualmente nella tabella, l'operazione consuma un'unità di capacità di scrittura. Monitorando la ConditionalCheckFailed metrica in CloudWatch è possibile determinare la capacità consumata dagli errori del controllo delle condizioni LWT.

Stima del consumo di capacità di lettura e scrittura con Amazon CloudWatch

Per stimare e monitorare il consumo di capacità di lettura e scrittura, puoi utilizzare una CloudWatch dashboard. Per ulteriori informazioni sui parametri disponibili per Amazon Keyspaces, consulta. Metriche e dimensioni di Amazon Keyspaces

Per monitorare le unità di capacità di lettura e scrittura utilizzate da una dichiarazione specifica con CloudWatch, puoi seguire questi passaggi.

  1. Crea una nuova tabella con dati di esempio

  2. Configura un CloudWatch pannello di controllo Amazon Keyspaces per la tabella. Per iniziare, puoi utilizzare un modello di dashboard disponibile su Github.

  3. Esegui l'istruzione CQL, ad esempio utilizzando l'ALLOW FILTERINGopzione, e controlla le unità di capacità di lettura utilizzate per la scansione completa della tabella nella dashboard.