No sql mariusz g-il

Preview:

Citation preview

No.SQLDesign ✯ Store ✯ Scale ✯ Search

Mariusz GilCareercon, kariera programisty, lodz 2012- ``

piątek, 31 sierpnia 2012

historiapiątek, 31 sierpnia 2012

„NoSql is a fast, portable, relational database management system without arbitrary limits, (other than memory and proce%or sp&d) that runs under, and interacts with, the UNIX1 Operating System. It uses the "Operator-Stream Paradigm" described in "Unix Review".

Carlo Strozzi, Marzec 1991

piątek, 31 sierpnia 2012

piątek, 31 sierpnia 2012

Klasyfikacjapiątek, 31 sierpnia 2012

Wide Column Store

HADOOP / HBASE

CASSANDRA

HYPERTABLE

ACUMULLO

AMAZON SIMPLE DB

CLOUDATA

SCIDB

STRATOSPHERE

piątek, 31 sierpnia 2012

Document Store

MONGODB

COUCHDB

RAVENDB

THRUDB

TERRASTORE

RAPTORDB

SDB

SCHEMA FREE DB

piątek, 31 sierpnia 2012

Key-Value / ToupleStore

DYNAMODB

AZURE TABLE STORAGE

RIAK

SCALARIS

TOKYO CABINET / TYRANT

REDIS

VOLDEMORT

MNESIA

piątek, 31 sierpnia 2012

Graph Database

NEO4J

INFINITE GRAPH

HYPER GRAPH DB

ALLEGRO GRAPH

VERTEXDB

FLOCKDB

DEX

TRYNITY

piątek, 31 sierpnia 2012

Object Database

DB4O

VERSTANT

OBJECTIVITY

PERST

MAGMA

STERLING

EYEDB

NINJA DATABASE PRO

piątek, 31 sierpnia 2012

XML Database

MARK LOGIC SERVER

DOCUMENTUM XDB

EXIST

BASEX

QIZX

BERKELEY DB XML

piątek, 31 sierpnia 2012

BuzzWordsSCHEMA FREE DISTRIBUTED ACID / BASE EVENTUALLY CONSISTENT

FAULT TOLERANT HIGH PERFORMANCE HIGH AVAILABILITY

piątek, 31 sierpnia 2012

case studies

piątek, 31 sierpnia 2012

Problem

A

B

C

piątek, 31 sierpnia 2012

Jak uzupełnic KRAWEDZIE W GRAFIE SPOLECZNYM

``

-

piątek, 31 sierpnia 2012

A

B

C

D

E

F

G

Problempiątek, 31 sierpnia 2012

Które połaczenie JEST NAJLEPSZE LUB NAJTANSZE`

,

piątek, 31 sierpnia 2012

Neo4j

http://neo4j.org/

Algorytm najkrótszych sciezekAlgorytm wszystkich sciezekAlgorytm wszystkich prostych sciezekAlgorytm DijkstyAlgorytm A*

Grafowa baza danych

..

.

piątek, 31 sierpnia 2012

Neo4jPrzyklad

firstNode  =  graphDb.createNode();firstNode.setProperty("message",  "Hello,  ");secondNode  =  graphDb.createNode();secondNode.setProperty("message",  "World!");  relationship  =  firstNode.createRelationshipTo(secondNode,  RelTypes.KNOWS);relationship.setProperty("message",  "brave  Neo4j  ");

firstNode.getSingleRelationship(RelTypes.KNOWS,  Direction.OUTGOING).delete();firstNode.delete();secondNode.delete();

-

piątek, 31 sierpnia 2012

A

Problempiątek, 31 sierpnia 2012

Jak znalezcZNAJOMYCH ONLINE

piątek, 31 sierpnia 2012

Problempiątek, 31 sierpnia 2012

Redis

http://redis.io/

Key value storage z trwałoscia danychObsługa łancuchów tekstowychObsługa hashyObsługa listObsługa zbiorówObsługa zbiorów sortowanychProtokół Publish / Subscribe

Serwer struktury danych

,

piątek, 31 sierpnia 2012

RedisPrzyklad

redis>  SADD  myset  "Hello"(integer)  1redis>  SADD  myset  "World"(integer)  1redis>  SADD  myset  "World"(integer)  0redis>  SMEMBERS  myset1)  "World"2)  "Hello"redis>  

redis>  LPUSH  mylist  "world"(integer)  1redis>  LPUSH  mylist  "hello"(integer)  2redis>  LRANGE  mylist  0  -­‐11)  "hello"2)  "world"redis>  

redis>  ZADD  myzset  1  "one"(integer)  1redis>  ZADD  myzset  2  "two"(integer)  1redis>  ZADD  myzset  3  "three"(integer)  1redis>  ZRANGEBYSCORE  myzset  -­‐inf  +inf1)  "one"2)  "two"3)  "three"redis>  ZRANGEBYSCORE  myzset  1  21)  "one"2)  "two"redis>

-

piątek, 31 sierpnia 2012

Problem

Cena

Producent

Matryca

Typ pamieci

Cena

Producent

Monitor

Dysk HDD

Cena

Wykonawca

Utwory

Cena

Producent

Szybkosc

Kolor

Problem

` `

,

piątek, 31 sierpnia 2012

Jak efektywnieOPISAC PRODUKTY ROZNEGO RODZAJU`

