Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Graph databases - why and how

Podobne prezentacje


Prezentacja na temat: "Graph databases - why and how"— Zapis prezentacji:

1 Graph databases - why and how

2 O mnie Chief Architekt w
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 Po godzinach No i można mnie spotkać na rekrutacji  IndexOutOfRange.com @maklipsa

3 Agenda - Grafy Bazy grafowe Wydajność Zastosowania
Neo4j i Cypher – demo Kiedy stosować IndexOutOfRange.com @maklipsa

4 Graf IndexOutOfRange.com @maklipsa

5 Graf G=(E,V) IndexOutOfRange.com @maklipsa
Leonhard Euler Królewiec (obecny Kaliningrad) G=(E,V) IndexOutOfRange.com @maklipsa

6 Graf IndexOutOfRange.com @maklipsa
Leonhard Euler Królewiec (obecny Kaliningrad) IndexOutOfRange.com @maklipsa

7 Graf IndexOutOfRange.com @maklipsa
Leonhard Euler Królewiec (obecny Kaliningrad) IndexOutOfRange.com @maklipsa

8 Graf IndexOutOfRange.com @maklipsa
Leonhard Euler Królewiec (obecny Kaliningrad) IndexOutOfRange.com @maklipsa

9 Odrobina historii

10 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 Cena – 5 lat temu wynosiła 2642$ Intell 4004 4004 – 740Mhz, 8008 – 800khz, Co z tego wynika? Relacje w bazach relacyjnych były po to by zaoszczędzić miejsce. Formy normalne Efektem tego jest, że bazy relacyjne skaluje się wzwyż, czyli dodając procesorów i pamięci na jednej maszynie 1974 Intel 8008 – 800kHz, 16 bitów, 1MB pamięci 1977 powstaje Oracle, apple 1 1978 Intel 8086 – 4MHz- 10MHz IndexOutOfRange.com @maklipsa

11 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 IndexOutOfRange.com @maklipsa

12 Stan obecny Procesowanie Przechowywanie Natywne Natywne
Procesowanie, a niekoniecznie wyszukiwanie Jest ich dużo. Ja znam 3 bazy relacyjne – SQL Server, Oracle, MySql. No i Postgres, który stara się być relacyjno – obiektowy FlockDB – baza grafowa dla ubogich – pobiera tylko bezpośrednie dzieci InfiniteGraph – baza w której to miejsce przechowywania jest klastrowane, a nie sama baza. Microsoft graph engine (Projekt trinity) – rozproszona baza klucz wartość, bez języka wyszukiwania Titan – ognostyczne względem bazy (Casandra/Hbase) oparty na enginie grafowym od apache Affinity – storzona z myślą o IoT OrientDB – ulubieniec  baza grafowa, dokumentowa, klucz/wartość i obiektowa , no i wspierają zapytania SQL – więcej mieć nie można . Kierowana do olbrzymich grafów. *dex (teraz Sparksee) – dostępna nawet na iOS i Androida. Baza o małej latencji Neo4j – baza z możliwością rozproszenia, grafowy silnik przechowywania, SQL-owy jezyk zapytań. AllegroGraph – implementacja standardu W3(tych od internetu) RDFS (czyli pomysłu na oznaczenie semantyczne każdego linku w internecie) HypergroupDB – baza stworzna z myślą o przetwarzaniu wiedzy Przechowywanie Natywne IndexOutOfRange.com @maklipsa

13 Zastosowania

14 Pranie brudnych pieniędzy
IndexOutOfRange.com @maklipsa

15 Podpowiedzi IndexOutOfRange.com @maklipsa

16 Rozpoznawanie języka naturalnego
IndexOutOfRange.com @maklipsa

17 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 IndexOutOfRange.com @maklipsa

18 Rozpoznawanie języka naturalnego
IndexOutOfRange.com @maklipsa

19 New York Times - apple Jabłko Apple inc. Produkty Tim Cook Film (y)
Gatunki Właściwości odżywcze Dane handlowe Firmy handlujące Apple inc. Pracownicy Firmy powiązane Produkty Tim Cook Film (y) Odcinek Star Trek Apple Records Rosyjska partia ... IndexOutOfRange.com @maklipsa

20 New York Times IndexOutOfRange.com @maklipsa

21 Cookit IndexOutOfRange.com @maklipsa
Recipe i Ingredient jako główne encje Bulion i risotto grzybowe z truflami IndexOutOfRange.com @maklipsa

22 Wydajność

23 Wydajność – można inaczej
Relacyjne Grafowe IndexOutOfRange.com @maklipsa

24 Wydajność – trawersowanie
IndexOutOfRange.com @maklipsa

25 Wydajność – trawersowanie
IndexOutOfRange.com @maklipsa

26 Wydajność – trawersowanie
IndexOutOfRange.com @maklipsa

27 Wydajność – trawersowanie
IndexOutOfRange.com @maklipsa

28 Wydajność – przechowywanie
Pamięciowe Rozmiar grafu jest ograniczony przez RAM Dużo algorytmów grafowych i doskonała wizualizacja Dyskowe Rozmiar grafu jest ograniczony przez dysk Zoptymalizoweane do grafów atrybutowych Klastry Ograniczony przez sumę pamięci RAM klastra Zoptymalizowane na algorytmy rozproszone IndexOutOfRange.com @maklipsa

29 Wydajność – testy Twitter z 2009 roku Operacje
1,67 miliarda obserwowań 41,7 milionów userów Operacje Tworzenie kont – 1% Publikowanie tweetów – 15% Oczyt – 76% Rekomendacje – 7% IndexOutOfRange.com @maklipsa

30 Wydajność – testy Przechowywanie danych Obliczenia
6 c1.4xl Nodów Casandry Obliczenia 40 m1.small Obsługa transakcji i zapytań Titan c1.4xl – 4x 2.9 i 7.5 Gb Ramu m1.small – niemal najmniejszy serwer amazonowy – 2.5 2GB Ramu IndexOutOfRange.com @maklipsa

31 Wydajność – testy Typ transakcji Liczba trx Ważona czasu Std czasu
Tworzenie konta 379,019 115,15ms 5,88ms Tweetowanie 7,580,955 18,54ms 6,34ms Odczyt 37.936,184 6,29ms 1,62ms Rekomendacje 3.793,863 67,65ms 13,89ms Total 49.690,061 Czas trwania 2,3h Średnia 5.900 trx/sek Peek 10,300 trx/sek Kosztowało – 11$ za godzinę IndexOutOfRange.com @maklipsa

32 Neo4j

33 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 Algorytmy grafowe powstwały na super komputery Bazy grafowe powstawały do skalowania wszerz nie wzwyrz IndexOutOfRange.com @maklipsa

34 Demo

35 Wydajność – testy Kiedy stosować: Kiedy NIE stosować:
Dane hierarchiczne Ważniejsze są relacje, niż atrybuty obiektów Wyszukiwanie wzorów w danych Do lepszej wizualizacji danych Wyciągnąć sens z danych Kiedy NIE stosować: Systemów gdzie ważniejsze są atrybuty obiektów niż relacje Uwaga z ACIDowe transakcje Zamiast baz reacyjnych Zamiast baz relacyjnych – nie. Jako uzupełnienie - tak IndexOutOfRange.com @maklipsa

36 Pytania?


Pobierz ppt "Graph databases - why and how"

Podobne prezentacje


Reklamy Google