NoSQL com Cassandra

46
Cassandra NoSQL [email protected] 17 de março de 2012 slideshare.net/fmasanori

description

Apresentação do professor Fernando Masanori para o 1º Encontro do JUG Vale sobre o banco de dados NoSQL Cassandra.

Transcript of NoSQL com Cassandra

Page 2: NoSQL com Cassandra

• Eu, vocês e Java

• Motivação

• Big Data e NoSQL

• Cassandra

• Hello World: Cassandra

• Pentaho

• Hello World: Pentaho + Cassandra

• Perguntas e sugestões

Page 3: NoSQL com Cassandra

• Computação IME-USP e Mestrado ITA

• ed e lint Cobra Tecnologia

• Credicard Mastercard – sistema autorização

• PriceWaterhouseCoopers

• Itaú BankBoston

• Docente FATEC: algoritmos, estrutura de dados, data warehouse, tópicos avançados em bancos de dados

• Interesses: Python, Data Warehouse, NoSQL, Pentaho, Google Technology, Facebook

Page 4: NoSQL com Cassandra

Vocês • Estudantes

• Professores

• Desenvolvedores Java

• Sabe quem é Sang Shin

• Sun Tech Days/ Java One

• NoSQL

• Cassandra

• Pentaho

Page 5: NoSQL com Cassandra

Job Trends (indeed.com)

Page 6: NoSQL com Cassandra

Job Trends (indeed.com)

Page 7: NoSQL com Cassandra

Big Data

Page 9: NoSQL com Cassandra

Novas arquiteturas são necessárias

Page 10: NoSQL com Cassandra

Escalabilidade vertical

• Escalabilidade para leituras num banco relacional é trabalhoso

• Escalabilidade para escritas num banco relacional é virtualmente impossível

(e caso você consiga ele deixou de ser relacional...)

Page 11: NoSQL com Cassandra

Escalabilidade vertical

Page 12: NoSQL com Cassandra

Escalabilidade horizontal

Page 13: NoSQL com Cassandra

Escalabilidade horizontal

Page 14: NoSQL com Cassandra

Dois artigos famosos

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

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

Page 15: NoSQL com Cassandra

Apache Hadoop

Page 16: NoSQL com Cassandra
Page 17: NoSQL com Cassandra

Not Only SQL

Mas BDs não relacionais são antigos...

Page 18: NoSQL com Cassandra

“If I had asked people what they wanted, they would have said faster horses”.

Henry Ford.

Qual o problema com bancos de dados relacionais?

Page 19: NoSQL com Cassandra

Escalabilidade + ACID = digestão difícil

Page 20: NoSQL com Cassandra

BASE = ajuda na digestão

Basically Available Soft State Eventually Consistent

Page 21: NoSQL com Cassandra

Eventually Consistent

“Eventual” pt-br: pode não ocorrer

“Eventual” inglês: irá ocorrer em breve

Page 22: NoSQL com Cassandra

Teorema CAP

• Consistency:

– Todos os clientes enxergam os mesmos dados

– Consistência tradicional (ACID)

– Consistência eventual (BASE)

• Availability

• Partition tolerance

• Não mais que 2 dos 3 requisitos (E. Brewer, S. Gilbert, N. Lynch)

Page 23: NoSQL com Cassandra

Not Only SQL

Page 24: NoSQL com Cassandra

Difíceis de comparar

Page 25: NoSQL com Cassandra
Page 26: NoSQL com Cassandra

Cassandra: • Distribuído • Tolerante à falhas • Escalável • Orientado a colunas

Page 27: NoSQL com Cassandra

Bigtable, 2006 Dynamo, 2007

Open Source, 2008

Apache, 2009 Cassandra, 2010

Page 28: NoSQL com Cassandra
Page 29: NoSQL com Cassandra

Cassandra vs MySQL (50GB)

MySQL:

~300ms write

~350ms read

Cassandra:

~0.12ms write

~15ms read

Page 30: NoSQL com Cassandra
Page 31: NoSQL com Cassandra

Hello World

Page 32: NoSQL com Cassandra

Hello World Cassandra Download DataStax Community Edition ou Download Apache Cassandra ./cassandra ./cassandra-cli –h localhost –p 9160 Conflitos: cassandra.bat (windows) /etc/cassandra/cassandra-env.sh (ubuntu) Obs.: necessário Oracle Sun Java

Page 33: NoSQL com Cassandra

Hello World Cassandra

create keyspace jugvale;

use jugvale;

create column family demo;

set demo[0][0] = utf8(‘fernando’);

set demo[0][1] = utf8(‘masanori’);

get demo[0];

del demo[0];

exit;

Page 34: NoSQL com Cassandra

Hello World Cassandra

• Clientes Cassandra: Java, PHP, Python, Ruby...

• CQL (Cassandra Query Language)

• Pentaho Data Integration

Page 35: NoSQL com Cassandra
Page 36: NoSQL com Cassandra

• Analytics no mercado mundial, Gartner:

• 2009: +3.8 %

• 2010: +13.4%

• América Latina:

• 2010: +19.5%

Page 37: NoSQL com Cassandra

Operacional x Analítico

Operacional Analítico

Propósito Executar um processo Avaliar um processo

Estilo interação Insert, update, delete, query Query (read-only)

Escopo interação Transação individual Agregação

Padrão query Previsível e estável Imprevisível

Foco temporal Atual Histórico e atual

Otimização Update concorrente Query (agregação)

Projeto ER na 3FN Star Schema ou Cubo

(Adamson, 2010)

Page 38: NoSQL com Cassandra

Banco Relacional Tradicional

(Timo Elliott, SAP)

Page 39: NoSQL com Cassandra

Banco Colunar

(Timo Elliott, SAP)

Page 40: NoSQL com Cassandra

Hello World: Pentaho + Cassandra

Page 42: NoSQL com Cassandra
Page 43: NoSQL com Cassandra
Page 44: NoSQL com Cassandra

Créditos

• Jonathan Ellis (DataStax), vários slides

• Timo Elliott (SAP), tetris colunar

• ADAMSON, C., Star Schema, The Complete Reference, McGrawHill, 2010.