Graph databases - why and how

Slides:



Advertisements
Podobne prezentacje
Video DR-S Cyfrowy rejestrator wideo
Advertisements

Indeksy w bazie danych Oracle
Rafał Hryniów Tomasz Pieciukiewicz
Optymalizacja programu AD-BS Porównanie wersji 1.04 <-> 1.05
System cloud'owy Amazon EC2
Bazy danych 1.Wiadomo ś ci wst ę pne P. F. Góra semestr letni 2004/05.
BAZA DANYCH - RODZAJE.
WPROWADZENIE DO BAZ DANYCH
Odśmiecanie Grzegorz Timoszuk
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
Hurtownie Danych Mariusz Dołęga.
Systemy zarządzania bazami danych 10. Strojenie. Oryginał: Shasha & Bonnet10. Strojenie2.
Co to jest studium przypadku?
ETL – wymiana danych Michał Jabłonka
Project made by Bartosz Rumiński Kl. III i rok 2007/2008.
Rozproszone bazy danych
Współczesne systemy informacyjne
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
TECHNOLOGIE INFORMACYJNE
Analiza, projekt i częściowa implementacja systemu obsługi kina
Bezpieczeństwo baz danych
Multimedialne bazy danych
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
? Rosnące potrzeby użytkowników Rozmiar problemu Czas Komputer domowy
TBD - P ERFORMANCE W BAZACH M ICROSOFT SQL S ERVER, CZYLI O CO W TYM W OGÓLE CHODZI Michał Grodzicki MCTS SQL SERVER lipca 2012.
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Tryb tabelaryczny w Analysis Services 2012
W praktyce Prelegent: Michał Cywiński
Bazy danych podstawowe pojęcia
Strona internetowa pralni chemicznej
Bazy danych rezydujące w pamięci operacyjnej komputera (in-memory)
Bazy danych.
Informatyka Relacyjne bazy danych.
Bazy danych Access 200x Ćwiczenie 1.
Serwery aplikacji Zope Tomcat. Składniki Zopea: Serwer Management interface Databases.
Implementacja systemu
Aplikacje bazodanowe ADO.NET PHP i MySQL
Wybrane zagadnienia relacyjnych baz danych
Bazy danych Microsoft access 2007.
Temat 2: Modele danych.
Bazy danych, sieci i systemy komputerowe
Skalowanie aplikacji JPA na przykładzie Oracle TopLink Grid
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Projektowanie Aplikacji Internetowych
systemy zarządzania bazami danych
System Zarządzania Bazą Danych
Temat 1: Ogólne cechy języka PHP
Zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego.
PHP + MySQL Podstawy pracy z bazą danych Damian Urbańczyk.
Podstawy języka skryptów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
notebooki uniwersalne notebooki uniwersalne notebooki biznesowe notebooki biznesowe notebooki mobilne i ultra mobilne notebooki mobilne i ultra mobilne.
Hibernate Podstawy.
XML w bazach danych.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
.NET i Bazy Danych Projekt: Wadim Grasza.
Bazy danych Podstawy relacyjnych baz danych Autor: Damian Urbańczyk.
Optymalna konfiguracja Microsoft SQL Server 2014
BAZY DANYCH MS Access.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
Prezentacja programu PowerPoint
Testowanie wydajnościowe Metody testowania Apache Jmeter Serwer Jboss Baza danych PostgreSQL Testowanie wydajności odczytu z bazy danych Testowanie wydajności.
INSTALACJA XAMPP Dr inż. Andrzej KIJ.
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Zapis prezentacji:

Graph databases - why and how

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

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

Graf IndexOutOfRange.com @maklipsa

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

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

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

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

Odrobina historii

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

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

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

Zastosowania

Pranie brudnych pieniędzy IndexOutOfRange.com @maklipsa

Podpowiedzi IndexOutOfRange.com @maklipsa

Rozpoznawanie języka naturalnego IndexOutOfRange.com @maklipsa

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

Rozpoznawanie języka naturalnego IndexOutOfRange.com @maklipsa

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

New York Times IndexOutOfRange.com @maklipsa

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

Wydajność

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

Wydajność – trawersowanie IndexOutOfRange.com @maklipsa

Wydajność – trawersowanie IndexOutOfRange.com @maklipsa

Wydajność – trawersowanie IndexOutOfRange.com @maklipsa

Wydajność – trawersowanie IndexOutOfRange.com @maklipsa

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

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

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

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

Neo4j

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

Demo

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

Pytania?