Apache Cassandra - Rozproszony system bazodanowyCQL...

41
Apache Cassandra Rozproszony system bazodanowy Bartosz Szreder Bartosz Szreder Apache Cassandra 1 / 10

Transcript of Apache Cassandra - Rozproszony system bazodanowyCQL...

Page 1: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Apache CassandraRozproszony system bazodanowy

Bartosz Szreder

Bartosz Szreder Apache Cassandra 1 / 10

Page 2: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Co to jest?

Rozproszona baza danych napisana w Java (gossip-based distributed system).NoSQL (CQL – Cassandra Query Language).Open-source na licencji Apache 2.0.Pierwotna wersja opracowana w Facebooku na potrzeby przeszukiwaniaskrzynek odbiorczych.

Bartosz Szreder Apache Cassandra 2 / 10

Page 3: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Co to jest?

Rozproszona baza danych napisana w Java (gossip-based distributed system).

NoSQL (CQL – Cassandra Query Language).Open-source na licencji Apache 2.0.Pierwotna wersja opracowana w Facebooku na potrzeby przeszukiwaniaskrzynek odbiorczych.

Bartosz Szreder Apache Cassandra 2 / 10

Page 4: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Co to jest?

Rozproszona baza danych napisana w Java (gossip-based distributed system).NoSQL (CQL – Cassandra Query Language).

Open-source na licencji Apache 2.0.Pierwotna wersja opracowana w Facebooku na potrzeby przeszukiwaniaskrzynek odbiorczych.

Bartosz Szreder Apache Cassandra 2 / 10

Page 5: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Co to jest?

Rozproszona baza danych napisana w Java (gossip-based distributed system).NoSQL (CQL – Cassandra Query Language).Open-source na licencji Apache 2.0.

Pierwotna wersja opracowana w Facebooku na potrzeby przeszukiwaniaskrzynek odbiorczych.

Bartosz Szreder Apache Cassandra 2 / 10

Page 6: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Co to jest?

Rozproszona baza danych napisana w Java (gossip-based distributed system).NoSQL (CQL – Cassandra Query Language).Open-source na licencji Apache 2.0.Pierwotna wersja opracowana w Facebooku na potrzeby przeszukiwaniaskrzynek odbiorczych.

Bartosz Szreder Apache Cassandra 2 / 10

Page 7: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Czym się chwalą?

Wysoka wydajność (cokolwiek to znaczy).

Liniowa skalowalność.Decentralizacja.Odporność na awarie.

Bartosz Szreder Apache Cassandra 3 / 10

Page 8: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Czym się chwalą?

Wysoka wydajność (cokolwiek to znaczy).Liniowa skalowalność.

Decentralizacja.Odporność na awarie.

Bartosz Szreder Apache Cassandra 3 / 10

Page 9: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Czym się chwalą?

Wysoka wydajność (cokolwiek to znaczy).Liniowa skalowalność.Decentralizacja.

Odporność na awarie.

Bartosz Szreder Apache Cassandra 3 / 10

Page 10: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Czym się chwalą?

Wysoka wydajność (cokolwiek to znaczy).Liniowa skalowalność.Decentralizacja.Odporność na awarie.

Bartosz Szreder Apache Cassandra 3 / 10

Page 11: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Decentralizacja i odporność

Nie ma SPOF. Nie ma żadnej „głównej” repliki.

Awarie węzłów nie zaburzają działania aplikacji.Można dostawiać węzły w locie.Przezroczystość z punktu widzenia aplikacji.

Bartosz Szreder Apache Cassandra 4 / 10

Page 12: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Decentralizacja i odporność

Nie ma SPOF. Nie ma żadnej „głównej” repliki.Awarie węzłów nie zaburzają działania aplikacji.

Można dostawiać węzły w locie.Przezroczystość z punktu widzenia aplikacji.

Bartosz Szreder Apache Cassandra 4 / 10

Page 13: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Decentralizacja i odporność

Nie ma SPOF. Nie ma żadnej „głównej” repliki.Awarie węzłów nie zaburzają działania aplikacji.Można dostawiać węzły w locie.

Przezroczystość z punktu widzenia aplikacji.

Bartosz Szreder Apache Cassandra 4 / 10

Page 14: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Decentralizacja i odporność

Nie ma SPOF. Nie ma żadnej „głównej” repliki.Awarie węzłów nie zaburzają działania aplikacji.Można dostawiać węzły w locie.Przezroczystość z punktu widzenia aplikacji.

Bartosz Szreder Apache Cassandra 4 / 10

Page 15: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Model danych

Wiersze indeksowane kluczem, tabele podzielone na tablety o ciągłychprzedziałach kluczy.

Odczyty z i zapisy do jednego wiersza są atomowe (niezależnie od liczbykolumn).Kolumny są grupowane w tzw. rodziny kolumn, w których ustalamy klucze(de facto indeksy).Wsparcie dla transakcji na poziomie pojedynczego wiersza.. . . ale nie dla „ogólnych” transakcji na zbiorze wierszy (jeszcze? nadal?).

Bartosz Szreder Apache Cassandra 5 / 10

Page 16: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Model danych

Wiersze indeksowane kluczem, tabele podzielone na tablety o ciągłychprzedziałach kluczy.Odczyty z i zapisy do jednego wiersza są atomowe (niezależnie od liczbykolumn).

Kolumny są grupowane w tzw. rodziny kolumn, w których ustalamy klucze(de facto indeksy).Wsparcie dla transakcji na poziomie pojedynczego wiersza.. . . ale nie dla „ogólnych” transakcji na zbiorze wierszy (jeszcze? nadal?).

Bartosz Szreder Apache Cassandra 5 / 10

Page 17: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Model danych

Wiersze indeksowane kluczem, tabele podzielone na tablety o ciągłychprzedziałach kluczy.Odczyty z i zapisy do jednego wiersza są atomowe (niezależnie od liczbykolumn).Kolumny są grupowane w tzw. rodziny kolumn, w których ustalamy klucze(de facto indeksy).

Wsparcie dla transakcji na poziomie pojedynczego wiersza.. . . ale nie dla „ogólnych” transakcji na zbiorze wierszy (jeszcze? nadal?).

Bartosz Szreder Apache Cassandra 5 / 10

Page 18: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Model danych

Wiersze indeksowane kluczem, tabele podzielone na tablety o ciągłychprzedziałach kluczy.Odczyty z i zapisy do jednego wiersza są atomowe (niezależnie od liczbykolumn).Kolumny są grupowane w tzw. rodziny kolumn, w których ustalamy klucze(de facto indeksy).Wsparcie dla transakcji na poziomie pojedynczego wiersza.

. . . ale nie dla „ogólnych” transakcji na zbiorze wierszy (jeszcze? nadal?).

Bartosz Szreder Apache Cassandra 5 / 10

Page 19: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Model danych

Wiersze indeksowane kluczem, tabele podzielone na tablety o ciągłychprzedziałach kluczy.Odczyty z i zapisy do jednego wiersza są atomowe (niezależnie od liczbykolumn).Kolumny są grupowane w tzw. rodziny kolumn, w których ustalamy klucze(de facto indeksy).Wsparcie dla transakcji na poziomie pojedynczego wiersza.. . . ale nie dla „ogólnych” transakcji na zbiorze wierszy (jeszcze? nadal?).

Bartosz Szreder Apache Cassandra 5 / 10

Page 20: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.

CommitLog zapisywany co pewien czas (zależnie od konfigu).Potem zapisy trafiają do Memtable.Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.W wyniku flusha powstaje niemutowalna struktura SSTable.Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 21: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.CommitLog zapisywany co pewien czas (zależnie od konfigu).

Potem zapisy trafiają do Memtable.Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.W wyniku flusha powstaje niemutowalna struktura SSTable.Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 22: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.CommitLog zapisywany co pewien czas (zależnie od konfigu).Potem zapisy trafiają do Memtable.

Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.W wyniku flusha powstaje niemutowalna struktura SSTable.Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 23: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.CommitLog zapisywany co pewien czas (zależnie od konfigu).Potem zapisy trafiają do Memtable.Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.

Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.W wyniku flusha powstaje niemutowalna struktura SSTable.Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 24: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.CommitLog zapisywany co pewien czas (zależnie od konfigu).Potem zapisy trafiają do Memtable.Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.

W wyniku flusha powstaje niemutowalna struktura SSTable.Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 25: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.CommitLog zapisywany co pewien czas (zależnie od konfigu).Potem zapisy trafiają do Memtable.Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.W wyniku flusha powstaje niemutowalna struktura SSTable.

Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 26: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Jak działają zapisy?

Zapisy idą najpierw do CommitLog.CommitLog zapisywany co pewien czas (zależnie od konfigu).Potem zapisy trafiają do Memtable.Memtable to cache wierszy indeksowanych kluczem. Jak się zapcha, robimyflush.Flush powoduje sortowanie wierszy w Memtable po kluczu i sekwencyjnyzapis.W wyniku flusha powstaje niemutowalna struktura SSTable.Odczyt potencjalnie zbiera kawałki danych z wielu SSTable na dysku iMemtable w RAM.

Bartosz Szreder Apache Cassandra 6 / 10

Page 27: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Dokąd trafiają poszczególne dane?

Klucz wiersza.Współczynnik replikacji (ile węzłów ma replikować dany wiersz).Strategia replikacji (które węzły mają replikować dany wiersz).

Strategia może być prosta (kolejne węzły w pierścieniu) albo uwzględniającafizyczną topologię sieci (podział na szafy, fizyczne położenie na świecie itd.).

Cassandra nie zmienia zbioru węzłów dla danego wiersza w oparciu o zmienneparametry, w rodzaju bieżącego obciążenia, dostępności węzłów czy tego,z którymi węzłami rozmawia klient.

Bartosz Szreder Apache Cassandra 7 / 10

Page 28: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Dokąd trafiają poszczególne dane?

Klucz wiersza.Współczynnik replikacji (ile węzłów ma replikować dany wiersz).Strategia replikacji (które węzły mają replikować dany wiersz).

Strategia może być prosta (kolejne węzły w pierścieniu) albo uwzględniającafizyczną topologię sieci (podział na szafy, fizyczne położenie na świecie itd.).

Cassandra nie zmienia zbioru węzłów dla danego wiersza w oparciu o zmienneparametry, w rodzaju bieżącego obciążenia, dostępności węzłów czy tego,z którymi węzłami rozmawia klient.

Bartosz Szreder Apache Cassandra 7 / 10

Page 29: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Dokąd trafiają poszczególne dane?

Klucz wiersza.Współczynnik replikacji (ile węzłów ma replikować dany wiersz).Strategia replikacji (które węzły mają replikować dany wiersz).

Strategia może być prosta (kolejne węzły w pierścieniu) albo uwzględniającafizyczną topologię sieci (podział na szafy, fizyczne położenie na świecie itd.).

Cassandra nie zmienia zbioru węzłów dla danego wiersza w oparciu o zmienneparametry, w rodzaju bieżącego obciążenia, dostępności węzłów czy tego,z którymi węzłami rozmawia klient.

Bartosz Szreder Apache Cassandra 7 / 10

Page 30: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Odśmiecanie i scalanie struktur

Co N operacji flush zbierz N SSTable o podobnym rozmiarze i mergujsekwencyjnie.

Po scaleniu usuń stare SSTables.W starszych wersjach Cassandra tylko scalanie mogło usuwać „nagrobki”.

Bartosz Szreder Apache Cassandra 8 / 10

Page 31: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Odśmiecanie i scalanie struktur

Co N operacji flush zbierz N SSTable o podobnym rozmiarze i mergujsekwencyjnie.Po scaleniu usuń stare SSTables.

W starszych wersjach Cassandra tylko scalanie mogło usuwać „nagrobki”.

Bartosz Szreder Apache Cassandra 8 / 10

Page 32: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Odśmiecanie i scalanie struktur

Co N operacji flush zbierz N SSTable o podobnym rozmiarze i mergujsekwencyjnie.Po scaleniu usuń stare SSTables.W starszych wersjach Cassandra tylko scalanie mogło usuwać „nagrobki”.

Bartosz Szreder Apache Cassandra 8 / 10

Page 33: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

CQL

Cassandra does not support joins or subqueries, except for batch analysis throughHadoop. Rather, Cassandra emphasizes denormalization through features likecollections.

At one level, Cassandra tables, rows, and columns can be thought of much thesame way as those in a relational database. In both SQL and CQL you definetables, which have defined columns and associated data types, and you can createindexes to allow efficient querying by column values.

However, an important difference is that since Cassandra is designed from theground up as a distributed system, it emphasizes denormalization instead ofnormalization and joins, and provides tools like collections to support this.

Bartosz Szreder Apache Cassandra 9 / 10

Page 34: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

CQL

Cassandra does not support joins or subqueries, except for batch analysis throughHadoop. Rather, Cassandra emphasizes denormalization through features likecollections.

At one level, Cassandra tables, rows, and columns can be thought of much thesame way as those in a relational database. In both SQL and CQL you definetables, which have defined columns and associated data types, and you can createindexes to allow efficient querying by column values.

However, an important difference is that since Cassandra is designed from theground up as a distributed system, it emphasizes denormalization instead ofnormalization and joins, and provides tools like collections to support this.

Bartosz Szreder Apache Cassandra 9 / 10

Page 35: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

CQL

Cassandra does not support joins or subqueries, except for batch analysis throughHadoop. Rather, Cassandra emphasizes denormalization through features likecollections.

At one level, Cassandra tables, rows, and columns can be thought of much thesame way as those in a relational database. In both SQL and CQL you definetables, which have defined columns and associated data types, and you can createindexes to allow efficient querying by column values.

However, an important difference is that since Cassandra is designed from theground up as a distributed system, it emphasizes denormalization instead ofnormalization and joins, and provides tools like collections to support this.

Bartosz Szreder Apache Cassandra 9 / 10

Page 36: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Ograniczenia

Brak joinów i podzapytań (o tym było).

Wszystkie dane w pojedynczym tablecie muszą zmieścić się na pojedynczejmaszynie w klastrze.Klucze wierszy nie mogą przekraczać 64 KiB.Maksymalna liczba komórek (wiersze × kolumny) w pojedynczym tablecie to2 miliardy.A single column value may not be larger than 2GB; in practice, „single digitsof MB” is a more reasonable limit, since there is no streaming or randomaccess of blob values.Collection values may not be larger than 64KB.

Bartosz Szreder Apache Cassandra 10 / 10

Page 37: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Ograniczenia

Brak joinów i podzapytań (o tym było).Wszystkie dane w pojedynczym tablecie muszą zmieścić się na pojedynczejmaszynie w klastrze.

Klucze wierszy nie mogą przekraczać 64 KiB.Maksymalna liczba komórek (wiersze × kolumny) w pojedynczym tablecie to2 miliardy.A single column value may not be larger than 2GB; in practice, „single digitsof MB” is a more reasonable limit, since there is no streaming or randomaccess of blob values.Collection values may not be larger than 64KB.

Bartosz Szreder Apache Cassandra 10 / 10

Page 38: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Ograniczenia

Brak joinów i podzapytań (o tym było).Wszystkie dane w pojedynczym tablecie muszą zmieścić się na pojedynczejmaszynie w klastrze.Klucze wierszy nie mogą przekraczać 64 KiB.

Maksymalna liczba komórek (wiersze × kolumny) w pojedynczym tablecie to2 miliardy.A single column value may not be larger than 2GB; in practice, „single digitsof MB” is a more reasonable limit, since there is no streaming or randomaccess of blob values.Collection values may not be larger than 64KB.

Bartosz Szreder Apache Cassandra 10 / 10

Page 39: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Ograniczenia

Brak joinów i podzapytań (o tym było).Wszystkie dane w pojedynczym tablecie muszą zmieścić się na pojedynczejmaszynie w klastrze.Klucze wierszy nie mogą przekraczać 64 KiB.Maksymalna liczba komórek (wiersze × kolumny) w pojedynczym tablecie to2 miliardy.

A single column value may not be larger than 2GB; in practice, „single digitsof MB” is a more reasonable limit, since there is no streaming or randomaccess of blob values.Collection values may not be larger than 64KB.

Bartosz Szreder Apache Cassandra 10 / 10

Page 40: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Ograniczenia

Brak joinów i podzapytań (o tym było).Wszystkie dane w pojedynczym tablecie muszą zmieścić się na pojedynczejmaszynie w klastrze.Klucze wierszy nie mogą przekraczać 64 KiB.Maksymalna liczba komórek (wiersze × kolumny) w pojedynczym tablecie to2 miliardy.A single column value may not be larger than 2GB; in practice, „single digitsof MB” is a more reasonable limit, since there is no streaming or randomaccess of blob values.

Collection values may not be larger than 64KB.

Bartosz Szreder Apache Cassandra 10 / 10

Page 41: Apache Cassandra - Rozproszony system bazodanowyCQL Cassandradoesnotsupportjoinsorsubqueries,exceptforbatchanalysisthrough Hadoop. Rather,Cassandraemphasizesdenormalizationthroughfeatureslike

Ograniczenia

Brak joinów i podzapytań (o tym było).Wszystkie dane w pojedynczym tablecie muszą zmieścić się na pojedynczejmaszynie w klastrze.Klucze wierszy nie mogą przekraczać 64 KiB.Maksymalna liczba komórek (wiersze × kolumny) w pojedynczym tablecie to2 miliardy.A single column value may not be larger than 2GB; in practice, „single digitsof MB” is a more reasonable limit, since there is no streaming or randomaccess of blob values.Collection values may not be larger than 64KB.

Bartosz Szreder Apache Cassandra 10 / 10