Cassandra CQL tábla: Létrehozás, módosítás és csonkítás példa
⚡ Okos összefoglaló
Cassandra A táblaműveletek magukban foglalják a létrehozást, módosítást és eldobástping, és oszlopcsaládok csonkítása CQL-lel. Ez az oldal ismerteti az egyes parancsokat, a három elsődleges kulcsformát, amelyek meghatározzák az adateloszlást, valamint a sorok és a táblázatok eltávolítása közötti különbségeket.
A szintaxisa Cassandra lekérdezőnyelv (CQL) hasonló SQL nyelv.
Hogyan készítsünk táblázatot Cassandra
Oszlopcsalád be Cassandra hasonló az RDBMS táblához. Az oszlopcsalád az adatok tárolására szolgál.
A „Táblázat létrehozása” parancs az oszlopcsalád létrehozására szolgál Cassandra.
Szintaxis
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Elsődleges kulcs: Kétféle típus létezik elsődleges kulcs.
- Egyetlen elsődleges kulcs: Az egyetlen elsődleges kulcsot a következő szintaxis határozza meg.
Szintaxis
PRIMARY KEY (ColumnName)
Az egyetlen elsődleges kulcsban csak egyetlen oszlop található. Ezt az oszlopot particionáló kulcsnak is nevezik. Az adatok az adott oszlop alapján vannak felosztva. Az adatok a partíciós kulcs alapján különböző csomópontokon vannak szétosztva.
2. Összetett elsődleges kulcs: Az összetett elsődleges kulcsot a következő szintaxis határozza meg.
Szintaxis
PRIMARY KEY (ColumnName1, ColumnName2, ...)
A fenti szintaxisban az Oszlopnév1 a particionáló kulcs, az Oszlopnév2 pedig a Clusterkulcsot. Az adatok az Oszlopnév1 alapján lesznek felosztva, az adatok pedig az Oszlopnév2 alapján csoportosulnak. ClusterAz ing az a folyamat, amely az adatokat rendezi a partícióban.
3. Összetett particionáló kulcs: Az összetett particionálási kulcsot a következő szintaxis határozza meg.
Szintaxis
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
A fenti szintaxisban a ColumnName1 és a ColumnName2 az összetett partíciós kulcs. Az adatok a ColumnName1 és a ColumnName2 oszlopok alapján lesznek particionálva, az adatok pedig a ColumnName3 alapján lesznek fürtözöttek. Ha túl sok adat van egyetlen partíción, akkor összetett partíciós kulcsot használunk. Az összetett partíciós kulcs több partíció létrehozására szolgál az adatok számára.
- Clause-val
A „záradékkal” a definiált tábla bármely tulajdonságának és értékének megadására szolgál. Például ha tömöríteni szeretne Cassandra táblaadatok. A tömörítési tulajdonságot a tömörítési algoritmus tulajdonság értékének megadásával állíthatja be a „With” záradékban. Ugyanez a záradék a CLUSTERING ORDER BY tulajdonságot is beállítja a fürtözési oszlop rendezési irányának megfordítására, a default_time_to_live tulajdonságot pedig úgy, hogy minden sor automatikusan lejárjon.
Példa
Itt van a "Create table" parancs végrehajtása, amely létrehozza a "Student" tábla nevét az "Egyetem" kulcstérben.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
A „Create table” parancs sikeres végrehajtása után a „Student” tábla létrejön az „University” kulcsterületen a RollNo, Name és dept oszlopokkal. A RollNo az elsődleges kulcs. A RollNo egyben partíciós kulcs is, így minden hallgató egy külön egysoros partíciót foglal el.
Cassandra Alter táblázat
A „Táblázat módosítása” paranccsal oszlopot dobhat el, új oszlopot vehet fel, módosíthatja az oszlop nevét, módosíthatja az oszlop típusát és módosíthatja a táblázat tulajdonságait.
Szintaxis
A következő az "Alter Table" parancs szintaxisa.
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;
Minden egyes nyomtatvány különálló nyilatkozatként kerül kiadásra. A jelenlegi szabályozás szerint két korlátozás érvényes. Cassandra kiadások: egy meglévő oszlop adattípusa már nem módosítható, és a RENAME csak az elsődleges kulcs fürtözési oszlopán működik.
Példa
Itt látható a „Táblázat módosítása” parancs pillanatképe, amely új oszlopot ad a Diák táblázathoz.
ALTER TABLE University.Student ADD Semester int;
A „Táblázat módosítása” parancs sikeres végrehajtása után egy új „Félév” oszlop kerül hozzáadásra „int” adattípussal a Hallgató táblához.
Íme a képernyőkép, amely a frissített tanulói táblázatot mutatja.
Cassandra Cseppasztal
A „Tábla eldobása” parancs eldobja a megadott táblát, beleértve a kulcsterület összes adatát is. Eldobás előttping az asztal, Cassandra pillanatfelvételt készít az adatokról, nem a sémáról biztonsági másolatként.
Szintaxis
DROP TABLE IF EXISTS KeyspaceName.TableName;
Példa
Itt látható a végrehajtott „Táblázat eldobása” parancs pillanatképe, amely ledobja a tábla diákot az „Egyetem” kulcstérből.
DROP TABLE University.Student;
A „Táblázat eldobása” parancs sikeres végrehajtása után a tábla Student kikerül az Egyetem kulcsterületéről.
Itt látható a pillanatkép, amely a hibaüzenetet mutatja Cassandra amikor megpróbált hozzáférni egy nem létező diáktáblához.
Cassandra Csonka táblázat
A „Táblázat csonkolása” parancs eltávolítja az összes adatot a megadott táblából. Az adatok csonkolása előtt Cassandra biztonsági másolatként készíti az adatok pillanatfelvételét.
Szintaxis
TRUNCATE KeyspaceName.TableName;
Példa
A táblázatban három rekord található. Ezek a rekordok a táblázatban.
Itt látható a végrehajtott „Táblázat csonkolása” parancs pillanatképe, amely eltávolítja az összes adatot a táblából.
A 'Táblázat csonkolása' parancs sikeres végrehajtása után az összes adat eltávolításra kerül a Student táblából.
Itt látható az adatbázis állapotának pillanatképe, ahol nincsenek rekordok a Student táblázatban.
A csonkítás (Truncate) megköveteli, hogy minden csomópont elérhető legyen, mivel egyszerre fut le az egész fürtön. Ha bármelyik csomópont nem működik, az utasítás sikertelen lesz, ami szándékos óvintézkedés a részleges adatok hátrahagyása ellen.
Eldobás vs. Csonkítás vs. Törlés Cassandra
Három parancs távolít el adatokat, és a rossz kiválasztása vagy megsemmisíti a sémát, vagy teljesítményproblémát okoz.
| parancs | Amit eltávolít | Séma megtartva | Költség |
|---|---|---|---|
| DROP TÁBLÁZAT | Minden sor és a tábladefiníció | Nem | Olcsó. Az SSTable-ökről pillanatkép készül, majd eldobásra kerül. |
| CSONKA | Minden sor | Igen | Olcsó, de minden csomópontot fel kell szerelni. Nem keletkeznek sírkövek. |
| DELETE | Kijelölt sorok vagy oszlopok | Igen | Drága ilyen léptékben. Minden eltávolítás egy sírkövet ír, amelyen a következő felirat olvasható: ki kell hagyni a tömörítésig. |
A gyakorlati szabály az, hogy egy teljes tábla törlésekor a TRUNCATE parancsot részesítsük előnyben a tömeges DELETE parancs helyett, mivel a több ezer törlési hiba lelassítja az adott partíció minden további olvasását. A sorszintű eltávolítást a következő részben tárgyaljuk. CQL beszúrás, frissítés és törlés tutorial.









