Utilizzo delle righe 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à.

Utilizzo delle righe in Amazon Keyspaces

Questa sezione fornisce dettagli sull'utilizzo delle righe in Amazon Keyspaces (per Apache Cassandra). Le tabelle sono le strutture di dati principali in Amazon Keyspaces e i dati nelle tabelle sono organizzati in colonne e righe.

Calcolo della dimensione delle righe in Amazon Keyspaces

Amazon Keyspaces fornisce uno storage completamente gestito che offre prestazioni di lettura e scrittura a una cifra di millisecondi e archivia i dati in modo duraturo su più zone di disponibilità. AWS Amazon Keyspaces allega i metadati a tutte le righe e le colonne chiave primarie per supportare un accesso efficiente ai dati e un'elevata disponibilità.

Questa sezione fornisce dettagli su come stimare la dimensione codificata delle righe in Amazon Keyspaces. La dimensione codificata delle righe viene utilizzata per il calcolo della fattura e dell'utilizzo della quota. È inoltre necessario utilizzare la dimensione delle righe codificate per il calcolo dei requisiti di capacità di throughput assegnati per le tabelle. Per calcolare la dimensione codificata delle righe in Amazon Keyspaces, puoi utilizzare le seguenti linee guida.

  • Per le colonne normali, che sono colonne che non sono chiavi primarie, colonne di clustering o STATIC colonne, usa la dimensione grezza dei dati della cella in base al tipo di dati e aggiungi i metadati richiesti. Per ulteriori informazioni sui tipi di dati supportati in Amazon Keyspaces, consulta. Tipi di dati Di seguito sono elencate alcune differenze chiave nel modo in cui Amazon Keyspaces archivia i valori dei tipi di dati e i metadati.

  • Lo spazio richiesto per ogni nome di colonna viene memorizzato utilizzando un identificatore di colonna e aggiunto a ciascun valore di dati memorizzato nella colonna. Il valore di archiviazione dell'identificatore di colonna dipende dal numero complessivo di colonne della tabella:

    • 1—62 colonne: 1 byte

    • 63-124 colonne: 2 byte

    • 125-186 colonne: 3 byte

    Per ogni 62 colonne aggiuntive aggiungere 1 byte. Tieni presente che in Amazon Keyspaces, è possibile modificare fino a 225 colonne regolari con una singola istruzione INSERT orUPDATE. Per ulteriori informazioni, consulta Quote di servizio Amazon Keyspaces.

  • Le chiavi di partizione possono contenere fino a 2048 byte di dati. Ogni colonna chiave nella chiave di partizione richiede fino a 3 byte di metadati. Quando si calcola la dimensione della riga, è necessario presupporre che ogni colonna della chiave di partizione utilizzi tutti i 3 byte di metadati.

  • Le colonne di clustering possono memorizzare fino a 850 byte di dati. Oltre alla dimensione del valore dei dati, ogni colonna di clustering richiede fino al 20% della dimensione del valore dei dati per i metadati. Quando si calcola la dimensione della riga, è necessario aggiungere 1 byte di metadati per ogni 5 byte di valore dei dati della colonna di clustering.

  • Amazon Keyspaces memorizza due volte il valore dei dati di ogni chiave di partizione e colonna chiave di clustering. L'overhead aggiuntivo viene utilizzato per interrogazioni efficienti e indicizzazione integrata.

  • I tipi di dati Cassandra ASCII e VARCHAR string sono tutti archiviati in Amazon Keyspaces utilizzando Unicode con codifica binaria UTF-8. TEXT La dimensione di una stringa in Amazon Keyspaces è uguale al numero di byte con codifica UTF-8.

  • CassandraINT, BIGINTSMALLINT, e TINYINT i tipi di dati vengono archiviati in Amazon Keyspaces come valori di dati a lunghezza variabile, con un massimo di 38 cifre significative. Gli zero iniziali e finali vengono tagliati. La dimensione di ognuno di questi tipi di dati è di circa 1 byte per due cifre significative + 1 byte.

  • Un BLOB in Amazon Keyspaces viene memorizzato con la lunghezza in byte grezza del valore.

  • La dimensione di un Null valore o di un Boolean valore è di 1 byte.

  • Una colonna che memorizza tipi di dati di raccolta come LIST o MAP richiede 3 byte di metadati, indipendentemente dal contenuto. La dimensione di un LIST or MAP è (id della colonna) + sum (dimensione degli elementi annidati) + (3 byte). La dimensione di un LIST or vuoto MAP è (id di colonna) + (3 byte). Ogni singolo LIST MAP elemento richiede anche 1 byte di metadati.

  • STATICi dati delle colonne non vengono conteggiati ai fini della dimensione massima della riga di 1 MB. Per calcolare la dimensione dei dati delle colonne statiche, vediCalcolo della dimensione statica delle colonne per partizione logica in Amazon Keyspaces.

  • I timestamp lato client vengono memorizzati per ogni colonna di ogni riga quando la funzione è attivata. Questi timestamp occupano circa 20-40 byte (a seconda dei dati) e contribuiscono ai costi di archiviazione e velocità effettiva della riga. Per ulteriori informazioni, consulta Come funzionano i timestamp lato client in Amazon Keyspaces.

  • Aggiungi 100 byte alla dimensione di ogni riga per i metadati delle righe.

