SlideShare a Scribd company logo
Graph databases - why and how?
 Chief Architekt w ITMAGINATION
 Architekt i TeamLeader w jednym z
największych projektów w .NET w Polsce
 Zajmuję się systemami rozproszonymi i tym
co można wywnioskować z danych
 Coś piszę na IndexoutOfRange.com
 No i można mnie spotkać na rekrutacji 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
O MNIE- - -
 Grafy
 Bazy grafowe
 Wydajność
 Zastosowania
 Neo4j i Cypher - demo
 Kiedy stosować
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AGENDA
G=(E,V)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRAF- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRAFY
3
Ala Kota
ma
Ala
lat:4
Kot
Kolor:czarny
ma
Lat:3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRAFY
3
Ala Kota
ma
Ala
lat:4
Kot
Kolor:czarny
ma
Lat:3
1 *
1 1
1 *
1
1
1 *
*
*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GRAFY
Ala
lat:4
ma
Lat:3
1 1
1 *1 *
3
ma
Ala Kota
Kot
Kolor:czarny
1
1
1 *
*
*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HISTORIA BAZ RELACYJNYCH- - -
 1970 – Edgar F. Codd – model
relacyjny
 Co innego działo się latach 70?
 Znaczący spadek ceny pamięci
RAM – tylko 734$ za 1 MB
 IBM 3310 oferuje 100MB dyski
 1971 Intel 4004 – 740kHz, 8 bitów
 1974 Intel 8008 – 800kHz, 16
bitów, 1MB pamięci
 1977 powstaje Oracle, apple 1
 1978 Intel 8086 – 4MHz- 10MHz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HISTORIA BAZ GRAFOWYCH- - -
 1736 – Problem mostów
 1852 – Problem pokolorowania mapy
 1936 – Książka „Teoria Grafów”
 1948 - ENIAC
 1969 – Częściowe rozwiązanie
problemu mapy
 1994 – Rozwiązanie problemu mapy
 2002 – Pentium 4 3,8GHz
 2003 – Pierwsze komercyjne bazy
