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