.`

piątek, 31 sierpnia 2012

MongoDB

http://mongodb.org/

Dowolnosc schematu danychIndeksyMapReduceSkalowalnosc horyzontalnaReplikacja danych

Dokumentowa baza danych

` `

` `

piątek, 31 sierpnia 2012

{      author:  'joe',    created  :  new  Date('03/28/2009'),    title  :  'Yet  another  blog  post',    text  :  'Here  is  the  text...',    tags  :  [  'example',  'joe'  ],    comments  :  [

{  author:  'jim',  comment:  'I  disagree'  },{  author:  'nancy',  comment:  'Good  post'  }

   ]}

MongoDBPrzyklad

doc  =  {author  :  'joe',  created  :  new  Date('03/28/2009'),  title:  'Sample  title',tags:  [  "moon",  "apollo",  "spaceflight"  ],...  

};

db.posts.insert(doc);db.posts.find(  {  "comments.author"  :  "jim"  }  )db.posts.ensureIndex(  {  tags:  1  }  );db.posts.findOne(  {  tags:  "apollo"  }  ).title;

-

piątek, 31 sierpnia 2012

alternative.topiątek, 31 sierpnia 2012

Czy na pewnoPOTRZEBUJE ROZWIAZANIA NOSQL

` `

piątek, 31 sierpnia 2012

APLIKACJE TYPU FACEBOOK

NIE KORZYSTAJA Z JOIN-OW``

piątek, 31 sierpnia 2012

A TAKZE NIE WYKORZYSTUJA

INDEKSOW KLUCZY OBCYCH`

.

piątek, 31 sierpnia 2012

A SKALOWANIE BAZY DANYCH ZACZYNA SIE

NA POZIOMIE SCHEMATU DANYCH`

piątek, 31 sierpnia 2012

DeNA HandlerSocket

750.000qps

piątek, 31 sierpnia 2012

MySQL API dla złozonychzapytan

HandlerSocketdla zapytanszybkich lubindex scan

watek workera

watek na polaczenie

Akceptacja protokoluParsowanie SQLOptymalizacja SQLOtwarcie tabelQuery PlanQuery CacheDostep do danychZamkniecie tabelZwrócenie wyników

Akceptacja protokołuDostep do danychZwrócenie wyników

StorageEngine

3306

9998 9999

InnoDBMyISAM...

.

`

`,

piątek, 31 sierpnia 2012

MySQL Clusterhigh performance database

Auto-shardingSkalowalnosc horyzontalna onlineReal-time performanceDostep do danych SQL i NoSQLACID

` `

,

http://www.mysql.com/products/cluster

piątek, 31 sierpnia 2012

big bang theorypiątek, 31 sierpnia 2012

PROUDLY SPONSORED BY CASSANDRA*

*oraz developerow

piątek, 31 sierpnia 2012

PROUDLY SPONSORED BY MONGODB*

*oraz developerów

piątek, 31 sierpnia 2012

dobre praktyki

piątek, 31 sierpnia 2012

R.T.F.M.powaznie, rtfm.

piątek, 31 sierpnia 2012

DOBOR TECHNOLOGIIuzasadniony pot#ebami

piątek, 31 sierpnia 2012

plan backupudzialajacy w praktyce`-

piątek, 31 sierpnia 2012

monitoringzanim bedzie zbyt pozno``

`

piątek, 31 sierpnia 2012

Pytania?Email: mariusz@mariuszgil.pl ✯ Twitter: @mariuszgil

piątek, 31 sierpnia 2012

Recommended