Bazy rodziny kolumn. Cassandra. - Instytut Informatyki Teoretycznej i

Transkrypt

Bazy rodziny kolumn. Cassandra. - Instytut Informatyki Teoretycznej i
Bazy rodziny kolumn. Cassandra.
Bazy rodziny kolumn. Cassandra.
Technologie Zarządzania Treścią
dr inż. Robert Perliński
[email protected]
Politechnika Częstochowska
Instytut Informatyki Teoretycznej i Stosowanej
14 stycznia 2017
1/45
Plan prezentacji
1
Bazy rodziny kolumn
Google BigTable
Indeksowanie w bazach rodziny kolumn
Bazy relacyjne a bazy rodziny kolumn
2
Cassandra
Najważniejsze cechy
Zapytania - język CQL
Instalacja
DataStax DevCenter
cqlsh
3
Źródła
Bazy rodziny kolumn. Cassandra.
2/45
Bazy rodziny kolumn
Bazy danych rodziny kolumn
(klasyfikacja według serwisu db-engines.com):
Cassandra (7 ↑ )
HBase (15)
Accumulo (58 ↓)
Hypertable (148 ↓)
Google Cloud Bigtable (175 ↓)
Sqrrl (multimodel, 180)
ScyllaDB (193 ↑)
MapR-DB (multimodel, 208)
8 bazy danych rodziny kolumn na 310 wszystkich (to jest niecałe 3%)
Bazy rodziny kolumn. Cassandra.
3/45
Popularność baz danych rodziny kolumn
Ranking ze strony http://db-engines.com/en/ranking_trend/wide+column+store
Bazy rodziny kolumn. Cassandra.
4/45
Statystyki dla modeli danych - liczba DBMS
Ranking ze strony http://db-engines.com/en/ranking_categories
Bazy rodziny kolumn. Cassandra.
5/45
Statystyki dla modeli danych - udział w rynku
Ranking ze strony http://db-engines.com/en/ranking_categories
Bazy rodziny kolumn. Cassandra.
6/45
Bardzo duże bazy danych
Czy milion rekordów w tabeli to duża baza?
Bardzo duże bazy danych (ang. very large database - VLDB) to bazy
zawierające miliardy rekordów i dziesiątki tysięcy kolumn.
Przeskalowanie bazy relacyjnej do takiej ilości danych jest bardzo kosztowne.
Bazy klucz-wartość mają funkcjonalności użyteczne przy bazach tej
wielkości, ale brakuje wsparcia dla organizowania wielu kolumn i wspólnego
przechowywania często wykorzystywanych danych.
Bazy dokumentów mogą się skalować do poziomu tak dużych baz, ale
brakuje im funkcjonalności przydatnej w takiej skali, np. języka zapytań
podobnego do SQL.
Firmy jak Google, Facebook, Amazon czy Yahoo! muszą sobie radzić z bardzo
dużymi bazami danych. Na potrzeby tych firm powstały bazy rodziny-kolumn.
Jest to model dla bardzo dużych baz NoSQL.
Bazy rodziny kolumn. Cassandra.
7/45
Początki z Google BigTable
Główne funkcjonalności Google BigTable:
Programiści mają dynamiczną kontrolę nad kolumnami.
Wartości danych są indeksowane za pomocą identyfikatora wiersza,
nazwy kolumny i stempla czasowego.
Projektanci danych i programiści mają kontrolę nad lokalizacją
danych.
Odczyty i zapisy wiersza są atomowe.
W bazie przechowywane są posortowane rekordy.
Bazy rodziny kolumn. Cassandra.
8/45
Rekord w bazie rodziny kolumn
Bazy rodziny kolumn. Cassandra.
9/45
Rekord w bazie rodziny kolumn
Rekordy są złożone z kilku rodzin kolumn.
Rodziny kolumn składają się ze spokrewnionych kolumn.
Rodzina kolumn adresu może zawierać: ulicę, miasto, województwo,
kod pocztowy, kraj.
Element danych jest indeksowany na podstawie rekordu, nazwy
kolumny i stempla czasowego.
Rodziny kolumn są zorganizowane w grupy elementów danych często
wykorzystywanych wspólnie.
Rodziny kolumn dla jednego wiersza mogą ale nie muszą znajdować
się blisko siebie na dysku.
Kolumny z jednej rodziny kolumn są przechowywane zawsze razem.
Bazy rodziny kolumn. Cassandra.
10/45
Struktury danych w Google BigTable
Projektant definiuje rodziny kolumn przed implementacją bazy.
Programiści mogą dynamicznie dodawać kolumny do rodzin kolumn.
Nie trzeba aktualizować schematu.
Z punktu widzenia programisty:
rodziny kolumn są analogiczne do tabel relacyjnych,
kolumny funkcjonują jak pary klucz-wartość.
Wykorzystanie rodziny kolumn (wcześniej zdefiniowanej) i kolumn
dynamicznych pozwala definiować ogólne struktury ale nie tracimy na
elastyczności. Zawsze można dodać atrybut do zdefiniowanej
wcześniej rodziny.
Bazy rodziny kolumn. Cassandra.
11/45
Indeksowanie w bazie BigTable
Wartością są indeksowane za pomocą identyfikatora wiersza, kolumny i
stempla czasowego.
Może istnieć wiele wersji wartości kolumny.
Przy pobieraniu wartości kolumny domyślnie zwracana jest najnowsza
wartość.
Identyfikator wiersza odpowiada kluczowi głównemu z baz relacyjnych.
Unikatowo identyfikuje wiersz.
Bazy rodziny kolumn. Cassandra.
12/45
Indeksowanie w bazie BigTable
Jeden wiersz może przechowywać wiele rodzin kolumn.
Bazy relacyjne przechowują wszystkie dane wiersza razem.
Bazy rodziny kolumn razem przechowują tylko części wiersza.
Nazwa kolumny identyfikuje ją unikatowo.
Stemple czasowe porządkują różne wersje wartości.
Zapisywanie nowych wartości nie usuwa starych.
Przechowywane są wszystkie wersje, każda z innym stemplem
czasowym. Dzięki temu zawsze można określić najnowszą wartość.
Bazy rodziny kolumn. Cassandra.
13/45
Bazy relacyjne, rodziny kolumn i kolumnowe
Często przechowywanie razem wszystkich atrybutów adresu jest
sensowne ale nie zawsze.
Systemy analizy biznesowej mogą przeszukiwać tylko po jednym z
tych atrybutów, np. po województwie.
W takim przypadku lepiej sprawdzą się bazy kolumnowe - dane
przechowywane są w kolumnach.
Bazy relacyjne przechowują razem wszystkie dane w wierszu.
Bazy rodziny kolumn przechowują razem dane o rodzinie kolumn.
Bazy kolumnowe przechowują razem kolumny z danymi.
Zależnie od potrzeb wybieramy odpowiedni model przechowywania
danych.
Bazy rodziny kolumn. Cassandra.
14/45
Bazy relacyjne, rodziny kolumn i kolumnowe
Bazy rodziny kolumn. Cassandra.
15/45
Dodatkowe informacje o Google BigTable
Wszystkie operacje odczytu lub zapisu są atomowe - albo odczyta się
wszystkie potrzebne kolumny albo żadnej, analogicznie zapis.
Wiersze przechowywane w BigTable są posortowane. Łatwo jest
operować na zakresach.
Tabele są sortowane tylko w jeden sposób - decyzja jak jest bardzo
ważna.
Obecnie w BigTable istnieje wsparcie dla wielu indeksów.
Baza była pomyślana tak, aby skalowała się do danych liczonych w
petabajtach.
Miała działać na setkach rodzin kolumn, dziesiątkach tysięcy kolumn i
miliardach wierszy.
Jest dobrym przykładem rodziny kolumn ale jest używana tylko w
Google, nie jest publicznie dostępna.
Bazy rodziny kolumn. Cassandra.
16/45
Bazy rodziny kolumn a bazy relacyjne
Bazy rodziny kolumn posiadają pewne funkcjonalności podobne do tych z
baz relacyjnych choć różnią się implementacją.
Bazy relacyjne i rodziny kolumn używają unikatowych identyfikatorów
wierszy.
W bazach rodziny kolumn są to klucze wierszy, w bazach relacyjnych są to
klucze główne.
Klucze te w obu typach baz są indeksowane co pozwala na szybkie
wyszukiwanie.
Oba typy baz można postrzegać jako przechowujące dane tabelaryczne.
Bazy rodziny kolumn używają koncepcji map (słowniki, tablice asocjacyjne).
Klucz kolumny mapuje nazwę kolumny na wartość kolumny.
Rodzina kolumn to mapa (tablica asocjacyjna) wskazująca na mapę (tablicę
asocjacyjną) kolumn.
Jest to taka mapa map.
Bazy rodziny kolumn. Cassandra.
17/45
Bazy rodziny kolumn a bazy relacyjne
Bazy rodziny kolumn. Cassandra.
18/45
Bazy rodziny kolumn a bazy relacyjne
Kolumny typowane, transakcje, złączenia i podzapytania
Bazy rodziny kolumn nie wspierają kolumn typowanych. Kolumny
przechowują po prostu serię bajtów, które aplikacja interpretuje jak
chce.
Nie ma wsparcia transakcji dla wielu wierszy. Są tylko operacje
atomowe na jednym wierszu.
Jeśli chcemy mieć pewność transakcji musimy umieścić dane w
jednym wierszu!
Nie stosujemy złączeń i podzapytań ponieważ rodziny kolumn
promują denormalizację.
Bazy rodziny kolumn. Cassandra.
19/45
Baza danych Cassandra
http://cassandra.apache.org/
Cassandra:
rozproszony system zarządzania bazą danych,
obsługuje duże zbiory danych rozłożonych na wielu serwerach,
zapewnia dużą dostępność bez występowania pojedynczego punktu
powodującego utratę danych,
zapewnia dobre wsparcie dla pracy w klastrach zbudowanych z
wykorzystaniem różnych centrów danych,
dostarcza mechanizmy asynchronicznej replikacji bez serwera
głównego, co pozwala na niskie czasy oczekiwania na dane dla
wszystkich klientów.
Bazy rodziny kolumn. Cassandra.
20/45
Baza danych Cassandra
Cassandra:
łatwa w wykorzystaniu i skalowaniu,
zawiera swój własny język zapytań,
napisana w języku Java,
darmowa, open-source,
dostępna na wiele platform, na licencji Apache License 2.0,
rozwijana przez Apache Software Fundation,
obecnia wersja to 3.9, wydana 29.09.2016.
Bazy rodziny kolumn. Cassandra.
21/45
Baza danych Cassandra
Cassandra:
kładzie duży nacisk na wydajność,
w zakresie skalowalności Cassandra nie ma sobie równych,
w testach osiągnęła największą przepustowość (wydajność) dla
maksymalnej liczby węzłów we wszystkich testach ale kosztem
dłuższego czasu oczekiwania na zapis i odczyt.
Bazy rodziny kolumn. Cassandra.
22/45
Skalowalność bazy Cassandra
Cassandra charakteryzuje się liniową skalowalnością.
Można łatwo zwiększyć przepustowość po prostu dodając nowe
serwery.
Bazy rodziny kolumn. Cassandra.
23/45
Historia baza danych Cassandra
Cassandra:
Pierwsi twórcy (Avinash Lakshman, Prashant Malik) zainicjowali projekt w
ramach Facebooka.
W 2008 Cassandra jako projekt open-source pojawia się na Google code.
W marcu 2009 przechodzi do Apache jak projekt rozwojowy.
Od 2010 staje się pełnym, dojrzałym projektem w ramach Apache Software
Foundation.
Nazwa Cassandra od mitologicznej prorokini ma mieć odniesienie do firmy
Oracle...
Bazy rodziny kolumn. Cassandra.
24/45
Cassandra - najważniejsze cechy
Rozproszona - każdy węzeł w klastrze odgrywa taką samą rolę. Nie ma
jednego punktu, którego utrata powodowałaby stratę danych. Dane są
rozproszone w klastrze (każdy węzeł posiada inne dane). Nie ma serwera
nadrzędnego, każdy węzeł może odpowiadać na każde żądanie.
Wspiera replikację i replikację na wielu centrach danych. Pozwala na
konfigurowanie strategii dokonywania replikacji. Jest zaprojektowana jako
system rozproszony, wdrażany i dostarczany na wielu węzłach w wielu
centrach danych. Kluczowymi cechami rozproszonej architektury Cassandry
są specjalnie dostosowane:
wdrażanie na wielu centrach danych,
obsługa nadmiarowości (danych nadmiarowych, redundancji),
praca awaryjna (zabezpieczenie poprzez serwery dodatkowe),
odzyskiwanie danych po wypadkach/katastrofach.
Skalowalność. Wydajność zapisu i odczytu zwiększa się liniowo w ramach
dodawania nowych węzłów do klastra, bez przestojów czy przerw w pracy
aplikacji.
Bazy rodziny kolumn. Cassandra.
25/45
Cassandra - najważniejsze cechy
Odporność na uszkodzenia. Dane są automatycznie replikowane na wiele
węzłów co pozwala na zwiększenie ich bezpieczeństwa. Uszkodzone węzły
można wymienić bez przestojów w pracy bazy danych.
Konfigurowalna spójność. Zapis i odczyt oferują konfigurowalny poziom
spójności; od ”zapis zawsze wykonany” do ”blokuj wszystkie repliki aby były
do odczytu” z różnymi wartościami kworum pośrodku.
Wsparcie dla MapReduce. Cassandra jest zintegrowana z Hadoop ze
wsparciem dla MapReduce. Zawiera również wsparcie dla Apache Pig i
Apache Hive.
Własny język zapytań. Cassandra wprowadza język Cassandra Query
Language (CQL). CQL dostarcza prosty intefrejs dostępu do bazy Cassandra.
Jest to alternatywa do tradycyjnego SLQa (bardzo do niego podobna). CQL
tworzy warstwę abstrakcji, która ukrywa szczegóły implementacji struktury i
dostarcza natywną składnię dla kolekcji i innych powszechnych kodowań.
Bazy rodziny kolumn. Cassandra.
26/45
Grupa powiązanych projektów Apache
Apache Cassandra - ...
Apache Hadoop - darmowy (open-source) szablon aplikacji dla rozproszonego
przechowywania i rozproszonego przetwarzania bardzo dużych zbiorów danych na
klastrach danych towarowych (wiele klastrów działających w technologiach open-source
można połączyć w celu budowy większego zbioru danych dla np. eksploracji). Wszystkie
moduły Hadoop mają podstawowe założenie, że uszkodznia węzłów są czymś
powszechnym i powinny być automatycznie obsługiwane przez framework.
Apache Hive - hurtownia danych zbudowana na bazie Hadoop, dostarcza statystyki i
podsumowania, zapytania analityczne.
Apache Pig - wysokopoziomowa platforma do tworzenia programów uruchamianych na
Hadoop w języku programowania Pig Latin. Napisane w Pig zadania można uruchamiać
w MapReduce, Apache Tez, Apache Spark.
Apache Spark - darmowy (open-source) szablon aplikacji do perowadzenia obliczeń
działający w klastrach. Dostarcza interfejs do programowania na klastrze z wbudowanymi
mechanizmami zrównoleglania i obsługi uszkodzeń węzłów.
Apache Tez (w fazie powstawania) - szablon aplikacji mający zapewnić przetwarzanie
skomplikowanych zadań wykonywanych w środowisku rozproszonym mających strukturę
DAG (acykliczny graf skierowany) w jednym zadaniu. Zbudowany na bazie Hadoop,
wykorzystujący MapReduce.
Bazy rodziny kolumn. Cassandra.
27/45
Cassandra - sterowniki
Cassandra ma sterowniki dostępne z różnych języków programowania:
Java (6 różnych sterowników),
Python
Ruby
C#/.NET (3 sterowniki)
Node.js (2 sterowniki)
PHP (4 sterowniki)
C++ (2 sterowniki)
Scala (3 sterowniki)
Clojure (3 sterowniki)
Erlang (2 sterowniki)
Go (3 sterowniki)
Haskel
Rust
Bazy rodziny kolumn. Cassandra.
28/45
Zapytania w Cassandra
Tworzenie przestrzeni kluczy, rodziny kolumn, dodawanie i pobieranie danych:
CREATE KEYSPACE MyKeySpace
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };
USE MyKeySpace;
CREATE COLUMNFAMILY MyColumns (id text, Last text, First text, PRIMARY KEY(id));
INSERT INTO MyColumns (id, Last, First) VALUES ('1', 'Doe', 'John');
SELECT * FROM MyColumns;
Wynik:
id | first | last
----+-------+-----1 | John | Doe
(1 rows)
Bazy rodziny kolumn. Cassandra.
29/45
Model danych w Cassandra I
Cassandra jest połączeniem bazy kucz-wartość i bazy zorientowanej na
tabele.
Model danych jest podzielony na magazyn wierszy, w których można
dostroić spójność.
Wiersze są zorganizowane w tabele.
Pierwszym komponentem klucza głównego tabeli jest klucz partycjonowania.
Wewnątrz partycji wiersze są grupowane poprzez pozostałe kolumny klucza.
Inne kolumny mogą być indeksowane niezależnie od klucza głównego.
Tabele mogą być tworzone, usuwane i zmieniane w czasie działania bazy bez
blokowania aktualizacji i zapytań.
Cassandra nie pozwala na tworzenie złączeń czy podzapytań.
Cassandra bardziej podkreśla denormalizację poprzez takie funkcjonalności
jak kolekcje.
Bazy rodziny kolumn. Cassandra.
30/45
Model danych w Cassandra II
Rodzina kolumn (nazywana tabelą od CQL 3) przypomina table w RDBMS.
Rodziny kolumn zawierają wiersze i kolumny.
Każdy wiersz jest jednoznacznie identyfikowany przez klucz wiersza.
Każdy wiersz ma wiele kolumn, z których każda ma: nazwę, wartość i punkt
czasowy.
Inaczej niż tabele w RDBMS, różne wiersze w tej samej rodzinie kolumn nie
muszą dzielić tego samego zbioru kolumn.
Kolumna może być dodana do jednego lub wielu wierszy w dowolnej chwili.
Bazy rodziny kolumn. Cassandra.
31/45
Model danych w Cassandra III
W Cassandra każdy klucz jest związany z wartością, która jest obiektem.
Każdy klucz ma wartości i kolumny.
Kolumny są powiązane w grupy nazywane rodzinami kolumn.
Każdy klucz identyfikuje wiersz o zmiennej liczbie elementów.
Rodziny kolumn można rozważać jak tabele.
Tabela w Cassandra jest rozproszoną wielowymiarową mapą indeksowaną
kluczami.
Aplikacje mogą określić kolejność sortowania kolumn wewnątrz rodziny
kolumn albo super rodziny kolumn.
Bazy rodziny kolumn. Cassandra.
32/45
Wybrani użytkownicy bazy Cassandra
Apple, baza działa na 100‘000 węzłów.
AppScale, używ Cassandry do obsługi zaplecza dla aplikacji Google
App Engine.
BlackRock, używa Cassandry w swojej platformie Alladin do
zarządzania inwestycjami.
Facebook, używał Cassandry do obsługi Inbox Search na ponad 200
węzłach.
IBM prowadził badania nad budową skalowalnego systemu do obsługi
poczty elektronicznej bazującego na bazie Cassandra.
PostRand używa Cassandry jako bazy danych do swojego zaplecza.
Twitter, używa Cassandry do mniejszych projektów nie wymagających
używania globalnych danych.
Wikimedia, używa Cassandry do przechowywania danych związanych
z ich publicznym API.
Bazy rodziny kolumn. Cassandra.
33/45
Cassandra - wydawanie kolejnych wersji
Model tworzenia oprogramowania Cassandra:
Nowe wersje są wydawane w cyklu miesięcznym (model Tick-Tock).
Parzyste numery wersji zawierają nowe cechy, funkcjonalności, np. 3.2.
Nieparzyste numery zawierają tylko poprawki błędów, np. 3.3.
Poprawki błędów krytycznych są wydawanie niezależnie od tego
modelu.
Obecna najnowsza wersja to 3.9.
Bazy rodziny kolumn. Cassandra.
34/45
Cassandra - instalacja I
Cassandry nie ma w oficjalnych pakietach ani Debiana ani Ubuntu.
Najprościej ściągnąć najnowszą wersję, rozpakować i uruchomić.
Instalacja:
ściągamy najnowszą wersję ze strony:
http://cassandra.apache.org/download/
wybieramy jedną z lokalizacji na stronie:
http://www.apache.org/dyn/closer.lua/cassandra/3.9/
apache-cassandra-3.9-bin.tar.gz
pobieramy, rozpakowujemy i uruchamiamy:
./bin/cassandra
wyłączanie serwera i sprzątanie (prosta opcja):
uruchamianie: ./bin/cassandra
Ctrl+C
ps -aux | grep cassandra
kill -9 17424
Bazy rodziny kolumn. Cassandra.
35/45
Cassandra - instalacja II
wyłączanie serwera i sprzątanie (lepsza opcja):
uruchamianie: ./bin/cassandra -p numer-procesu
cat ’numer-procesu’| xargs kill
Kurs online języka CQL i Cassandry:
podzielony na 70 części (7 razy po 10),
całość trwa 8 godz.
https://academy.datastax.com/courses/
ds201-cassandra-core-concepts/introduction
Bazy rodziny kolumn. Cassandra.
36/45
DataStax DevCenter - instalacja
Instalacja:
Rejestrujemy się i pobieramy DataStax DevCenter ze strony:
https://academy.datastax.com/downloads/ops-center#devCenter
Pobieramy i rozpakowujemy plik:
DevCenter-1.6.0-linux-gtk-x86_64.tar.gz (90 MB).
Uruchamiamy ./DevCenter z głównego katalogu narzędzia.
Bazy rodziny kolumn. Cassandra.
37/45
DataStax DevCenter - okno główne
Bazy rodziny kolumn. Cassandra.
38/45
DataStax DevCenter - naważniejsza funkcjonalność
Najważniejsza funkcjonalność:
Narzędzie graficzne, można dużo wyklikać.
Tworzymy i zarządzamy listą połączeń.
Mamy dostępne drzewo obiektów w kazdej rodzinie kolumn (tabele, typy
użytkownika, funkcje użytkownika, agregacje stworzone przez użytkownika,
zmaterializowane perspektywy).
Jest przegląd wszystkich obiektów systemówych (taki słownik danych).
Można pisać skrypty, zapisywać je, zarządzać nimi, wybiera się połączenie i
rodzinę kolumn, w której działamy.
Możliwość uruchamiania całości skryptu albo tylko wybranego polecenia
(zaznaczone linie).
Jest podpowiadanie składni, analiza blędów i podpowiadanie rozwiązań.
Jest przeglądanie zwróconych wyników z możliwością eksportu do CSV albo
skryptu CQL.
Bazy rodziny kolumn. Cassandra.
39/45
cqlsh
cqlsh - Cassandra Query Language Shell:
dostarczane razem z Cassandrą,
uruchamianie: ./bin/cqlsh
pozwala na zarządzanie bazą poprzez język CQL, udostępnia kilka
poleceń systemowych,
zawiera dość dobrą pomoc: polecenie HELP (ogólne i szczegółowe do
każdego polecenia),
uczymy się języka CQL:
cqlsh:system> SHOW VERSION
cqlsh> USE mpk;
cqlsh:mpk> INSERT INTO osoba (id, imie, nazwisko)
VALUES(2,’Robert’,’Nowak’);
cqlsh:mpk> SELECT * FROM osoba;
Bazy rodziny kolumn. Cassandra.
40/45
cqlsh - dostępne polecenia, HELP
Documented shell commands:
===========================
CAPTURE CLS
COPY DESCRIBE
CLEAR
CONSISTENCY DESC EXIT
CQL help topics:
================
AGGREGATES
ALTER_KEYSPACE
ALTER_MATERIALIZED_VIEW
ALTER_TABLE
ALTER_TYPE
ALTER_USER
APPLY
ASCII
BATCH
BEGIN
BLOB
BOOLEAN
COUNTER
CREATE_AGGREGATE
CREATE_COLUMNFAMILY
CREATE_FUNCTION
CREATE_INDEX
Bazy rodziny kolumn. Cassandra.
EXPAND
HELP
LOGIN
PAGING
CREATE_KEYSPACE
CREATE_MATERIALIZED_VIEW
CREATE_ROLE
CREATE_TABLE
CREATE_TRIGGER
CREATE_TYPE
CREATE_USER
DATE
DELETE
DROP_AGGREGATE
DROP_COLUMNFAMILY
DROP_FUNCTION
DROP_INDEX
DROP_KEYSPACE
DROP_MATERIALIZED_VIEW
DROP_ROLE
DROP_TABLE
SERIAL
SHOW
SOURCE
TRACING
DROP_TRIGGER
DROP_TYPE
DROP_USER
FUNCTIONS
GRANT
INSERT
INSERT_JSON
INT
JSON
KEYWORDS
LIST_PERMISSIONS
LIST_ROLES
LIST_USERS
PERMISSIONS
REVOKE
SELECT
SELECT_JSON
UNICODE
TEXT
TIME
TIMESTAMP
TRUNCATE
TYPES
UPDATE
USE
UUID
41/45
cqlsh - wybrane polecenia, DESCRIBE
DESC[RIBE] KEYSPACES - lista przestrzeni kluczy w naszej bazie,
DESC[RIBE] [FULL] SCHEMA - informacje o naszym schemacie, z opcją FULL
dodatkowo obiekty systemowe,
DESC[RIBE] tables - lista wszystkich tabel w naszej bazie z podziałem na
przestrzenie kluczy,
DESC[RIBE] TABLE osoby - informacje o tabeli osoby.
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
DESCRIBE
KEYSPACES
KEYSPACE [<keyspacename>]
TABLES
TABLE [<keyspace>.]<tablename>
INDEX <indexname>
MATERIALIZED VIEW <viewname>
CLUSTER
[FULL] SCHEMA
TYPES
TYPE [<keyspace>.]<type>
FUNCTIONS
FUNCTION [<keyspace>.]<function>
AGGREGATES
AGGREGATE [<keyspace>.]<aggregate>
<objname>
Bazy rodziny kolumn. Cassandra.
42/45
cqlsh - wybrane polecenia, SHOW i inne
Polecenie SHOW:
SHOW VERSION - informacje o wersjach: cqlsh, Cassandry, CQLa i protokołu.
SHOW HOST - informacje o klastrze, do którego jesteśmy podłączeni.
SHOW SESSION <sessionid> - pokazuje informacje o sesji, którą chcemy śledzić.
Inne:
HELP [<topis>] - pomoc ogólna i tematyczna.
CONSISTENCY [<level>] wyświetla poziom spójności albo ustala taki, jak podano.
CLEAR/CLS - czyści ekran.
COPY - import/eksport danych do/z tabel z/do plików CSV.
LOGIN <username> (<password>) - zmienia dane użytkownika bez konieczności
resetowania serwera.
EXIT/QUIT - wyłącza cqlsh.
Bazy rodziny kolumn. Cassandra.
43/45
DataStax Enterprise - instalacja
Rejestrujemy się i pobieramy DataStax DevCenter ze strony:
https://docs.datastax.com/en/developer/devcenter/doc/
index.html
Pobieramy i uruchamiamy plik
DataStaxEnterprise-5.0.4-linux-x64-installer (790 MB),
najlepiej jeśli posiadamy prawa administratora, bo pewne usługi będą
się uruchamaić jako systemowe w tle.
Zawiera wbudowaną Cassandrę i wiele innych narzędzie z rodziny
Hadoop.
Bazy rodziny kolumn. Cassandra.
44/45
Źródła
https://www.g2crowd.com/press-release/
best-nosql-databases-fall-2015/
https://en.wikipedia.org/wiki/Apache_Cassandra
http://cassandra.apache.org/doc/latest/
Bazy rodziny kolumn. Cassandra.
45/45

Podobne dokumenty