Cassandra CQL-tabel: voorbeeld van aanmaken, wijzigen en leegmaken.
โก Slimme samenvatting
Cassandra Tabelbewerkingen omvatten het aanmaken, wijzigen en verwijderen van tabellen.pingen het inkorten van kolomfamilies met CQL. Deze pagina legt elk commando uit, de drie primaire sleutelvormen die de gegevensdistributie bepalen, en de verschillen tussen het verwijderen van rijen en het verwijderen van een tabel.

De syntaxis van Cassandra Querytaal (CQL) lijkt op SQL taal.
Hoe u een tabel maakt in Cassandra
Kolomfamilie in Cassandra is vergelijkbaar met de RDBMS-tabel. Kolomfamilie wordt gebruikt om gegevens op te slaan.
Het commando 'Tabel maken' wordt gebruikt om een โโkolomfamilie aan te maken Cassandra.
Syntaxis
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Primaire sleutel: Er zijn twee types hoofdsleutel.
- Enkele primaire sleutel: Eรฉn primaire sleutel wordt gespecificeerd met de volgende syntaxis.
Syntaxis
PRIMARY KEY (ColumnName)
In de enkele primaire sleutel is er slechts รฉรฉn kolom. Die kolom wordt ook wel partitiesleutel genoemd. Gegevens worden gepartitioneerd op basis van die kolom. Gegevens worden op basis van de partitiesleutel over verschillende knooppunten verspreid.
2. Samengestelde primaire sleutel: Een samengestelde primaire sleutel wordt gespecificeerd met de volgende syntaxis.
Syntaxis
PRIMARY KEY (ColumnName1, ColumnName2, ...)
In de bovenstaande syntaxis is ColumnName1 de partitiesleutel en ColumnName2 de Clustering-sleutel. Gegevens worden gepartitioneerd op basis van ColumnName1 en gegevens worden geclusterd op basis van ColumnName2. Clustering is het proces dat gegevens in de partitie sorteert.
3. Samengestelde partitiesleutel: De samengestelde partitiesleutel wordt gespecificeerd met de volgende syntaxis.
Syntaxis
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
In de bovenstaande syntax zijn ColumnName1 en ColumnName2 de samengestelde partitiesleutel. De gegevens worden gepartitioneerd op basis van zowel ColumnName1 als ColumnName2 en geclusterd op basis van ColumnName3. Als er te veel gegevens in รฉรฉn partitie staan, wordt een samengestelde partitiesleutel gebruikt. Een samengestelde partitiesleutel wordt gebruikt om meerdere partities voor de gegevens te creรซren.
- Met clausule
โWith-clausuleโ wordt gebruikt om elke eigenschap en de waarde ervan voor de gedefinieerde tabel op te geven. Bijvoorbeeld als u wilt comprimeren Cassandra Tabelgegevens. U kunt de compressie-eigenschap instellen door de waarde van de eigenschap compressiealgoritme op te geven in de "With-clausule". Dezelfde clausule stelt ook CLUSTERING ORDER BY in om de sorteerrichting van een clusterkolom om te keren, en default_time_to_live om elke rij automatisch te laten verlopen.
Voorbeeld
Hier is de uitvoering van het commando 'Tabel maken', waardoor de tabelnaam 'Student' wordt aangemaakt in de sleutelruimte 'Universiteit'.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Na succesvolle uitvoering van het commando 'Create table' wordt de tabel 'Student' aangemaakt in de keyspace 'University' met de kolommen RollNo, Name en dept. RollNo is de primaire sleutel. RollNo is tevens een partitiesleutel, waardoor elke student een aparte partitie van รฉรฉn rij inneemt.
Cassandra Tabel wijzigen
Het commando 'Tabel wijzigen' wordt gebruikt om een โโkolom te verwijderen, een nieuwe kolom toe te voegen, de kolomnaam te wijzigen, het kolomtype te wijzigen en de eigenschap van de tabel te wijzigen.
Syntaxis
Hieronder staat de syntaxis van de opdracht '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;
Elk formulier wordt als een afzonderlijk overzicht uitgegeven. Twee beperkingen zijn momenteel van toepassing. Cassandra Releases: het gegevenstype van een bestaande kolom kan niet langer worden gewijzigd en RENAME werkt alleen op een clusterkolom van de primaire sleutel.
Voorbeeld
Hier is de momentopname van het commando 'Tabel wijzigen' waarmee een nieuwe kolom aan de tabel Student wordt toegevoegd.
ALTER TABLE University.Student ADD Semester int;
Na succesvolle uitvoering van het commando 'Alter Table' wordt een nieuwe kolom 'Semester' met het datatype 'int' toegevoegd aan de tabel Student.
Hier is de schermafbeelding die de bijgewerkte Student-tabel toont.
Cassandra Laat de tafel vallen
De opdracht 'Drop table' verwijdert de opgegeven tabel inclusief alle gegevens uit de sleutelruimte. Voordat u de tabel verwijdert, voert u de opdracht 'Drop' uit.ping de tafel, Cassandra maakt een momentopname van de gegevens en niet van het schema als back-up.
Syntaxis
DROP TABLE IF EXISTS KeyspaceName.TableName;
Voorbeeld
Hier is de momentopname van het uitgevoerde commando 'Drop Table' waarmee tabel Student uit de sleutelruimte 'University' wordt verwijderd.
DROP TABLE University.Student;
Na succesvolle uitvoering van het commando 'Drop Table' wordt tabel Student verwijderd uit de keyspace University.
Hier is de momentopname die de fout laat zien die wordt geretourneerd door de Cassandra wanneer geprobeerd wordt toegang te krijgen tot de studententabel die niet bestaat.
Cassandra Tabel afkappen
Het commando 'Tabel afkappen' verwijdert alle gegevens uit de opgegeven tabel. Voordat u de gegevens afkapt, Cassandra neemt de momentopname van de gegevens als back-up.
Syntaxis
TRUNCATE KeyspaceName.TableName;
Voorbeeld
Er zijn drie records in de tabel Student. Dit zijn de records in de tabel.
Hier is de momentopname van het uitgevoerde commando 'Tabel afkappen' waarmee alle gegevens uit de tabel Student worden verwijderd.
Na succesvolle uitvoering van het commando 'Truncate Table' worden alle gegevens uit de tabel Student verwijderd.
Hier is de momentopname van de databasestatus waarbij er geen records in de tabel Student staan.
De truncate-opdracht vereist dat elk knooppunt bereikbaar is, omdat deze in รฉรฉn keer over het hele cluster wordt uitgevoerd. Als een knooppunt niet beschikbaar is, mislukt de opdracht. Dit is een bewuste beveiliging om te voorkomen dat er onvolledige gegevens achterblijven.
Drop vs Truncate vs Delete in Cassandra
Er zijn drie commando's om gegevens te verwijderen, en het kiezen van het verkeerde commando kan leiden tot het beschadigen van een schema of tot prestatieproblemen.
| commando | Wat het verwijdert | Schema behouden | Kosten |
|---|---|---|---|
| DROP TAFEL | Alle rijen en de tabeldefinitie | Nee | Goedkoop. SSTables worden vastgelegd in snapshots en vervolgens verwijderd. |
| AFKNOPEN | Alle rijen | Ja | Goedkoop, maar vereist dat alle knooppunten actief zijn. Er worden geen grafstenen aangemaakt. |
| VERWIJDEREN | Geselecteerde rijen of kolommen | Ja | Duur op grote schaal. Elke verwijdering laat een bericht achter met de tekst: moet worden overgeslagen tot de verdichting is voltooid. |
De praktische regel is om TRUNCATE te verkiezen boven een bulk-DELETE bij het leegmaken van een hele tabel, omdat duizenden verwijderde rijen elke volgende leesbewerking van die partitie vertragen. Verwijderen op rijniveau wordt behandeld in de volgende sectie. CQL-invoeg-, update- en verwijderfuncties tutorial.








