Cassandra CQL-taulukko: esimerkki luomisesta, muokkaamisesta ja katkaisemisesta
⚡ Älykäs yhteenveto
Cassandra Taulukkotoiminnot kattavat luomisen, muuttamisen ja poistamisenpingja sarakeperheiden katkaiseminen CQL:llä. Tällä sivulla selitetään jokainen komento, kolme ensisijaista avainmuotoa, jotka määrittävät datan jakautumisen, sekä rivien ja taulukon poistamisen väliset erot.

Syntaksi Cassandra kyselykieli (CQL) muistuttaa SQL Kieli.
Kuinka luoda taulukko sisään Cassandra
Sarakeperhe sisään Cassandra on samanlainen kuin RDBMS-taulukko. Sarakeperhettä käytetään tietojen tallentamiseen.
Komentoa "Luo taulukko" käytetään sarakeperheen luomiseen Cassandra.
Syntaksi
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Ensisijainen avain: On olemassa kahdenlaisia ensisijainen avain.
- Yksi ensisijainen avain: Yksi ensisijainen avain määritetään seuraavalla syntaksilla.
Syntaksi
PRIMARY KEY (ColumnName)
Yhdessä ensisijaisessa avaimessa on vain yksi sarake. Tätä saraketta kutsutaan myös osiointiavaimeksi. Tiedot osioidaan kyseisen sarakkeen perusteella. Tiedot levitetään eri solmuille osioavaimen perusteella.
2. Yhdistetty ensisijainen avain: Yhdistetty ensisijainen avain määritetään seuraavalla syntaksilla.
Syntaksi
PRIMARY KEY (ColumnName1, ColumnName2, ...)
Yllä olevassa syntaksissa SarakkeenNimi1 on osiointiavain ja SarakkeenNimi2 on Clusteravain. Tiedot osioidaan sarakkeenNimi1 perusteella ja tiedot klusteroidaan SarakkeenNimi2 perusteella. Clustering on prosessi, joka lajittelee tiedot osiossa.
3. Yhdistetty osiointiavain: Yhdistetty osiointiavain määritetään seuraavalla syntaksilla.
Syntaksi
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
Yllä olevassa syntaksissa ColumnName1 ja ColumnName2 ovat yhdistettyjä osioavaimia. Data osioidaan sekä ColumnName1- että ColumnName2-sarakkeiden perusteella ja data klusteroidaan ColumnName3-sarakkeen perusteella. Jos yhdellä osiolla on liikaa dataa, käytetään yhdistettyä osioavainta. Yhdistetyn osioavaimen avulla luodaan useita osioita datalle.
- Clausen kanssa
Lauseella määritetään mikä tahansa ominaisuus ja sen arvo määritetylle taulukolle. Esimerkiksi jos haluat pakata Cassandra taulukon tiedot. Voit asettaa pakkausominaisuuden määrittämällä pakkausalgoritmiominaisuuden arvon "With"-lausekkeessa. Sama lauseke asettaa myös CLUSTERING ORDER BY -lausekkeen kääntämään klusterointisarakkeen lajittelusuunnan ja default_time_to_live -lausekkeen vanhenemaan jokaisen rivin automaattisesti.
esimerkki
Tässä on komennon "Create table" suorittaminen, joka luo taulukon nimen "Student" avaintilaan "Yliopisto".
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Kun komennon 'Create table' suorittaminen on onnistunut, avainavaruuteen 'University' luodaan taulukko 'Student' sarakkeilla RollNo, Name ja dept. RollNo on ensisijainen avain. RollNo on myös osioavain, joten jokainen opiskelija käyttää omaa yksirivistä osiota.
Cassandra Vaihtopöytä
Komentoa Muuta taulukkoa käytetään sarakkeen pudotukseen, uuden sarakkeen lisäämiseen, sarakkeen nimen muuttamiseen, sarakkeen tyypin muuttamiseen ja taulukon ominaisuuksien muuttamiseen.
Syntaksi
Seuraava on komennon "Alter Table" syntaksi.
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;
Jokainen lomake annetaan erillisenä lausuntona. Nykyisessä lainsäädännössä on kaksi rajoitusta. Cassandra julkaisut: olemassa olevan sarakkeen tietotyyppiä ei voi enää muuttaa, ja RENAME toimii vain ensisijaisen avaimen klusterointisarakkeessa.
esimerkki
Tässä on tilannekuva komennosta 'Alter Table', joka lisää uuden sarakkeen taulukkoon Opiskelija.
ALTER TABLE University.Student ADD Semester int;
Kun komennon 'Alter Table' on suoritettu onnistuneesti, uusi sarake 'Semester', jossa on 'int'-tietotyyppi, lisätään taulukkoon Student.
Tässä on kuvakaappaus, joka näyttää päivitetyn opiskelijataulukon.
Cassandra Pudota taulukko
Komento 'Pudota taulukko' pudottaa määritetyn taulukon, mukaan lukien kaikki tiedot avainavaruudesta. Ennen pudotustaping pöytä, Cassandra ottaa tilannekuvan tiedoista, ei skeemasta varmuuskopiona.
Syntaksi
DROP TABLE IF EXISTS KeyspaceName.TableName;
esimerkki
Tässä on tilannekuva suoritetusta komennosta 'Drop Table', joka pudottaa taulukon opiskelijan avaintilasta 'Yliopisto'.
DROP TABLE University.Student;
Kun komento "Poista taulukko" on suoritettu onnistuneesti, taulukko Student pudotetaan avaintilasta University.
Tässä on tilannekuva, joka näyttää virheen, jonka palauttaa Cassandra kun yritettiin käyttää opiskelijataulukkoa, jota ei ole olemassa.
Cassandra Katkaise taulukko
Komento "Truncate table" poistaa kaikki tiedot määritetystä taulukosta. Ennen tietojen katkaisemista, Cassandra ottaa tilannekuvan tiedoista varmuuskopioksi.
Syntaksi
TRUNCATE KeyspaceName.TableName;
esimerkki
Taulukossa on kolme tietuetta Opiskelija. Nämä ovat taulukon tietueita.
Tässä on tilannekuva suoritetusta komennosta "Truncate table", joka poistaa kaikki tiedot taulukosta Opiskelija.
Kun komento "Truncate Table" on suoritettu onnistuneesti, kaikki tiedot poistetaan taulukosta Opiskelija.
Tässä on tilannekuva tietokannan tilasta, jossa ei ole tietueita taulukossa Opiskelija.
Katkaisu edellyttää, että jokainen solmu on tavoitettavissa, koska se suoritetaan koko klusterissa samanaikaisesti. Jos jokin solmu on alhaalla, lause epäonnistuu, mikä on tarkoituksellinen suojatoimi osittaisen datan jäämisen estämiseksi.
Pudota vs. katkaise vs. poista Cassandra
Kolme komentoa poistaa tietoja, ja väärän komennon valitseminen joko tuhoaa skeeman tai jättää jälkeensä suorituskykyongelman.
| Komento | Mitä se poistaa | Kaava säilytetty | Hinta |
|---|---|---|---|
| PUDOTA PÖYTÄ | Kaikki rivit ja taulukon määritelmä | Ei | Halpa. SSTables-taulukoista otetaan snapshot-tiedosto ja ne hylätään. |
| KATKAISTA | Kaikki rivit | Kyllä | Halpa, mutta vaatii jokaisen solmun ylhäällä. Hautakiviä ei synny. |
| POISTA | Valitut rivit tai sarakkeet | Kyllä | Kallis mittakaavassa. Jokainen poisto luo hautakiven, jossa lukee "on ohitettava, kunnes tiivistys on tehty". |
Käytännön sääntönä on suosia TRUNCATE-komentoa joukkopoiston sijaan koko taulukon tyhjentämisessä, koska tuhannet hautakivet hidastavat kyseisen osion jokaista seuraavaa lukua. Rivitason poistoa käsitellään kohdassa CQL-lisäys, -päivitys ja -poisto opetusohjelma.








