Cassandra Esempio di creazione, modifica e troncamento di una tabella CQL.

โšก Riepilogo intelligente

Cassandra Le operazioni di tabella comprendono la creazione, la modifica e l'eliminazione.pinge il troncamento delle famiglie di colonne con CQL. Questa pagina spiega ogni comando, le tre forme di chiave primaria che determinano la distribuzione dei dati e le differenze tra la rimozione di righe e la rimozione di una tabella.

  • ???? ๏ธ Crea tabella: Una tabella necessita di uno spazio chiave, definizioni di colonna e una clausola di chiave primaria che definisca la distribuzione e l'ordinamento.
  • ๐Ÿ”‘ Chiave primaria singola: Una colonna funge da chiave di partizione, quindi ogni riga con quel valore finisce sullo stesso nodo.
  • ๐Ÿงฉ Chiave primaria composta: La prima colonna effettua la partizione, le colonne rimanenti raggruppano e ordinano le righe all'interno della partizione.
  • ๐Ÿงฎ Legenda della partizione composta: L'inserimento di due colonne tra parentesi permette di suddividere una partizione di grandi dimensioni in molte partizioni piรน piccole.
  • ๏ธ Modifica i limiti: รˆ possibile aggiungere o eliminare colonne, ma le colonne della chiave primaria non possono mai essere modificate.
  • ๐Ÿ—‘๏ธ Eliminazione vs. troncamento: Drop rimuove lo schema e i dati; truncate svuota tutte le righe ma mantiene la definizione della tabella.

Cassandra Tabella Crea Modifica Elimina

La sintassi di Cassandra Il linguaggio di interrogazione (CQL) assomiglia a SQL Lingua.

Come creare una tabella in Cassandra

Famiglia di colonne dentro Cassandra รจ simile alla tabella RDBMS. La famiglia di colonne viene utilizzata per archiviare i dati.

Il comando "Crea tabella" viene utilizzato per creare una famiglia di colonne in Cassandra.

Sintassi

CREATE TABLE KeyspaceName.TableName (
    ColumnName DataType,
    ColumnName DataType,
    ColumnName DataType,
    PRIMARY KEY (ColumnName)
) WITH PropertyName = PropertyValue;

1. Chiave primaria: Ci sono due tipi di chiave primaria.

  • Chiave primaria singola: La chiave primaria singola รจ specificata dalla seguente sintassi.

Sintassi

PRIMARY KEY (ColumnName)

Nella chiave primaria singola, c'รจ solo una singola colonna. Quella colonna รจ anche chiamata chiave di partizionamento. I dati vengono partizionati in base a tale colonna. I dati vengono distribuiti su diversi nodi in base alla chiave di partizione.

2. Chiave primaria composta: La chiave primaria composta รจ specificata dalla seguente sintassi.

Sintassi

PRIMARY KEY (ColumnName1, ColumnName2, ...)

Nella sintassi precedente, ColumnName1 รจ la chiave di partizionamento e ColumnName2 รจ il Clusterchiave di ing. I dati saranno partizionati in base a ColumnName1 e i dati saranno raggruppati in base a ColumnName2. Clustering รจ il processo che ordina i dati nella partizione.

3. Chiave di partizionamento composta: La chiave di partizionamento composta รจ specificata dalla seguente sintassi.

Sintassi

PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)

Nella sintassi sopra riportata, ColumnName1 e ColumnName2 rappresentano la chiave di partizionamento composta. I dati verranno partizionati in base a entrambe le colonne ColumnName1 e ColumnName2 e raggruppati in base a ColumnName3. Se la quantitร  di dati in una singola partizione รจ eccessiva, si utilizza una chiave di partizionamento composta. Quest'ultima viene utilizzata per creare piรน partizioni per i dati.

  • Con clausola

La "clausola With" viene utilizzata per specificare qualsiasi proprietร  e il relativo valore per la tabella definita. Ad esempio, se vuoi comprimere Cassandra dati della tabella. รˆ possibile impostare la proprietร  di compressione specificando il valore della proprietร  dell'algoritmo di compressione nella clausola "With". La stessa clausola imposta anche CLUSTERING ORDER BY per invertire la direzione di ordinamento di una colonna di clustering e default_time_to_live per far scadere automaticamente ogni riga.

Esempio

Ecco l'esecuzione del comando "Crea tabella" che creerร  il nome della tabella "Studente" nello spazio delle chiavi "Universitร ".

Cassandra Crea tabella

CREATE TABLE University.Student (
    RollNo int,
    Name text,
    dept text,
    PRIMARY KEY (RollNo)
);

Dopo la corretta esecuzione del comando 'Crea tabella', verrร  creata la tabella 'Student' nello spazio dei nomi 'University' con le colonne RollNo, Name e dept. RollNo รจ la chiave primaria. RollNo รจ anche una chiave di partizione, quindi ogni studente occupa una partizione separata a riga singola.

Cassandra Modifica tabella

Il comando "Modifica tabella" viene utilizzato per eliminare una colonna, aggiungere una nuova colonna, modificare il nome della colonna, modificare il tipo di colonna e modificare la proprietร  della tabella.

Sintassi

Di seguito รจ riportata la sintassi del comando 'Alter Table'.