La dimensione totale di una riga di dati codificata si basa sulla seguente formula:

partition key columns + clustering columns + regular columns + row metadata = total encoded size of row
Importante

Tutti i metadati delle colonne, ad esempio gli ID delle colonne, i metadati delle chiavi di partizione, i metadati delle colonne di clustering, nonché i timestamp e i metadati di riga sul lato client, vengono conteggiati ai fini della dimensione massima delle righe di 1 MB.

Considerate il seguente esempio di tabella in cui tutte le colonne sono di tipo intero. La tabella ha due colonne chiave di partizione, due colonne di clustering e una colonna normale. Poiché questa tabella ha cinque colonne, lo spazio richiesto per l'identificatore del nome della colonna è di 1 byte.

CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, primary key((pk_col1, pk_col2),ck_col1, ck_col2));

In questo esempio, calcoliamo la dimensione dei dati quando scriviamo una riga nella tabella, come illustrato nella seguente dichiarazione:

INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);

Per stimare i byte totali richiesti da questa operazione di scrittura, è possibile utilizzare i seguenti passaggi.

  1. Calcola la dimensione di una colonna chiave di partizione aggiungendo i byte per il tipo di dati archiviato nella colonna e i byte dei metadati. Ripeti questa operazione per tutte le colonne chiave di partizione.

    1. Calcola la dimensione della prima colonna della chiave di partizione (pk_col1):

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    2. Calcola la dimensione della seconda colonna della chiave di partizione (pk_col2):

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    3. Aggiungi entrambe le colonne per ottenere la dimensione totale stimata delle colonne chiave di partizione:

      8 bytes + 8 bytes = 16 bytes for the partition key columns
  2. Calcola la dimensione della colonna di clustering aggiungendo i byte per il tipo di dati archiviato nella colonna e i byte dei metadati. Ripeti l'operazione per tutte le colonne di clustering.

    1. Calcola la dimensione della prima colonna della colonna di clustering (ck_col1):

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    2. Calcola la dimensione della seconda colonna della colonna di clustering (ck_col2):

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    3. Aggiungi entrambe le colonne per ottenere la dimensione totale stimata delle colonne di clustering:

      6 bytes + 6 bytes = 12 bytes for the clustering columns
  3. Aggiungi la dimensione delle colonne normali. In questo esempio abbiamo solo una colonna che memorizza un numero intero a una cifra, che richiede 2 byte con 1 byte per l'ID della colonna.

  4. Infine, per ottenere la dimensione totale delle righe codificate, sommate i byte per tutte le colonne e aggiungete i 100 byte aggiuntivi per i metadati delle righe:

    16 bytes for the partition key columns + 12 bytes for clustering columns + 3 bytes for the regular column + 100 bytes for row metadata = 131 bytes.

Per scoprire come monitorare le risorse serverless con Amazon CloudWatch, consultaMonitoraggio di Amazon Keyspaces con Amazon CloudWatch.