Your SlideShare is downloading. ×
0
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

NoSQL i dlaczego go nie potrzebujesz? [OlCamp]

2,606

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • dlaczego go nie potrzebujesz dzisiaj, ale jeśli masz szczęście - możesz potrzebować go jutro\nnie chce was zniechecic - raczej pokazac dlaczego jest to trudne\n
  • dziękuję za zaproszenie, 100% ruby, okolice Javy, Freeport Metrics, pozostałe 100% obj-c\njestem praktykiem, nie teoretykiem - nie jestem z wykształcenia informatykiem w prezentacji będzie dużo skrótów, uproszczeń i założeń a priori - bo to zbyt szeroki temat na niecałe pół godziny, a ja nie jestem aż tak mądry ;-)\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 - masło maślane\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\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
  • base - brak transakcji, prostsze sturktury i operacje\ncap theorem - jeżeli ktoś chce poznać temat dogłębiej - inna sprawa, że większości ludzi ten problem nigdy nie będzie dotyczył bo jestem ważny tylko dla naprawdę ważnych systemów\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\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
  • czy jednak może warto wejść w nosql\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
  • nie ma uniwersalnego rozwiązania dla wszystkich\nprzede wszystkich trzeba dobrze poznać słabości aplikacji, potem środowiska\na potem zastosowania, które akurat danego dnia wydało się idealne\nnie używaj nosqla jeśli ktoś inny z niego korzysta\n
  • temat, który trzeba dobrze przemyśleć\n
  • czyli nowoczesne sposoby analizy dużych ilości danych\nsystem rozproszonego przetwarzania danych - niemal synonim map / reduce\nhbase - hive - pig\n
  • \n
  • \n
  • Transcript

    • 1. NOSQL dlaczego go nie potrzebujesz?
    • 2. CZEŚĆ!jestem filip
    • 3. PLAN co to jest nosql? dlaczego nie? dlaczego tak?kupuję to, co dalej?
    • 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. NO SQL?
    • 6. NOT ONLY SQL
    • 7. http://www.flickr.com/photos/emagic/56206868
    • 8. SKALOWALNOŚĆ
    • 9. NOSQL JEST...
    • 10. nierelacyjny
    • 11. rozproszony
    • 12. horyzontalnie skalowalny
    • 13. nieustrukturyzowany
    • 14. replikowalny
    • 15. ostatecznie zgodny
    • 16. SQL A NOSQL ACID BASEatomic basic availabilityconsistent soft stateisolated eventually consistentdurable
    • 17. NOSQLbaza klucz-wartość baza kolumnowabaza dokumentowa
    • 18. PROJEKTOWANIE APLIKACJI
    • 19. CAP THEOREM
    • 20. ADMINISTRACJA / DEVOPS
    • 21. MONGODB• baza dokumentowa• wydajna• wysokodostępna• skalowalna•z rozbudowanym językiem zapytań
    • 22. MONGODB• JSON, GridFS• indeksy geograficzne• operacje atomowe• map / reduce• kolekcje n-elementowe
    • 23. REDIS• klucz-wartość• przechowujący struktury danych• łatwo replikowalny• (wkrótce) klastrowalny
    • 24. REDIS• persystencja• pamięc wirtualna• pipeline• pub / sub
    • 25. REDIS - TYPY DANYCH• łańcuchy tekstowe• hashe• listy• kolekcje• kolekcje posortowane
    • 26. ONE SIZE DOESN’T FIT ALL
    • 27. ZA, A NAWET PRZECIW
    • 28. COŚ JESZCZE?
    • 29. WEBCLUSTER.PL
    • 30. DZIĘKUJĘ! pytania?

    ×