Upload
fernando-masanori
View
1.166
Download
0
Embed Size (px)
Citation preview
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?
Life begins at end of your
comfort zone Neale Donald Walsch
Slide de um palestrante da EuroPython 2012, usando MongoDB com Python depois de 20 anos em uma tecnologia tradicional
Valeu TDC!
O melhor local para conseguir isso
The Python Paradox, Paul Graham
Python como um diferencial
Python vale a pena
Python vale a pena
Job Trends (indeed.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