hello nosql world

Post on 18-Dec-2014

1.141 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A brief introduction to NoSQL World. MongoDB, Cassandra, Redis.

TRANSCRIPT

Hello NoSQL World

PythonBrasil[8] @fmasanori

http://www.slideshare.net/fmasanori

@fmasanori

• Graduado IME-USP e Mestrado ITA

• ed e lint Cobra Tecnologia

• Software Express

• Credicard Mastercard

• PriceWaterhouseCoopers

• Itau BankBoston

• Docente FATEC SJC (amo dar aulas)

• Interesses: Python, NoSQL, Google Technology, Facebook

Conhecendo os assistentes

• NoSQL?

• pymongo?

• redis-py?

• pycassa?

Agenda

• Dynamic/Flexible Schema

• Vertical Scalability

• Horizontal Scalability

• Document -> Mongo

• Key-value -> Redis

• Columnar -> Cassandra

• Demo

“It’s better to think of NoSQL as a

movement rather

than a technology” Martin Fowler

NoSQL vale a pena

Job Trends (indeed.com)

Job Trends (indeed.com)

Job Trends (indeed.com)

O que as empresas esperam de um NoSQL?

Dynamic Schema

Flexible Schema

O que as empresas esperam de um NoSQL?

Relational DB

Impedance mismatch

• The difference between the relational model and the in-memory data structures (Fowler)

• Limitations of relational DB: values only in tuples

• We need a more complex structure than a set of tuples as a data unit

Relational DB

Martin Fowler

Costumers Orders

Martin Fowler

Aggregate Model

Costumers

Martin Fowler

Aggregate Model

Scalability

If I had asked people what they wanted, they would have said faster

horses. Henry Ford.

Escalabilidade vertical

• Escalabilidade para leituras num banco relacional: trabalhoso

• Escalabilidade para escritas num banco relacional: MUITO, MUITO, trabalhoso

• (se conseguir seu BD deixou de ser relacional...)

Escalabilidade vertical

Escalabilidade horizontal

Escalabilidade horizontal

Dois artigos famosos

• Bigtable: A distributed storage system for structured data, 2006

• Dynamo: Amazon’s highly available key-value store, 2007

Apache Hadoop

Not Only SQL

There is no best NoSQL

• JSON oriented • Autosharding • Full featured indexes

Dowload and install:

http://www.mongodb.org/downloads

Criar c:/data/db

Servidor:

bin/mongod

Cliente:

bin/mongo

Cliente pymongo:

http://api.mongodb.org/python/current/

import pymongo

Curso completo MongoDB com Python:

http://education.10gen.com/

Cassandra: • Linearly Scalable • Column based

Martin Fowler

Cassandra vs MySQL (50GB)

MySQL:

~300ms write

~350ms read

Cassandra:

~0.12ms write

~15ms read

Banco Relacional Tradicional

(Timo Elliott, SAP)

Banco Colunar

(Timo Elliott, SAP)

Download DataStax Community Edition

Servidor:

cassandra

Cliente:

cassandra-cli –h localhost –p 9160

Conflitos:

cassandra.bat (windows)

/etc/cassandra/cassandra-env.sh (ubuntu)

Cliente pycassa:

https://github.com/pycassa/pycassa/downloads

import pycassa

• Data Structure Server • In-memory dataset

• CPU performance 175X (96) • Os discos continuam iguais • Memory 1M faster • 1M = $1 (2000) x 1 cent (2010)

http://redis.io/download

https://github.com/MSOpenTech/redis

(for Windows)

Servidor:

redis-server

Cliente:

redis-cli

Cliente redis-py:

https://github.com/andymccurdy/redis-py

import redis

Talk is cheap.

Show me the code. Linus Torvalds

Servidor MongoDB

Servidor Cassandra

Servidor Cassandra

Servidor Redis

Dados Facebook e Twitter

Pymongo

Redis-py

Pycassa

Pymongo response

Redis-py response

Pycassa response

Bibliografia

Perguntas? fmasanori@gmail.com

facebook.com/fmasanori

twitter.com/fmasanori

top related