Cassandra Tabela CQL: przykład tworzenia, modyfikowania i skracania
⚡ Inteligentne podsumowanie
Cassandra Operacje na tabelach obejmują tworzenie, modyfikowanie i usuwaniepingoraz obcinanie rodzin kolumn za pomocą CQL. Ta strona wyjaśnia każde polecenie, trzy formy klucza podstawowego, które decydują o dystrybucji danych, oraz różnice między usuwaniem wierszy a usuwaniem tabeli.

Składnia Cassandra język zapytań (CQL) przypomina SQL język.
Jak utworzyć tabelę w Cassandra
Rodzina kolumn w Cassandra jest podobny do tabeli RDBMS. Rodzina kolumn służy do przechowywania danych.
Polecenie „Utwórz tabelę” służy do tworzenia rodziny kolumn w programie Cassandra.
Składnia
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Klucz podstawowy: Istnieją dwa typy klucz podstawowy.
- Pojedynczy klucz podstawowy: Pojedynczy klucz podstawowy określa się za pomocą następującej składni.
Składnia
PRIMARY KEY (ColumnName)
W pojedynczym kluczu podstawowym znajduje się tylko jedna kolumna. Ta kolumna jest również nazywana kluczem partycjonowania. Dane są partycjonowane na podstawie tej kolumny. Dane są rozmieszczane w różnych węzłach na podstawie klucza partycji.
2. Złożony klucz podstawowy: Klucz podstawowy złożony określa się za pomocą następującej składni.
Składnia
PRIMARY KEY (ColumnName1, ColumnName2, ...)
W powyższej składni nazwa_kolumny1 jest kluczem partycjonowania, a nazwa_kolumny2 Clusterklucz. Dane zostaną podzielone na podstawie ColumnName1, a dane zostaną pogrupowane na podstawie ColumnName2. Clustering to proces sortujący dane na partycji.
3. Klucz partycjonowania złożonego: Klucz partycjonowania złożonego określa się za pomocą następującej składni.
Składnia
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
W powyższej składni, ColumnName1 i ColumnName2 to złożony klucz partycji. Dane zostaną podzielone na podstawie obu kolumn: ColumnName1 i ColumnName2, a dane zostaną pogrupowane na podstawie ColumnName3. Jeśli w jednej partycji znajduje się zbyt dużo danych, używany jest złożony klucz partycjonowania. Złożony klucz partycjonowania służy do tworzenia wielu partycji dla danych.
- Z klauzulą
„Z klauzulą” służy do określenia dowolnej właściwości i jej wartości dla definiowanej tabeli. Na przykład, jeśli chcesz skompresować Cassandra Dane tabeli. Możesz ustawić właściwość kompresji, określając wartość właściwości algorytmu kompresji w klauzuli „With”. Ta sama klauzula ustawia również CLUSTERING ORDER BY, aby odwrócić kierunek sortowania kolumny klastrowania, oraz default_time_to_live, aby automatycznie wygasał w każdym wierszu.
Przykład
Oto wykonanie polecenia „Utwórz tabelę”, które utworzy tabelę o nazwie „Student” w przestrzeni klawiszy „Uniwersytet”.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Po pomyślnym wykonaniu polecenia „Utwórz tabelę” tabela „Student” zostanie utworzona w przestrzeni kluczy „Uniwersytet” z kolumnami „RollNo”, „Nazwa” i „Dział”. „RollNo” jest kluczem podstawowym. „RollNo” jest również kluczem partycji, więc każdy student zajmuje osobną partycję jednowierszową.
Cassandra Zmień tabelę
Polecenie „Zmień tabelę” służy do usuwania kolumny, dodawania nowej kolumny, zmiany nazwy kolumny, zmiany typu kolumny i zmiany właściwości tabeli.
Składnia
Poniżej znajduje się składnia polecenia „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żdy formularz jest wydawany jako osobne oświadczenie. W obecnej sytuacji obowiązują dwa ograniczenia. Cassandra wersje: typu danych istniejącej kolumny nie można już zmienić, a RENAME działa tylko na kolumnie klastrującej klucza podstawowego.
Przykład
Oto migawka polecenia „Zmień tabelę”, które doda nową kolumnę w tabeli Student.
ALTER TABLE University.Student ADD Semester int;
Po pomyślnym wykonaniu polecenia „Alter Table” do tabeli Student zostanie dodana nowa kolumna „Semester” z typem danych „int”.
Oto zrzut ekranu pokazujący zaktualizowaną tabelę Studentów.
Cassandra Upuść tabelę
Polecenie „Usuń tabelę” usuwa wskazaną tabelę wraz ze wszystkimi danymi z przestrzeni kluczy. Przed usunięciemping stół, Cassandra wykonuje migawkę danych, a nie schematu jako kopię zapasową.
Składnia
DROP TABLE IF EXISTS KeyspaceName.TableName;
Przykład
Oto migawka wykonanego polecenia „Upuść tabelę”, które usunie tabelę Student z przestrzeni klawiszy „Uniwersytet”.
DROP TABLE University.Student;
Po pomyślnym wykonaniu polecenia „Upuść tabelę”, tabela Student zostanie usunięta z przestrzeni kluczy Uniwersytet.
Oto migawka pokazująca błąd zwrócony przez plik Cassandra przy próbie uzyskania dostępu do tabeli Studenta, która nie istnieje.
Cassandra Obetnij tabelę
Polecenie „Obetnij tabelę” usuwa wszystkie dane z określonej tabeli. Przed obcięciem danych Cassandra wykonuje migawkę danych jako kopię zapasową.
Składnia
TRUNCATE KeyspaceName.TableName;
Przykład
W tabeli Student znajdują się trzy rekordy. To są zapisy w tabeli.
Oto migawka wykonanego polecenia „Obetnij tabelę”, które usunie wszystkie dane z tabeli Student.
Po pomyślnym wykonaniu polecenia „Obetnij tabelę”, wszystkie dane zostaną usunięte z tabeli Student.
Oto migawka stanu bazy danych, w której nie ma żadnych rekordów w tabeli Student.
Funkcja Truncate wymaga, aby każdy węzeł był osiągalny, ponieważ jest wykonywana w całym klastrze jednocześnie. Jeśli którykolwiek węzeł jest wyłączony, polecenie kończy się niepowodzeniem, co jest celowym zabezpieczeniem przed pozostawieniem częściowych danych.
Upuść, skróć lub usuń Cassandra
Trzy polecenia usuwają dane, a wybranie niewłaściwego albo niszczy schemat, albo pozostawia problem z wydajnością.
| Command | Co usuwa | Schemat zachowany | Koszty: |
|---|---|---|---|
| UPUŚĆ TABELĘ | Wszystkie wiersze i definicja tabeli | Nie | Tanio. Tabele SSTable są tworzone jako migawki, a następnie usuwane. |
| ŚCIĘTY | Wszystkie rzędy | Tak | Tani, ale wymaga każdego węzła. Nie tworzy się żadnych nagrobków. |
| DELETE | Wybrane wiersze lub kolumny | Tak | Kosztowne na dużą skalę. Każde usunięcie powoduje zapisanie nagrobka z informacją „należy pominąć do momentu zagęszczenia”. |
Praktyczną zasadą jest preferowanie operacji TRUNCATE zamiast zbiorczego usuwania podczas czyszczenia całej tabeli, ponieważ tysiące nagrobków spowalniają każdy kolejny odczyt tej partycji. Usuwanie na poziomie wiersza jest omówione w Wstawianie, aktualizowanie i usuwanie CQL poradnik.








