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.

  • 🏗️ Izradi tablicu: Tablica treba ključevni prostor, definicije stupaca i klauzulu primarnog ključa koja određuje distribuciju i redoslijed sortiranja.
  • 🔑 Jedan primarni ključ: Jedan stupac djeluje kao particijski ključ, tako da svaki redak te vrijednosti završava na istom čvoru.
  • 🧩 Složeni primarni ključ: Prvi stupac particionira, preostali stupci grupiraju i sortiraju retke unutar particije.
  • 🧮 Složeni ključ particije: Zagrade dvaju stupaca dijele preveliku particiju na mnogo manjih.
  • ✏️ Promijeni granice: Stupci se mogu dodavati ili uklanjati, ali stupci primarnog ključa se nikada ne mogu mijenjati.
  • 🗑️ Ispuštanje u odnosu na skraćivanje: Drop uklanja shemu i podatke; truncate prazni svaki redak, ali zadržava definiciju tablice.

Cassandra Tablica Stvori Promijeni Ispusti

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'.

Cassandra Stvori tablicu

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.

Cassandra Izmijeni stol

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 Izmijeni stol

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'.

Cassandra Ispuštanje tablice

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 Ispuštanje tablice

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.

Cassandra Skraćena tablica

Ovdje je snimka izvršene naredbe 'Truncate table' koja će ukloniti sve podatke iz tablice Student.

Cassandra Skraćena tablica

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.

Cassandra Skraćena tablica

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.

Pitanja i odgovori

Ne. Primarni ključ određuje fizički smještaj podataka, pa je fiksan prilikom stvaranja. Njegova promjena znači stvaranje nove tablice sa željenim ključem i migraciju redaka.

Dodajte WITH CLUSTERING ORDER BY (ColumnName DESC) prilikom kreiranja. Postavljanje u shemi je puno jeftinije od sortiranja u vrijeme upita pri svakom čitanju.

Ne. Stupac je odmah skriven od upita, ali njegovi podaci ostaju unutar postojećih SSTables dok ih sažimanje ne prepiše. Prostor se postupno oslobađa.

Popis stupaca se prevodi čisto, ali umjetna inteligencija često zadržava surogatni ID kao ključ particije, što stvara particije s jednim redom. Preformulirajte uzorak upita tako da se ključ odabere za čitanja.

Da, za probleme na razini uzorka kao što su nedostajući stupci klasteriranja, neograničene particije ili stupci kolekcija koji vjerojatno premašuju ograničenja. Provjerite stvarnu kardinalnost prije djelovanja.

Sažmite ovu objavu uz: