NOTONLY SQL
CZEŚĆ!jestem filip
PLAN co to jest nosql?   dlaczego nie?   dlaczego tak?kupuję to, co dalej?
IN COMPUTING, NOSQL IS A TERM USED TO DESIGNATE DATABASE MANAGEMENTSYSTEMS THAT DIFFER FROM   CLASSIC RELATIONAL DATABASE ...
NOSQL?
NOT ONLY SQL
http://www.flickr.com/photos/emagic/56206868
SKALOWALNOŚĆOHAI
NOSQL JEST...
nierelacyjny
rozproszony
horyzontalnie skalowalny
nieustrukturyzowany
replikowalny
ostatecznie zgodny
NOSQLbaza klucz-wartość baza kolumnowabaza dokumentowa
PROJEKTOWANIE APLIKACJI
CAP THEOREM
ADMINISTRACJA
MONGODB• baza   dokumentowa• wydajna• wysokodostępna• skalowalna•z   rozbudowanym językiem zapytań
MONGODB• JSON, GridFS• indeksy    geograficzne• operacje    atomowe• map   / reduce• kolekcje   n-elementowe
REDIS• klucz-wartość• przechowujący   struktury danych• łatwo   replikowalny• (wkrótce)   klastrowalny
REDIS• persystencja• pamięc     wirtualna• pipeline• pub   / sub
REDIS - TYPY DANYCH• łańcuchy   tekstowe• hashe• listy• kolekcje• kolekcje   posortowane
ARGUMENTUM AD AUDITOREM       ARGUMENTUM AD BACULUM  ARGUMENTUM AD HOMINEM FALLACIA      ACCIDENTIS ARGUMENTUM AD    IGNOR...
DZIĘKUJĘ!  pytania?
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
Upcoming SlideShare
Loading in...5
×

OpenReaktor, Not Only SQL

739

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
739
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • dlaczego go nie potrzebujesz dzisiaj, ale jeśli masz szczęście - możesz potrzebować go jutro\n
  • \n
  • \n
  • na początek definicja - co to jest nosql\nkto z was miał styczność z nosql w produkcji\n
  • definicja z wikipedii nie definiuje pojęcia prezycyjnie\na w zasadzie niczego nie precyzuje\nogólnie - system przetrzymywania danych, podobny do bazy danych, ale nią nie będący\n
  • definicje są co najmniej 2 - pierwsza z nich wyklucza korzystanie z jakichkolwiek baz sql-owych\nta definicja nam się nie podoba\n
  • tak jak ja to rozumiem\nnie brak SQL-a, ale “nie tylko SQL”\nnosql jedynie jako pomoc dla relacyjnych baz danych\ntak naprawdę nie ma jednoznacznej definicji - przedstawiam swój punkt widzenia\n
  • po co w ogóle powstał nosql?\ndo czego Tobie może przydać się nosql\n
  • pierwszy i podstawowy to skalowalność - nosql ma być magicznym rozwiązaniem, które ulży wszystkim problemom związanym ze skalowalnością - został tak naprawdę stworzony przez firmy, które musiały rozwiązać konkretny problem - dzisiaj się to zmienia, postawają wyspecjalizowane firmy tworzące takie rozwiązania\n
  • baaaaaaardzo duuuuuuużo danych\npartycjonowanie pozwala na względnie łatwe przetrzymywanie ogromnej ilości danych\nw zwykłych bazach zwykle trzeba robić to na poziomie kodu (sharding)\n\n
  • jako baza danych\n
  • nierelacyjny, nie można wykonywać joinów, pobranie każdego zasobu wymaga osobnego zapytania do bazy danych, nie da się wyciągnać skomplikowanych struktur, które są ze sobą powiązane, nie da się wykonywać obliczeń - tak naprawdę przy pewnej skali chcesz wszystko obsługiwać asynchronicznie i trzymać wyniki\n
  • rozproszony - w uproszczeniu - jest centrum, które bazą steruje, ale dane w niej zawarte są rozrzucone po wielu serwerach, a nawet lokalizacjach\n
  • horyzontalnie skalowalny - skalowanie następuje poprzez dorzucanie maszyn, a nie dorzucanie sprzętu do pojedynczej maszyny - sprzęt tanieje, ale ilość pamięci, którą jesteśmy w stanie umieścić w serwerze zawsze będzie ograniczona (i mniejsza od najbardziej wyrafinowanych wymagań)\n
  • nieustrukturyzowany - tak naprawdę w zaprzeczeniu do bazy danych, nie per se - nie ma kolumn, ale nawet klucz-wartość jest strukturą\n
  • łatwo replikowalny - dane można trzymać w wielu kopiach i nie powinno to być skomplikowane\n
  • ostatecznie zgodny - to najbardziej skomplikowany temat - po odpowiednio długim czasie od ostatniej aktualizacji bazy będzie ona taka sama we wszystkich kopiach\n
  • typy nosql baz danych (opisać poszczególne typy)\nkv - memcached, nosql\nbaza kolumnowa - cassandra, simpledb, bigtable\ndokumentowa - couchdb, mongodb\n
  • i teraz trzeba sobie odpowiedzieć na podstawowe pytanie - dlaczego nie chce mieć no sql\njak myślicie - dlaczego nie?\nodpowiem przez przykłady\n
  • główną bazą jest mysql\n
  • twitter chciał trzymać dane w cassandrze, pozostawił jednak wszystko w mysqlu\ntestuje Redisa\n
  • projektowanie aplikacji w oparciu o nosql wymaga zupełnie innego podejścia,\nprojektowanie modelu danych jest dużo trudniejsze, odpytywanie bazy danych jest dużo trudniejsze - nie wszystko da się trzymać w jednym miejscu, nie wiadomo czy będzie potrzebny, premature optimization\n
  • zgodność, dostępność, partycjonowanie - rozproszony system nigdy nie zapewni tych wszystkich elementów\n\nrozwiązanie tego problemu jest podstawowe dla zastosowania nosql\nmożna wybrać tylko 2 z trzech\n
  • sprawa zupełnie podstawowa - administracja - jeszcze brakuje specjalistów, łatwiej znaleźć specjalistę od mysqla niż cassandry\nco zrobić w przypadku krytycznej sytuacji?\n
  • te główne problemy to powód, dla którego to logo będziemy widzieć jeszcze bardzo długo\n
  • czasami trzeba, bo nie ma innej możliwości\n2 bazy danych, na które warto spojrzeć, które mają przed sobą przyszłość w zastosowaniach nawet podstawowych, przy mniejszych serwisach\n
  • baza dokumentowa\n
  • dokumentowa - czyli do klucza przypisujemy dokument json, wydajna - bez joinów, ale posiada indeksy, wysokodostępna - automatyczna replikacja z failoverem mastera, skalowalna - automatyczny sharding, język zapytań - javascript + możliwość pisania map reduce\n
  • ciekawostka - GridFS - czyli możliwość przechowywania plików w bazie danych (i ma to sens)\nindeksy geograficzne - coś, z czego mocno korzysta Foursquare - wyszukiwanie lokalizacji najbliższych wskanazej lokalizacji\n
  • memcached na sterydach, serwer struktur danych\n
  • \n
  • persystencja - coś, czego nie ma memcache - zrzut bazy, dopisywanie do pliku\nwłasna pamięc wirtualna, która trzyma w RAM-ie tylko te dane, z których aktualnie korzystamy\npipeline - optymalizacja wykonywania operacji - wysłanie wielu komend bez czekania na odpowiedź poprzedniej\n
  • łańcuchy tekstowe (ale ze wsparciem dla liczb całkowitych)\nhashe - czyli struktura w strukturze (świetnie optymalizuje wykorzystanie pamięci)\n
  • produkuj się, Filip!\n
  • \n
  • Transcript of "OpenReaktor, Not Only SQL"

    1. 1. NOTONLY SQL
    2. 2. CZEŚĆ!jestem filip
    3. 3. PLAN co to jest nosql? dlaczego nie? dlaczego tak?kupuję to, co dalej?
    4. 4. IN COMPUTING, NOSQL IS A TERM USED TO DESIGNATE DATABASE MANAGEMENTSYSTEMS THAT DIFFER FROM CLASSIC RELATIONAL DATABASE MANAGEMENT SYSTEMS (RDBMSES) IN SOME WAY.
    5. 5. NOSQL?
    6. 6. NOT ONLY SQL
    7. 7. http://www.flickr.com/photos/emagic/56206868
    8. 8. SKALOWALNOŚĆOHAI
    9. 9. NOSQL JEST...
    10. 10. nierelacyjny
    11. 11. rozproszony
    12. 12. horyzontalnie skalowalny
    13. 13. nieustrukturyzowany
    14. 14. replikowalny
    15. 15. ostatecznie zgodny
    16. 16. NOSQLbaza klucz-wartość baza kolumnowabaza dokumentowa
    17. 17. PROJEKTOWANIE APLIKACJI
    18. 18. CAP THEOREM
    19. 19. ADMINISTRACJA
    20. 20. MONGODB• baza dokumentowa• wydajna• wysokodostępna• skalowalna•z rozbudowanym językiem zapytań
    21. 21. MONGODB• JSON, GridFS• indeksy geograficzne• operacje atomowe• map / reduce• kolekcje n-elementowe
    22. 22. REDIS• klucz-wartość• przechowujący struktury danych• łatwo replikowalny• (wkrótce) klastrowalny
    23. 23. REDIS• persystencja• pamięc wirtualna• pipeline• pub / sub
    24. 24. REDIS - TYPY DANYCH• łańcuchy tekstowe• hashe• listy• kolekcje• kolekcje posortowane
    25. 25. ARGUMENTUM AD AUDITOREM ARGUMENTUM AD BACULUM ARGUMENTUM AD HOMINEM FALLACIA ACCIDENTIS ARGUMENTUM AD IGNORANTIAM ARGUMENTUM AD MISERICORDIAM CIRCULUS VITIOSUS ARGUMENTUM AD NUMERUM ARGUMENTUM AD PERSONAM ARGUMENTUM AD POPULUM PETITIOPRINCIPII ARGUMENTUM AD TRADITIONEMARGUMENTUM AD VANITATEM IGNORATIOELENCHI ARGUMENTUM AD VERECUNDIAM
    26. 26. DZIĘKUJĘ! pytania?

    ×