NoSQL e Python

Post on 24-Jun-2015

1,162 views 0 download

transcript

NoSQL e Python TDC2012

@fmasanori http://www.slideshare.net/fmasanori

• Conhecendo o palestrante

• Conhecendo os assistentes

• Python vale a pena

• NoSQL vale a pena

• Demo:

• MongoDB, Redis e Cassandra

• Facebook e Twitter

• Perguntas

Conhecendo o palestrante

• IME-USP e Mestrado ITA

• ed e lint Cobra Tecnologia

• Software Express

• Credicard Mastercard

• PriceWaterhouseCoopers

• Itau BankBoston

• Docente FATEC (amo dar aulas)

• Interesses: Python, NoSQL, Google Technology, Facebook

Conhecendo os assistentes • Graduandos?

• Docentes?

• Python?

• MongoDB?

• Cassandra?

• Redis?

Valeu TDC!

O melhor local para conseguir isso

Python vale a pena

Python vale a pena

Job Trends (indeed.com)

Meta 20% mulheres em 2015

http://pyladies.com/

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?

• Escalabilidade para leituras num banco

relacional: trabalhoso

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

(se conseguir ele deixou de ser relacional...)

Escalabilidade vertical

Escalabilidade vertical

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

horses. Henry Ford.

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

Melhor NoSQL?

• JSON oriented • Autosharding • Full featured indexes

import pymongo

Tutorial completo de MongoDB com Python:

http://pyvideo.org/video/914/mongodb-and-python

https://github.com/behackett/presentations/tree/mast

er/pycon_2012

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/

Cassandra: • Linearly Scalable • Column based

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

Mantenha-se em movimento

“A vida é como andar de bicicleta. Para manter o equilíbrio, é preciso se manter em movimento”. Einstein.

Bibliografia

Bibliografia

Bibliografia

Bibliografia

Bibliografia

Perguntas? fmasanori@gmail.com

facebook.com/fmasanori

twitter.com/fmasanori