Cassandra CQL tablica: Primjer stvaranja, izmjene i skraćivanja
⚡ Pametni sažetak
Cassandra Operacije s tablicama obuhvaćaju stvaranje, mijenjanje i brisanjepingi skraćivanje obitelji stupaca pomoću CQL-a. Ova stranica objašnjava svaku naredbu, tri primarna ključna oblika koji određuju distribuciju podataka i razlike između uklanjanja redaka i uklanjanja tablice.
Sintaksa Cassandra jezik upita (CQL) nalikuje SQL Jezik.
Kako napraviti tablicu u Cassandra
Stup obitelj u Cassandra slična je RDBMS tablici. Obitelj stupaca koristi se za pohranu podataka.
Naredba 'Stvori tablicu' koristi se za stvaranje obitelji stupaca Cassandra.
Sintaksa
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Primarni ključ: Postoje dvije vrste Osnovni ključ.
- Jedan primarni ključ: Jedan primarni ključ specificiran je sljedećom sintaksom.
Sintaksa
PRIMARY KEY (ColumnName)
U jednom primarnom ključu postoji samo jedan stupac. Taj se stupac također naziva particijski ključ. Podaci se particioniraju na temelju tog stupca. Podaci se šire na različite čvorove na temelju particijskog ključa.
2. Složeni primarni ključ: Složeni primarni ključ određen je sljedećom sintaksom.
Sintaksa
PRIMARY KEY (ColumnName1, ColumnName2, ...)
U gornjoj sintaksi, ColumnName1 je particioni ključ, a ColumnName2 je Clustering ključ. Podaci će biti podijeljeni na temelju ColumnName1, a podaci će biti grupirani na temelju ColumnName2. Clustering je proces koji sortira podatke u particiji.
3. Složeni ključ particioniranja: Složeni particijski ključ određen je sljedećom sintaksom.
Sintaksa
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
U gornjoj sintaksi, NazivStupca1 i NazivStupca2 su složeni ključ particije. Podaci će biti particionirani na temelju stupaca NazivStupca1 i NazivStupca2, a podaci će biti grupirani na temelju NazivaStupca3. Ako imate previše podataka na jednoj particiji, koristi se složeni ključ particije. Složeni ključ particije koristi se za stvaranje više particija za podatke.
- S klauzulom
"S klauzulom" koristi se za određivanje bilo kojeg svojstva i njegove vrijednosti za definiranu tablicu. Na primjer, ako želite komprimirati Cassandra podaci tablice. Svojstvo kompresije možete postaviti određivanjem vrijednosti svojstva algoritma kompresije u klauzuli „With“. Ista klauzula također postavlja CLUSTERING ORDER BY za obrnuti smjer sortiranja stupca klasteriranja i default_time_to_live za automatski istek svakog retka.
Primjer
Ovdje je izvršenje naredbe 'Create table' koja će kreirati tablicu s nazivom 'Student' u prostoru tipki 'University'.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Nakon uspješnog izvršenja naredbe 'Kreiraj tablicu', u ključnom prostoru 'Sveučilište' bit će kreirana tablica 'Student' sa stupcima Broj_upiske, Ime i odjel. Broj_upiske je primarni ključ. Broj_upiske je ujedno i ključ particije, tako da svaki student zauzima zasebnu particiju s jednim redom.
Cassandra Izmijeni stol
Naredba 'Alter Table' koristi se za ispuštanje stupca, dodavanje novog stupca, promjenu naziva stupca, promjenu tipa stupca i promjenu svojstva tablice.
Sintaksa
Slijedi sintaksa naredbe '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;
Svaki obrazac izdaje se kao zasebna izjava. U trenutnoj situaciji primjenjuju se dva ograničenja. Cassandra izdanja: tip podataka postojećeg stupca više se ne može mijenjati, a RENAME radi samo na stupcu klasteriranja primarnog ključa.
Primjer
Ovdje je snimka naredbe 'Alter Table' koja će dodati novi stupac u tablicu Student.
ALTER TABLE University.Student ADD Semester int;
Nakon uspješnog izvođenja naredbe 'Alter Table', u tablicu Student bit će dodan novi stupac 'Semestar' s tipom podataka 'int'.
Ovdje je snimak zaslona koji prikazuje ažuriranu tablicu učenika.
Cassandra Ispuštanje tablice
Naredba 'Drop table' briše navedenu tablicu uključujući sve podatke iz ključnog prostora. Prije brisanjaping stol, Cassandra uzima snimku podataka, a ne sheme kao sigurnosnu kopiju.
Sintaksa
DROP TABLE IF EXISTS KeyspaceName.TableName;
Primjer
Ovdje je snimka izvršene naredbe 'Drop Table' koja će ispustiti tablicu Student iz prostora ključeva 'University'.
DROP TABLE University.Student;
Nakon uspješnog izvođenja naredbe 'Drop Table', tablica Student bit će ispuštena iz prostora ključeva Sveučilište.
Ovdje je snimka koja prikazuje pogrešku koju je vratio Cassandra pri pokušaju pristupa tablici Student koja ne postoji.
Cassandra Skraćena tablica
Naredba 'Truncate table' uklanja sve podatke iz navedene tablice. Prije skraćivanja podataka, Cassandra uzima snimku podataka kao sigurnosnu kopiju.
Sintaksa
TRUNCATE KeyspaceName.TableName;
Primjer
U tablici Student postoje tri zapisa. Ovo su zapisi u tablici.
Ovdje je snimka izvršene naredbe 'Truncate table' koja će ukloniti sve podatke iz tablice Student.
Nakon uspješnog izvođenja naredbe 'Truncate Table', svi podaci će biti uklonjeni iz tablice Student.
Ovdje je snimka stanja baze podataka u kojoj nema zapisa u tablici Student.
Naredba Truncate zahtijeva da svaki čvor bude dostupan jer se izvršava na cijelom klasteru odjednom. Ako je bilo koji čvor u kvaru, naredba ne uspijeva, što je namjerna zaštita od ostavljanja djelomičnih podataka.
Ispuštanje vs. Skraćivanje vs. Brisanje u Cassandra
Tri naredbe uklanjaju podatke, a odabir pogrešne ili uništava shemu ili ostavlja problem s performansama.
| naredba | Što uklanja | Shema sačuvana | Trošak |
|---|---|---|---|
| ISPUSTI STOL | Svi retci i definicija tablice | Ne | Jeftino. SSTables se snimaju, a zatim odbacuju. |
| SKRATITI | Svi retci | Da | Jeftino, ali treba postaviti svaki čvor. Ne stvaraju se nadgrobni spomenici. |
| DELETE | Odabrani retci ili stupci | Da | Skupo u razmjerima. Svako uklanjanje zapisuje nadgrobni spomenik koji glasi mora preskočiti do zbijanja. |
Praktično pravilo je preferirati TRUNCATE u odnosu na skupno brisanje prilikom brisanja cijele tablice, jer će tisuće tombstonesa usporiti svako sljedeće čitanje te particije. Uklanjanje na razini retka opisano je u Umetanje, ažuriranje i brisanje CQL-a udžbenik.









