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
Big Data
•   2720 exabytes serão criados em 2012
•   1 exabyte = 1 bilhão de gigabytes
•   Mais bytes que estrelas no universo
•   Twitter: 230M tweets/dia
•   YouTube: upload de 1 hora de vídeo/seg
•   Drowning in numbers (The Economist)
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...
Qual o problema com bancos de
         dados relacionais?

“If I had asked people what they wanted, they
                would have said faster horses”.
                                    Henry Ford.
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
Hello World: Pentaho + Cassandra
•   Gravar dados no Cassandra
•   Ler dados do Cassandra
•   Criar um relatório a partir do Cassandra
•   Vídeos curtos incluídos nos links acima
Créditos
• Jonathan Ellis (DataStax), vários slides
• Timo Elliott (SAP), tetris colunar
• ADAMSON, C., Star Schema, The Complete
  Reference, McGrawHill, 2010.
Outros tópicos
• NewSQL
• The End of an Architectural Era, M.
  Stonebraker et al., VLDB 2007
• Polyglot Persistence (Martin Fowler)
Perguntas ou sugestões?
   fmasanori@gmail.com
  facebook.com/fmasanori
   twitter.com/fmasanori

NoSQL com Cassandra

  • 1.
    Cassandra NoSQL fmasanori@gmail.com 17 de março de 2012 slideshare.net/fmasanori
  • 2.
    Eu, vocês e Java • Motivação • Big Data e NoSQL • Cassandra • Hello World: Cassandra • Pentaho • Hello World: Pentaho + Cassandra • Perguntas e sugestões
  • 3.
    • Computação IME-USPe 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
  • 4.
    Vocês • Estudantes • Professores • Desenvolvedores Java • Sabe quem é Sang Shin • Sun Tech Days/ Java One • NoSQL • Cassandra • Pentaho
  • 5.
  • 6.
  • 7.
  • 8.
    Big Data • 2720 exabytes serão criados em 2012 • 1 exabyte = 1 bilhão de gigabytes • Mais bytes que estrelas no universo • Twitter: 230M tweets/dia • YouTube: upload de 1 hora de vídeo/seg • Drowning in numbers (The Economist)
  • 9.
  • 10.
    Escalabilidade vertical • Escalabilidadepara leituras num banco relacional é trabalhoso • Escalabilidade para escritas num banco relacional é virtualmente impossível (e caso você consiga ele deixou de ser relacional...)
  • 11.
  • 12.
  • 13.
  • 14.
    Dois artigos famosos •Bigtable: A distributed storage system for structured data, 2006 • Dynamo: Amazon’s highly available key- value store, 2007
  • 15.
  • 17.
    Not Only SQL MasBDs não relacionais são antigos...
  • 18.
    Qual o problemacom bancos de dados relacionais? “If I had asked people what they wanted, they would have said faster horses”. Henry Ford.
  • 19.
    Escalabilidade + ACID= digestão difícil
  • 20.
    BASE = ajudana digestão Basically Available Soft State Eventually Consistent
  • 21.
    Eventually Consistent “Eventual” pt-br: pode não ocorrer “Eventual” inglês: irá ocorrer em breve
  • 22.
    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)
  • 23.
  • 24.
  • 26.
    Cassandra: • Distribuído • Tolerante à falhas • Escalável • Orientado a colunas
  • 27.
    Bigtable, 2006 Dynamo, 2007 Open Source, 2008 Apache, 2009 Cassandra, 2010
  • 29.
    Cassandra vs MySQL(50GB) MySQL: ~300ms write ~350ms read Cassandra: ~0.12ms write ~15ms read
  • 31.
  • 32.
    Hello World Cassandra DownloadDataStax 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
  • 33.
    Hello World Cassandra createkeyspace 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;
  • 34.
    Hello World Cassandra •Clientes Cassandra: Java, PHP, Python, Ruby... • CQL (Cassandra Query Language) • Pentaho Data Integration
  • 36.
    • Analytics nomercado mundial, Gartner: • 2009: +3.8 % • 2010: +13.4% • América Latina: • 2010: +19.5%
  • 37.
    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)
  • 38.
    Banco Relacional Tradicional (Timo Elliott, SAP)
  • 39.
    Banco Colunar (Timo Elliott, SAP)
  • 40.
  • 41.
    Hello World: Pentaho+ Cassandra • Gravar dados no Cassandra • Ler dados do Cassandra • Criar um relatório a partir do Cassandra • Vídeos curtos incluídos nos links acima
  • 44.
    Créditos • Jonathan Ellis(DataStax), vários slides • Timo Elliott (SAP), tetris colunar • ADAMSON, C., Star Schema, The Complete Reference, McGrawHill, 2010.
  • 45.
    Outros tópicos • NewSQL •The End of an Architectural Era, M. Stonebraker et al., VLDB 2007 • Polyglot Persistence (Martin Fowler)
  • 46.
    Perguntas ou sugestões? fmasanori@gmail.com facebook.com/fmasanori twitter.com/fmasanori