NoSQL com Cassandra

Post on 25-May-2015

3.810 views 4 download

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

Cassandra NoSQL fmasanori@gmail.com 17 de março de 2012

slideshare.net/fmasanori

• Eu, vocês e Java

• Motivação

• Big Data e NoSQL

• Cassandra

• Hello World: Cassandra

• Pentaho

• Hello World: Pentaho + Cassandra

• Perguntas e sugestões

• 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

Vocês • Estudantes

• Professores

• Desenvolvedores Java

• Sabe quem é Sang Shin

• Sun Tech Days/ Java One

• NoSQL

• Cassandra

• Pentaho

Job Trends (indeed.com)

Job Trends (indeed.com)

Big Data

Novas arquiteturas são necessárias

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...)

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

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

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

Henry Ford.

Qual o problema com bancos de dados relacionais?

Escalabilidade + ACID = digestão difícil

BASE = ajuda na digestão

Basically Available Soft State Eventually Consistent

Eventually Consistent

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

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

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)

Not Only SQL

Difíceis de comparar

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

Bigtable, 2006 Dynamo, 2007

Open Source, 2008

Apache, 2009 Cassandra, 2010

Cassandra vs MySQL (50GB)

MySQL:

~300ms write

~350ms read

Cassandra:

~0.12ms write

~15ms read

Hello World

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

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;

Hello World Cassandra

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

• CQL (Cassandra Query Language)

• Pentaho Data Integration

• Analytics no mercado mundial, Gartner:

• 2009: +3.8 %

• 2010: +13.4%

• América Latina:

• 2010: +19.5%

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)

Banco Relacional Tradicional

(Timo Elliott, SAP)

Banco Colunar

(Timo Elliott, SAP)

Hello World: Pentaho + Cassandra

Créditos

• Jonathan Ellis (DataStax), vários slides

• Timo Elliott (SAP), tetris colunar

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

Perguntas ou sugestões? fmasanori@gmail.com

facebook.com/fmasanori

twitter.com/fmasanori