Cassandra Tabulka CQL: Příklad vytvoření, úpravy a zkrácení
⚡ Chytré shrnutí
Cassandra Operace s tabulkami zahrnují vytváření, úpravy a odstraňovánípinga zkracování rodin sloupců pomocí CQL. Tato stránka vysvětluje jednotlivé příkazy, tři primární klíčové formy, které rozhodují o distribuci dat, a rozdíly mezi odebráním řádků a odebráním tabulky.
Syntaxe Cassandra dotazovací jazyk (CQL) se podobá SQL Jazyk.
Jak vytvořit tabulku v Cassandra
Rodina sloupců v Cassandra je podobná tabulce RDBMS. Rodina sloupců se používá k ukládání dat.
Příkaz 'Create Table' se používá k vytvoření rodiny sloupců v Cassandra.
Syntax
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Primární klíč: K dispozici jsou dva typy primární klíč.
- Jediný primární klíč: Jediný primární klíč je určen následující syntaxí.
Syntax
PRIMARY KEY (ColumnName)
V jediném primárním klíči je pouze jeden sloupec. Tento sloupec se také nazývá rozdělovací klíč. Data jsou rozdělena na základě tohoto sloupce. Data jsou šířena na různých uzlech na základě klíče oddílu.
2. Složený primární klíč: Složený primární klíč je určen následující syntaxí.
Syntax
PRIMARY KEY (ColumnName1, ColumnName2, ...)
Ve výše uvedené syntaxi je rozdělovacím klíčem ColumnName1 a ColumnName2 je Clusterklíč. Data budou rozdělena na základě ColumnName1 a data budou klastrována na základě ColumnName2. Clustering je proces, který třídí data v oddílu.
3. Složený klíč rozdělení: Složený rozdělovací klíč je určen následující syntaxí.
Syntax
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
Ve výše uvedené syntaxi jsou ColumnName1 a ColumnName2 složeným klíčem oddílu. Data budou rozdělena na základě sloupců ColumnName1 a ColumnName2 a data budou seskupena na základě ColumnName3. Pokud máte na jednom oddílu příliš mnoho dat, použije se složený klíč oddílu. Složený klíč oddílu se používá k vytvoření více oddílů pro data.
- S klauzulí
„S klauzulí“ se používá k určení jakékoli vlastnosti a její hodnoty pro definovanou tabulku. Například pokud chcete komprimovat Cassandra data tabulky. Vlastnost komprese můžete nastavit zadáním hodnoty vlastnosti algoritmu komprese v klauzuli „With“. Stejná klauzule také nastavuje CLUSTERING ORDER BY pro obrácení směru řazení shlukujícího se sloupce a default_time_to_live pro automatické vypršení platnosti každého řádku.
Příklad
Zde je provedení příkazu 'Create table', který vytvoří tabulku s názvem 'Student' v prostoru klíčů 'University'.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Po úspěšném provedení příkazu 'Vytvořit tabulku' bude v klíčovém prostoru 'Univerzita' vytvořena tabulka 'Student' se sloupci RollNo, Name a dept. RollNo je primární klíč. RollNo je také klíč oddílu, takže každý student zabírá samostatný jednořádkový oddíl.
Cassandra Změnit stůl
Příkaz 'Změnit tabulku' se používá k odstranění sloupce, přidání nového sloupce, změně názvu sloupce, změně typu sloupce a změně vlastnosti tabulky.
Syntax
Následuje syntaxe příkazu '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;
Každý formulář je vydán jako samostatný výpis. V současné době platí dvě omezení Cassandra verze: datový typ existujícího sloupce již nelze změnit a příkaz RENAME funguje pouze u shlukujícího se sloupce primárního klíče.
Příklad
Zde je snímek příkazu 'Změnit tabulku', který přidá nový sloupec do tabulky Student.
ALTER TABLE University.Student ADD Semester int;
Po úspěšném provedení příkazu 'Změnit tabulku' bude do tabulky Student přidán nový sloupec 'Semestr' s datovým typem 'int'.
Zde je snímek obrazovky, který ukazuje aktualizovanou tabulku Student.
Cassandra Drop table
Příkaz 'Drop table' odstraní zadanou tabulku včetně všech dat z klíčového prostoru. Před odstraňovánímping stůl, Cassandra pořídí snímek dat, nikoli schéma jako zálohu.
Syntax
DROP TABLE IF EXISTS KeyspaceName.TableName;
Příklad
Zde je snímek provedeného příkazu 'Drop Table', který vypustí tabulku Student z klíčového prostoru 'University'.
DROP TABLE University.Student;
Po úspěšném provedení příkazu 'Drop Table' bude tabulka Student odstraněna z klíčového prostoru University.
Zde je snímek, který ukazuje chybu vrácenou serverem Cassandra při pokusu o přístup k neexistující tabulce Student.
Cassandra Zkrátit tabulku
Příkaz 'Truncate table' odstraní všechna data ze zadané tabulky. Před zkrácením dat Cassandra vezme snímek dat jako zálohu.
Syntax
TRUNCATE KeyspaceName.TableName;
Příklad
V tabulce Student jsou tři záznamy. Toto jsou záznamy v tabulce.
Zde je snímek provedeného příkazu 'Truncate table', který odstraní všechna data z tabulky Student.
Po úspěšném provedení příkazu 'Truncate Table' budou všechna data z tabulky Student odstraněna.
Zde je snímek stavu databáze, kde nejsou žádné záznamy v tabulce Student.
Příkaz Truncate vyžaduje, aby byl každý uzel dosažitelný, protože se provádí v celém clusteru najednou. Pokud je kterýkoli uzel nefunkční, příkaz selže, což je záměrná ochrana proti zanechání částečných dat.
Přetáhnout vs. Zkrátit vs. Smazat v Cassandra
Tři příkazy odstraní data a výběr nesprávného buď zničí schéma, nebo způsobí problém s výkonem.
| Příkaz | Co odstraňuje | Schéma zachováno | Stát |
|---|---|---|---|
| SHOP STŮL | Všechny řádky a definice tabulky | Ne | Levné. SSTables se pořizují snímky a poté se zahazují. |
| Zkrátit | Všechny řádky | Ano | Levné, ale potřebuje všechny uzly nainstalované. Nejsou vytvořeny žádné náhrobky. |
| DELETE | Vybrané řádky nebo sloupce | Ano | Drahé v daném měřítku. Každé odstranění zapíše náhrobek, který se přečte „musí přeskočit do zhutnění“. |
Praktickým pravidlem je upřednostnit TRUNCATE před hromadným DELETE při mazání celé tabulky, protože tisíce náhrobků zpomalí každé následné čtení daného oddílu. Odstranění na úrovni řádků je popsáno v Vkládání, aktualizace a mazání CQL výukový program.