ALTER TABLE KeyspaceName.TableName
    ADD ColumnName ColumnDataType;

ALTER TABLE KeyspaceName.TableName
    DROP ColumnName;

ALTER TABLE KeyspaceName.TableName
    RENAME ColumnName TO NewColumnName;

ALTER TABLE KeyspaceName.TableName
    WITH PropertyName = PropertyValue;

Ogni modulo viene emesso come dichiarazione separata. Due restrizioni si applicano attualmente Cassandra Novitร : il tipo di dati di una colonna esistente non puรฒ piรน essere modificato e RENAME funziona solo su una colonna di clustering della chiave primaria.

Esempio

Ecco l'istantanea del comando 'Alter Table' che aggiungerร  una nuova colonna nella tabella Student.

Cassandra Modifica tabella

ALTER TABLE University.Student ADD Semester int;

Dopo aver eseguito con successo il comando 'Alter Table', una nuova colonna 'Semester' con il tipo di dati 'int' verrร  aggiunta alla tabella Student.

Ecco lo screenshot che mostra la tabella Studente aggiornata.

Cassandra Modifica tabella

Cassandra Drop table

Il comando 'Drop table' elimina la tabella specificata, inclusi tutti i dati dallo spazio dei dati. Prima dell'eliminazioneping il tavolo, Cassandra esegue uno snapshot dei dati e non dello schema come backup.

Sintassi

DROP TABLE IF EXISTS KeyspaceName.TableName;

Esempio

Ecco l'istantanea del comando eseguito "Drop Table" che eliminerร  la tabella Student dallo spazio delle chiavi "University".

Cassandra Drop table

DROP TABLE University.Student;

Dopo aver eseguito con successo il comando 'Drop Table', la tabella Student verrร  eliminata dallo spazio delle chiavi University.

Ecco lo snapshot che mostra l'errore restituito dal file Cassandra quando si tenta di accedere alla tabella Studente che non esiste.

Cassandra Drop table

Cassandra Tronca tabella

Il comando 'Tronca tabella' rimuove tutti i dati dalla tabella specificata. Prima di troncare i dati, Cassandra prende l'istantanea dei dati come backup.

Sintassi

TRUNCATE KeyspaceName.TableName;

Esempio

Nella tabella Studente sono presenti tre record. Questi sono i record della tabella.

Cassandra Tronca tabella

Ecco l'istantanea del comando eseguito 'Tronca tabella' che rimuoverร  tutti i dati dalla tabella Studente.

Cassandra Tronca tabella

Dopo aver eseguito con successo il comando 'Tronca tabella', tutti i dati verranno rimossi dalla tabella Studente.

Ecco l'istantanea dello stato del database in cui non sono presenti record nella tabella Studente.

Cassandra Tronca tabella

L'operazione di troncamento richiede che ogni nodo sia raggiungibile, poichรฉ viene eseguita simultaneamente sull'intero cluster. Se un nodo non รจ disponibile, l'operazione fallisce; si tratta di una misura di sicurezza intenzionale per evitare la perdita di dati parziali.

Drop vs Truncate vs Delete in Cassandra

Esistono tre comandi per la rimozione dei dati, e la scelta di quello sbagliato puรฒ distruggere uno schema o causare problemi di prestazioni.

Comando Ciรฒ che rimuove Schema mantenne Costo
TABELLA DI GOCCIA Tutte le righe e la definizione della tabella Non Economici. Gli SSTable vengono campionati e poi scartati.
TRONCARE Tutte le righe Si Economico, ma richiede che tutti i nodi siano attivi. Non vengono create lapidi.
DELETE Righe o colonne selezionate Si Costoso su larga scala. Ogni rimozione scrive una lapide che recita: deve saltare fino alla compattazione.

La regola pratica รจ preferire TRUNCATE a una DELETE di massa quando si cancella un'intera tabella, perchรฉ migliaia di tombstone rallenteranno ogni successiva lettura di quella partizione. La rimozione a livello di riga รจ trattata in Inserimento, aggiornamento ed eliminazione in CQL tutorial.

DOMANDE FREQUENTI

No. La chiave primaria determina la posizione fisica dei dati, quindi รจ fissa al momento della creazione. Modificarla significa creare una nuova tabella con la chiave desiderata e migrare le righe.

Aggiungi WITH CLUSTERING ORDER BY (ColumnName DESC) al momento della creazione. Impostarlo nello schema รจ molto piรน efficiente rispetto all'ordinamento a ogni operazione di lettura.

No. La colonna viene nascosta immediatamente dalle query, ma i suoi dati rimangono all'interno degli SSTable esistenti finchรฉ la compattazione non li riscrive. Lo spazio viene recuperato gradualmente.

L'elenco delle colonne viene tradotto correttamente, ma l'IA spesso mantiene un ID surrogato come chiave di partizione, creando partizioni a riga singola. Riformulare il modello di query in modo che la chiave venga scelta per le operazioni di lettura.

Sรฌ, per problemi a livello di pattern come colonne di clustering mancanti, partizioni illimitate o colonne di raccolta che potrebbero superare i limiti. Verificare la cardinalitร  effettiva prima di procedere.

Riassumi questo post con: