Cassandra Tabel CQL: Exemplu de creare, modificare și trunchiere
⚡ Rezumat inteligent
Cassandra Operațiile cu tabelele acoperă crearea, modificarea, eliminareapingși trunchierea familiilor de coloane cu CQL. Această pagină explică fiecare comandă, cele trei forme de cheie primară care decid distribuția datelor și diferențele dintre eliminarea rândurilor și eliminarea unui tabel.

Sintaxa lui Cassandra limbajul de interogare (CQL) seamănă cu SQL limba.
Cum se creează un tabel în Cassandra
Familia de coloană în Cassandra este similar cu tabelul RDBMS. Familia de coloane este utilizată pentru stocarea datelor.
Comanda „Creați tabel” este folosită pentru a crea o familie de coloane Cassandra.
Sintaxă
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Cheie primară: Există două tipuri de cheia principala.
- Cheie primară unică: Cheia primară unică este specificată de următoarea sintaxă.
Sintaxă
PRIMARY KEY (ColumnName)
În cheia primară unică, există doar o singură coloană. Acea coloană se mai numește și cheie de partiționare. Datele sunt împărțite pe baza acelei coloane. Datele sunt răspândite pe diferite noduri pe baza cheii de partiție.
2. Cheie primară compusă: Cheia primară compusă este specificată de următoarea sintaxă.
Sintaxă
PRIMARY KEY (ColumnName1, ColumnName2, ...)
În sintaxa de mai sus, ColumnName1 este cheia de partiție, iar ColumnName2 este Clustercheie ing. Datele vor fi partiționate pe baza ColumnName1, iar datele vor fi grupate pe baza ColumnName2. Clustering este procesul care sortează datele din partiție.
3. Cheie de partiție compusă: Cheia de partiționare compusă este specificată de următoarea sintaxă.
Sintaxă
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
În sintaxa de mai sus, NumeColoană1 și NumeColoană2 reprezintă cheile de partiție compuse. Datele vor fi partiționate pe baza ambelor coloane NumeColoană1 și NumeColoană2, iar datele vor fi grupate în grup pe baza NumeColoană3. Dacă aveți prea multe date pe o singură partiție, atunci se utilizează cheia de partiționare compusă. Cheia de partiționare compusă este utilizată pentru a crea mai multe partiții pentru date.
- Cu clauza
„Cu clauză” este folosit pentru a specifica orice proprietate și valoarea acesteia pentru tabelul definit. De exemplu, dacă doriți să comprimați Cassandra date din tabel. Puteți seta proprietatea de compresie specificând valoarea proprietății algoritmului de compresie în clauza „With”. Aceeași clauză setează, de asemenea, CLUSTERING ORDER BY pentru a inversa direcția de sortare a unei coloane de grupare în cluster și default_time_to_live pentru a expira automat fiecare rând.
Exemplu
Iată execuția comenzii „Creați tabel” care va crea numele tabelului „Student” în spațiul de taste „Universitate”.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
După executarea cu succes a comenzii „Create table”, tabelul „Student” va fi creat în spațiul de chei „University” cu coloanele RollNo, Name și dept. RollNo este cheia primară. RollNo este, de asemenea, o cheie de partiție, deci fiecare student ocupă o partiție separată pe un singur rând.
Cassandra Schimbați masa
Comanda „Alter Table” este folosită pentru a elimina o coloană, pentru a adăuga o nouă coloană, pentru a modifica numele coloanei, pentru a modifica tipul de coloană și pentru a modifica proprietatea tabelului.
Sintaxă
Mai jos este sintaxa comenzii „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;
Fiecare formular este emis ca o declarație separată. În prezent, se aplică două restricții. Cassandra versiuni: tipul de date al unei coloane existente nu mai poate fi modificat, iar RENAME funcționează doar pe o coloană de clusterizare a cheii primare.
Exemplu
Iată instantaneul comenzii „Alter Table” care va adăuga o nouă coloană în tabelul Student.
ALTER TABLE University.Student ADD Semester int;
După executarea cu succes a comenzii „Alter Table”, o nouă coloană „Semester” cu tipul de date „int” va fi adăugată la tabel Student.
Iată captura de ecran care arată tabelul Student actualizat.
Cassandra Drop Table
Comanda „Drop table” elimină tabelul specificat, inclusiv toate datele din spațiul cheilor. Înainte de eliminareping masa, Cassandra face o copie de rezervă a datelor, nu a schemei.
Sintaxă
DROP TABLE IF EXISTS KeyspaceName.TableName;
Exemplu
Iată instantaneul comenzii executate „Drop Table” care va arunca tabelul Student din keyspace „University”.
DROP TABLE University.Student;
După executarea cu succes a comenzii „Drop Table”, tabelul Student va fi eliminat din keyspace University.
Iată instantaneul care arată eroarea returnată de Cassandra când a încercat să acceseze tabelul Student care nu există.
Cassandra Trunchiați tabelul
Comanda „Truncate table” elimină toate datele din tabelul specificat. Înainte de a trunchia datele, Cassandra ia instantaneul datelor ca backup.
Sintaxă
TRUNCATE KeyspaceName.TableName;
Exemplu
Există trei înregistrări în tabelul Student. Acestea sunt înregistrările din tabel.
Iată instantaneul comenzii executate „Truncate table” care va elimina toate datele din tabel Student.
După executarea cu succes a comenzii „Truncate Table”, toate datele vor fi eliminate din tabel Student.
Iată un instantaneu al stării bazei de date în care nu există înregistrări în tabelul Student.
Truncate necesită ca fiecare nod să fie accesibil, deoarece este executată simultan în întregul cluster. Dacă vreun nod este nefuncțional, instrucțiunea eșuează, ceea ce reprezintă o măsură deliberată de protecție împotriva omiterii unor date parțiale.
Eliminare vs. Trunchiere vs. Ștergere în Cassandra
Trei comenzi elimină date, iar alegerea celei greșite fie distruge o schemă, fie lasă în urmă o problemă de performanță.
| Comandă | Ceea ce elimină | Schema păstrată | Costat |
|---|---|---|---|
| DROP TABLE | Toate rândurile și definiția tabelului | Nu | Ieftin. Tabelele SST sunt fotografiate instantaneu, apoi eliminate. |
| TRUNCHIA | Toate rândurile | Da | Ieftin, dar necesită fiecare nod activ. Nu se creează pietre funerare. |
| DELETE | Rânduri sau coloane selectate | Da | Scump la scară largă. Fiecare eliminare scrie o piatră funerară care trebuie sărită până la compactare. |
Regula practică este să se prefere TRUNCATE în locul unei DELETE în bloc atunci când se șterge un tabel întreg, deoarece mii de tombstone-uri vor încetini fiecare citire ulterioară a acelei partiții. Eliminarea la nivel de rând este acoperită în Inserare, actualizare și ștergere CQL tutorial.