grafowe
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OBECNE BAZY GRAFOWE- - -
Przechowywanie
ProcesowanieNatywne
Natywne
Zastosowania
- - - - - - - - - - - - - - - - - - - - - - -
PRANIE BRUDNYCH PIENIĘDZY
- - - -
SUGEROWANIE PODOBNYCH PRODUKTÓW- - -
- - - - - - - - - - - - - - - - - - - - - -
ROZPOZNAWANIE JĘZYKA NATURALNEGO- - -
MATCH (person:Person)–[:IS_FRIEND_OF]->(friend),
(friend)–[:LIKES]->(restaurant),
(restaurant)–[:LOCATED_IN]->(loc:Location),
(restaurant)–[:SERVES]->(type:Cuisine)
WHERE (person.name = ’Philip’ AND loc.location=’New York’ AND
type.cuisine=’Sushi’
RETURN restaurant.name
- - - - - - - - - - - - - - - - - - - - - - -
ROZPOZNAWANIE JĘZYKA NATURALNEGO- - -
- - - - - - - - - - - - - - - - - - - - - -
ROZPOZNAWANIE JĘZYKA NATURALNEGO- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WYDAJNOŚĆ
Optymalizacja pod
agregację
Optymalizacja pod
połączenia
Relacyjne Grafowe
- - - - - - - - - - - - - - - - - - - - - -
WYDAJNOŚĆ - TRAWERSOWANIE
- - - - - - - - - - - - - - - - - - - - - -
WYDAJNOŚĆ - TRAWERSOWANIE
- - - - - - - - - - - - - - - - - - - - - -
WYDAJNOŚĆ - TRAWERSOWANIE
- - - - - - - - - - - - - - - - - - - - - -
WYDAJNOŚĆ - TRAWERSOWANIE
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wydajność - testy- - -
Twitter z 2009 roku
 1,67 miliarda obserwowań
 41,7 milionów userów
Operacje
 Tworzenie kont – 1%
 Publikowanie tweetów – 15%
 Oczyt – 76%
 Rekomendacje – 7%
Przechowywanie danych
 6 c1.4xl Nodów Casandry
Obliczenia
 40 m1.small
 Obsługa transakcji i zapytań
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wydajność - testy- - -
Typ
transakcji
Liczba trx Ważona czasu Std czasu
Tworzenie
konta
379,019 115,15ms 5,88ms
Tweetowani
e
7,580,955 18,54ms 6,34ms
Odczyt 37.936,184 6,29ms 1,62ms
Rekomenda
cje
3.793,863 67,65ms 13,89ms
Total 49.690,061
Czas
trwania
2,3h
Średnia
5.900
trx/sek
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wydajność - testy- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SMOKI- - -
Przeglądarkowa MMORPG
 Chwytanie potworów przy użyciu pułapek
 4000 przedmiotów
 800 przepisów
 1500+ questów
 100+ potworów
 50+ pułapek
 1M aktywnych użytkowników dziennie
 250M requestów dziennie
Skala
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SMOKI- - -
Balansowanie grą
 Wycena przedmiotów
 Poziomu trudności
 Realizowalności questów
 Postępu graczy
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SMOKI- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Neo4j- - -
 db-engines.com – 20 pozycja, 1 w
bazach grafowych
 Drivery dla:
 Java
 .NET
 JavaScript
 Python
 Ruby
 PHP
 and R, Go, Clojure, Perl, Haskell
 Cypher jako standard
 Jest wersja darmowa
Cypher - demo
Kiedy stosować:
 Dane hierarchiczne
 Ważniejsze są relacje, niż atrybuty obiektów
 Wyszukiwanie wzorów w danych
 Do lepszej wizualizacji danych
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Zastosowanie- - -
Kiedy NIE stosować:
 Systemów gdzie ważniejsze są atrybuty obiektów niż relacje
 ACIDowe transakcje
 Zamiast baz reacyjnych
Dziękuję
Pytania?

More Related Content

PDF
4Developers- Lock anatomy and scalable multicore programming Bartosz Adamczewski
PDF
4Developers: Maciej Aniserowicz- O mikroserwisach mikro-fakty i mikro-mity
PPTX
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
PDF
2024 State of Marketing Report – by Hubspot
4Developers- Lock anatomy and scalable multicore programming Bartosz Adamczewski
4Developers: Maciej Aniserowicz- O mikroserwisach mikro-fakty i mikro-mity
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
2024 Trend Updates: What Really Works In SEO & Content Marketing
Storytelling For The Web: Integrate Storytelling in your Design Process
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
2024 State of Marketing Report – by Hubspot
Ad

4Developers: Szymon Warda- Graph databases - why and how

  • 1. Graph databases - why and how?
  • 2.  Chief Architekt w ITMAGINATION  Architekt i TeamLeader w jednym z największych projektów w .NET w Polsce  Zajmuję się systemami rozproszonymi i tym co można wywnioskować z danych  Coś piszę na IndexoutOfRange.com  No i można mnie spotkać na rekrutacji  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - O MNIE- - -
  • 3.  Grafy  Bazy grafowe  Wydajność  Zastosowania  Neo4j i Cypher - demo  Kiedy stosować - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AGENDA
  • 4. G=(E,V) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GRAF- - -
  • 5. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GRAFY 3 Ala Kota ma Ala lat:4 Kot Kolor:czarny ma Lat:3
  • 6. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GRAFY 3 Ala Kota ma Ala lat:4 Kot Kolor:czarny ma Lat:3 1 * 1 1 1 * 1 1 1 * * *
  • 7. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GRAFY Ala lat:4 ma Lat:3 1 1 1 *1 * 3 ma Ala Kota Kot Kolor:czarny 1 1 1 * * *
  • 8. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HISTORIA BAZ RELACYJNYCH- - -  1970 – Edgar F. Codd – model relacyjny  Co innego działo się latach 70?  Znaczący spadek ceny pamięci RAM – tylko 734$ za 1 MB  IBM 3310 oferuje 100MB dyski  1971 Intel 4004 – 740kHz, 8 bitów  1974 Intel 8008 – 800kHz, 16 bitów, 1MB pamięci  1977 powstaje Oracle, apple 1  1978 Intel 8086 – 4MHz- 10MHz
  • 9. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HISTORIA BAZ GRAFOWYCH- - -  1736 – Problem mostów  1852 – Problem pokolorowania mapy  1936 – Książka „Teoria Grafów”  1948 - ENIAC  1969 – Częściowe rozwiązanie problemu mapy  1994 – Rozwiązanie problemu mapy  2002 – Pentium 4 3,8GHz  2003 – Pierwsze komercyjne bazy grafowe
  • 10. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBECNE BAZY GRAFOWE- - - Przechowywanie ProcesowanieNatywne Natywne
  • 12. - - - - - - - - - - - - - - - - - - - - - - - PRANIE BRUDNYCH PIENIĘDZY
  • 13. - - - - SUGEROWANIE PODOBNYCH PRODUKTÓW- - -
  • 14. - - - - - - - - - - - - - - - - - - - - - - ROZPOZNAWANIE JĘZYKA NATURALNEGO- - -
  • 15. MATCH (person:Person)–[:IS_FRIEND_OF]->(friend), (friend)–[:LIKES]->(restaurant), (restaurant)–[:LOCATED_IN]->(loc:Location), (restaurant)–[:SERVES]->(type:Cuisine) WHERE (person.name = ’Philip’ AND loc.location=’New York’ AND type.cuisine=’Sushi’ RETURN restaurant.name - - - - - - - - - - - - - - - - - - - - - - - ROZPOZNAWANIE JĘZYKA NATURALNEGO- - -
  • 16. - - - - - - - - - - - - - - - - - - - - - - ROZPOZNAWANIE JĘZYKA NATURALNEGO- - -
  • 17. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WYDAJNOŚĆ Optymalizacja pod agregację Optymalizacja pod połączenia Relacyjne Grafowe
  • 18. - - - - - - - - - - - - - - - - - - - - - - WYDAJNOŚĆ - TRAWERSOWANIE
  • 19. - - - - - - - - - - - - - - - - - - - - - - WYDAJNOŚĆ - TRAWERSOWANIE
  • 20. - - - - - - - - - - - - - - - - - - - - - - WYDAJNOŚĆ - TRAWERSOWANIE
  • 21. - - - - - - - - - - - - - - - - - - - - - - WYDAJNOŚĆ - TRAWERSOWANIE
  • 22. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wydajność - testy- - - Twitter z 2009 roku  1,67 miliarda obserwowań  41,7 milionów userów Operacje  Tworzenie kont – 1%  Publikowanie tweetów – 15%  Oczyt – 76%  Rekomendacje – 7%
  • 23. Przechowywanie danych  6 c1.4xl Nodów Casandry Obliczenia  40 m1.small  Obsługa transakcji i zapytań - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wydajność - testy- - -
  • 24. Typ transakcji Liczba trx Ważona czasu Std czasu Tworzenie konta 379,019 115,15ms 5,88ms Tweetowani e 7,580,955 18,54ms 6,34ms Odczyt 37.936,184 6,29ms 1,62ms Rekomenda cje 3.793,863 67,65ms 13,89ms Total 49.690,061 Czas trwania 2,3h Średnia 5.900 trx/sek - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wydajność - testy- - -
  • 25. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SMOKI- - -
  • 26. Przeglądarkowa MMORPG  Chwytanie potworów przy użyciu pułapek  4000 przedmiotów  800 przepisów  1500+ questów  100+ potworów  50+ pułapek  1M aktywnych użytkowników dziennie  250M requestów dziennie Skala - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SMOKI- - -
  • 27. Balansowanie grą  Wycena przedmiotów  Poziomu trudności  Realizowalności questów  Postępu graczy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SMOKI- - -
  • 28. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Neo4j- - -  db-engines.com – 20 pozycja, 1 w bazach grafowych  Drivery dla:  Java  .NET  JavaScript  Python  Ruby  PHP  and R, Go, Clojure, Perl, Haskell  Cypher jako standard  Jest wersja darmowa
  • 30. Kiedy stosować:  Dane hierarchiczne  Ważniejsze są relacje, niż atrybuty obiektów  Wyszukiwanie wzorów w danych  Do lepszej wizualizacji danych - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Zastosowanie- - - Kiedy NIE stosować:  Systemów gdzie ważniejsze są atrybuty obiektów niż relacje  ACIDowe transakcje  Zamiast baz reacyjnych