SlideShare una empresa de Scribd logo
1 de 33
COMPUTAÇÃO
                   NA NUVEM
      MIGRAÇÃO DE UM ESQUEMA
      RELACIONAL PARA O BANCO
        DE DADOS CASSANDRA

Especialização em Tecnologia da Informação com Ênfase em Desenvolvimento Web
                                                    Jonatan Silva dos Santos
                                                                  MAR/2012
CONTEÚDO
• Motivação
• Objetivos
• Banco de Dados Cassandra
• Migração de um esquema relacional
  para o Cassandra
• Conclusão



            Migração de um Esquema Relacional para o Cassandra
MOTIVAÇÃO
• Área de estudo recente
• Novas tecnologias
• Tendência dos próximos anos
• Possibilidade de processamento de
  grande quantidade de dados
• Soluções mais robustas para a
  resolução de problemas


             Migração de um Esquema Relacional para o Cassandra
OBJETIVOS
• Entender o funcionamento do banco
  de dados Cassandra
• Analisar questões relacionadas à
  migração de um modelo relacional
  para o modelo em colunas do
  Cassandra
• Avaliar vantagens e desvantagens


            Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
        CASSANDRA
• Projeto Apache Foundation
• SGBD livre, open-source
• Escrito em JAVA
• Armazenamento distribuído de dados
• Desenvolvido pelo Facebook em
  2007.
• Empresas que utilizam: Facebook,
  Twitter, Cisco, etc.

            Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Características:
  – Elasticidade e escalabilidade
  – Confiabilidade
  – Durabilidade
  – Desempenho


• Modelo de dados:
  – Orientado a colunas

               Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
          CASSANDRA
• Conceitos:
  – Keyspace (similar ao database do modelo
    relacional)
  – Família de colunas (similar a uma tabela do
    modelo relacional)
  – Super família de colunas
  – Chave de linha (chave primária)

• Limitações
  – Não há chave estrangeira
  – Impossível realizar junções

                 Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
        CASSANDRA
• Família de colunas dinâmicas:




             Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
        CASSANDRA
• Família de colunas estáticas:




              Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Coluna:
  – Nome
  – Valor (opcional)
  – Timestamp


• Super Coluna
  – Forma de agrupamento de dados com
    base em um valor de pesquisa comum


               Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Tipos de dados:
  – Validadores (valor de chave de linha e
    valor de coluna)
  – Comparadores (nome de coluna)


• Blob, Ascii, Text, Varchar, int, bigint,
  timestamp, boolean, float, double,
  decimal, counter

               Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Arquitetura:
  – Nós independentes participantes de um
    cluster
  – Não há gestão centralizada
  – Nós semeadores: contém informações
    do cluster para associação de novos nós
  – Protocolo Gossip: descobrir localização e
    estado dos outros nós


                 Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Particionamento dos dados:
  – Métodos de particionamento
  – Representação lógica em forma de anel
  – Divisão do anel em intervalos de dados
    iguais ao número de nós
  – Token determina posição do nó no anel
  – Famílias de colunas particionadas no
    cluster pelo valor da chave de linha


              Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Replicação de dados:
  – Métodos de replicação
  – Cópia dos dados pelos nós do cluster
  – Na criação do Keyspace, definir
    quantidade de cópias de cada registro
    (fator de replicação)
  – Requisição de leitura ou escrita é
    enviada a qualquer nó
  – Registro mais atual com base no
    timestamp

               Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• Transações e controle de
  concorrência:
  – Não oferece completamente ACID
    (atomicidade, consistência, isolamento e
    durabilidade)
  – Não há bloqueio
  – Não há dependências transacionais
  – Preza pela alta disponibilidade e alto
    desempenho na escrita em detrimento
    de isolamento e atomicidade

               Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
          CASSANDRA
• Consistência dos dados:
  – Consistência eventual
  – Vários níveis de consistência para leitura (any,
    one, quorum, local_quorum, each_quorum, all)
  – Vários níveis de consistência para escrita (one,
    quorum, local_quorum, each_quorum, all)
• Mecanismos de verificação:
  – Read repair
  – Anti-entropy
  – Hinted handoff

                 Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
         CASSANDRA
• APIs:
  – Thrift (API RPC)
  – CLI (interface de linha de comando)
  – CQL (Cassandra Query Language)
    • Semelhante ao SQL




               Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
            CASSANDRA
• CQL (Cassandra Query Language)

CREATE KEYSPACE
• Objetivo: criar um keyspace e realizar a configuração do
  mesmo.
• Sintaxe:
  CREATE KEYSPACE <NOME> WITH strategy_class =
  <ESTRATÉGIA>AND strategy_options.<OPÇÃO> =
  <VALOR> [AND strategy_options.<OPÇÃO> = <VALOR>];

• Exemplo:
  CREATE KEYSPACE twissandra WITHstrategy_class =
  'NetworkTopologyStrategy'AND
  strategy_options:replication_factor=3;


                    Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
               CASSANDRA
• CQL (Cassandra Query Language)

CREATE COLUMNFAMILY
• Objetivo: Utilizado para criar uma família de colunas.
• Sintaxe:
  CREATE COLUMNFAMILY <FAMÍLIA DE COLUNAS> (<KEY> <tipo>
  PRIMARY KEY [, name1 tipo, name2 tipo, ...]);CREATE COLUMNFAMILY
  <FAMÍLIA DE COLUNAS> (<KEY> <tipo> PRIMARY KEY [, name1 tipo,
  name2 tipo, ...])[WITH <PARÂMETRO1> = <VALOR1> [AND
  <PARÂMETRO2> = <VALOR2> [AND ...]]];

•   Exemplo:
    CREATE COLUMNFAMILY usuario (      nome_usuario varchar PRIMARY
    KEY,   senha varchar,    sexo varchar,   estado_civil varchar,
    ano_nascimento int)WITH comment=’família de colunas de usuário’ AND
    comparator=UTF8Type;




                          Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
            CASSANDRA
• CQL (Cassandra Query Language)

SELECT
• Objetivo: Utilizado para consulta de um ou mais registros.
• Sintaxe:
  SELECT [FIRST N] [REVERSED] <SELECT EXPR> FROM
  <FAMÍLIA DE COLUNAS> [USING <CONSISTÊNCIA>]
  [WHERE <Claúsula>] [LIMIT N];

• Exemplo:
  SELECT * FROM usuario WHERE nome_usuario='joao';




                     Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
            CASSANDRA
• CQL (Cassandra Query Language)

ALTER TABLE
• Objetivo: Comando utilizado para manipular colunas. Permite
  adicionar novas colunas, alterar colunas e apagar colunas.
• Sintaxe:
  ALTER TABLE <FAMÍLIA DE COLUNAS> ADD <COLUNA>
  <VALIDADOR>;
  ALTER TABLE <FAMÍLIA DE COLUNAS> ALTER <COLUNA> TYPE
  <VALIDADOR>;
  ALTER TABLE <FAMÍLIA DE COLUNAS> DROP <COLUNA>;

• Exemplo:
  ALTER TABLE usuario ADD cep varchar;
  ALTER TABLE usuario ALTER cep TYPE int;
  ALTER TABLE usuario DROP cep;


                      Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
             CASSANDRA
• CQL (Cassandra Query Language)

INSERT
• Objetivo: Comando utilizado para inserir um registro ou alterar
  colunas. Se o registro não existir, é criado. Se já existir, as
  colunas são atualizadas.
• Sintaxe:
  INSERT INTO <FAMÍLIA DE COLUNAS> (<KEY>, <col>,
  <col>, ...) VALUES (<key>, <val>, <val>, ...) [USING
  CONSISTENCY <NÍVEL> [AND TIMESTAMP <timestamp>] [AND
  TTL <timeToLive>]];

• Exemplo:
  INSERT INTO usuario (nome_usuario, senha) VALUES ('joao',
  'i120939');




                       Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
            CASSANDRA
• CQL (Cassandra Query Language)

UPDATE
• Objetivo: Utilizado para atualizar uma ou mais colunas de
  uma família de colunas.
• Sintaxe:
  UPDATE <FAMÍLIA DE COLUNAS> [USING
  <CONSISTÊNCIA> [AND TIMESTAMP <timestamp>] [AND
  TTL <timeToLive>]]SET nome1 = valor1, nome2 = valor2
  WHERE <KEY> = <VALOR>;

• Exemplo:
  UPDATE usuario USING TTL 432000 SET senha =
  'ch@ngem3a' WHERE nome_usuario = 'joao';


                     Migração de um Esquema Relacional para o Cassandra
BANCO DE DADOS
             CASSANDRA
• CQL (Cassandra Query Language)

DELETE
• Objetivo: Comando utilizado para apagar uma ou mais colunas de
  uma ou mais linhas ou mesmo para apagar todas as colunas de
  acordo com a cláusula WHERE.
• Sintaxe:
  DELETE [COLUNAS] FROM <FAMÍLIA DE COLUNAS> [USING
  <CONSISTÊNCIA>] WHERE KEY = <VALOR>DELETE [COLUNAS]
  FROM <FAMÍLIA DE COLUNAS> [USING <CONSISTÊNCIA>]
  WHERE KEY IN (<VALOR1, VALOR2);

• Exemplo:
  DELETE ano_nascimento FROM usuario where nome_usuario =
  'joao';DELETE FROM usuario where nome_usuario = ' joao';




                      Migração de um Esquema Relacional para o Cassandra
MIGRAÇÃO DE ESQUEMA
RELACIONAL PARA CASSANDRA
• Planejamento
  – Diferente da modelagem relacional
  – Depende de quais funcionalidades a
    aplicação cliente necessita
  – Identificar as consultas que serão
    realizadas (famílias de colunas)
  – Otimização: desnormalização dos dados
  – Não há violação de integridade
    (UPSERT)

              Migração de um Esquema Relacional para o Cassandra
MIGRAÇÃO DE ESQUEMA
RELACIONAL PARA CASSANDRA
• Estudo de caso
  – Exemplo de uma site de venda de CDs
  – Apresentar o modelo relacional




              Migração de um Esquema Relacional para o Cassandra
• Modelo Relacional x Modelo em Coluna
             Consultas que serão realizadas:
               1) Consultar dados de um CD;
               2) Pesquisar CDs por título;
               3) Pesquisar CDs por gênero musical;
               4) Pesquisar músicas de um CD;
               5) Pesquisar CDs por artista;
               6) Pesquisar artistas de um CD;
               7) Pesquisar fornecedores por cidade.




             Migração de um Esquema Relacional para o Cassandra
• Modelo em Coluna




            Migração de um Esquema Relacional para o Cassandra
• Modelo em Coluna




            Migração de um Esquema Relacional para o Cassandra
• Modelo em Coluna




            Migração de um Esquema Relacional para o Cassandra
CONCLUSÃO
• Necessidade de evolução da linguagem CQL
• Para cada nova funcionalidade, pode ser
  necessária uma família de coluna nova
• Elasticidade dos recursos. Adição de novos
  nós
• Alta escalabilidade
• Utilização de Cassandra para dados não
  críticos (consistência eventual)
• Utilização por grandes organizações
  (Twitter, Facebook, Digg)
• Analisar possibilidade de os dados estarem
  parte em SGBD relacional e parte em outro
  SGBD como Cassandra
               Migração de um Esquema Relacional para o Cassandra
TRABALHOS FUTUROS
• Criação de ferramenta CASE para
  modelagem de dados para Cassandra
• Realização de benchmark para
  comparar SGBDs NoSql.




            Migração de um Esquema Relacional para o Cassandra
Obrigado!
Jonatan Silva

Más contenido relacionado

Destacado

Apresentacao Cassandra
Apresentacao CassandraApresentacao Cassandra
Apresentacao CassandraPeslPinguim
 
Persistência nas Nuvens com NoSQL
Persistência nas Nuvens com NoSQLPersistência nas Nuvens com NoSQL
Persistência nas Nuvens com NoSQLRodrigo Hjort
 
Boas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on RailsBoas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on Railsrinaldifonsecanascimento
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoJulio Monteiro
 
Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na práticaTI Infnet
 
Programacao Funcional Em Ruby
Programacao Funcional Em RubyProgramacao Funcional Em Ruby
Programacao Funcional Em RubyElomar Souza
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Ambiente Livre
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesAmbiente Livre
 
Banco de Dados - Trabalho de Tauan Silva
Banco de Dados - Trabalho de Tauan SilvaBanco de Dados - Trabalho de Tauan Silva
Banco de Dados - Trabalho de Tauan SilvaGuto Xavier
 
Real-time Cassandra
Real-time CassandraReal-time Cassandra
Real-time CassandraAcunu
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Ambiente Livre
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
Spark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataVictor Coustenoble
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoAmbiente Livre
 
Real-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkReal-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkGuido Schmutz
 
NoSQL databases pros and cons
NoSQL databases pros and consNoSQL databases pros and cons
NoSQL databases pros and consFabio Fumarola
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 

Destacado (20)

Apresentacao Cassandra
Apresentacao CassandraApresentacao Cassandra
Apresentacao Cassandra
 
Persistência nas Nuvens com NoSQL
Persistência nas Nuvens com NoSQLPersistência nas Nuvens com NoSQL
Persistência nas Nuvens com NoSQL
 
Boas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on RailsBoas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on Rails
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documento
 
Pentaho
PentahoPentaho
Pentaho
 
Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na prática
 
Programacao Funcional Em Ruby
Programacao Funcional Em RubyProgramacao Funcional Em Ruby
Programacao Funcional Em Ruby
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data Lakes
 
Banco de Dados - Trabalho de Tauan Silva
Banco de Dados - Trabalho de Tauan SilvaBanco de Dados - Trabalho de Tauan Silva
Banco de Dados - Trabalho de Tauan Silva
 
Real-time Cassandra
Real-time CassandraReal-time Cassandra
Real-time Cassandra
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Spark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational Data
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
 
Real-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkReal-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache Spark
 
NoSQL databases pros and cons
NoSQL databases pros and consNoSQL databases pros and cons
NoSQL databases pros and cons
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 

Último

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholacleanelima11
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 

Último (20)

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 

Migração de um Esquema Relacional para o banco de dados Cassandra

  • 1. COMPUTAÇÃO NA NUVEM MIGRAÇÃO DE UM ESQUEMA RELACIONAL PARA O BANCO DE DADOS CASSANDRA Especialização em Tecnologia da Informação com Ênfase em Desenvolvimento Web Jonatan Silva dos Santos MAR/2012
  • 2. CONTEÚDO • Motivação • Objetivos • Banco de Dados Cassandra • Migração de um esquema relacional para o Cassandra • Conclusão Migração de um Esquema Relacional para o Cassandra
  • 3. MOTIVAÇÃO • Área de estudo recente • Novas tecnologias • Tendência dos próximos anos • Possibilidade de processamento de grande quantidade de dados • Soluções mais robustas para a resolução de problemas Migração de um Esquema Relacional para o Cassandra
  • 4. OBJETIVOS • Entender o funcionamento do banco de dados Cassandra • Analisar questões relacionadas à migração de um modelo relacional para o modelo em colunas do Cassandra • Avaliar vantagens e desvantagens Migração de um Esquema Relacional para o Cassandra
  • 5. BANCO DE DADOS CASSANDRA • Projeto Apache Foundation • SGBD livre, open-source • Escrito em JAVA • Armazenamento distribuído de dados • Desenvolvido pelo Facebook em 2007. • Empresas que utilizam: Facebook, Twitter, Cisco, etc. Migração de um Esquema Relacional para o Cassandra
  • 6. BANCO DE DADOS CASSANDRA • Características: – Elasticidade e escalabilidade – Confiabilidade – Durabilidade – Desempenho • Modelo de dados: – Orientado a colunas Migração de um Esquema Relacional para o Cassandra
  • 7. BANCO DE DADOS CASSANDRA • Conceitos: – Keyspace (similar ao database do modelo relacional) – Família de colunas (similar a uma tabela do modelo relacional) – Super família de colunas – Chave de linha (chave primária) • Limitações – Não há chave estrangeira – Impossível realizar junções Migração de um Esquema Relacional para o Cassandra
  • 8. BANCO DE DADOS CASSANDRA • Família de colunas dinâmicas: Migração de um Esquema Relacional para o Cassandra
  • 9. BANCO DE DADOS CASSANDRA • Família de colunas estáticas: Migração de um Esquema Relacional para o Cassandra
  • 10. BANCO DE DADOS CASSANDRA • Coluna: – Nome – Valor (opcional) – Timestamp • Super Coluna – Forma de agrupamento de dados com base em um valor de pesquisa comum Migração de um Esquema Relacional para o Cassandra
  • 11. BANCO DE DADOS CASSANDRA • Tipos de dados: – Validadores (valor de chave de linha e valor de coluna) – Comparadores (nome de coluna) • Blob, Ascii, Text, Varchar, int, bigint, timestamp, boolean, float, double, decimal, counter Migração de um Esquema Relacional para o Cassandra
  • 12. BANCO DE DADOS CASSANDRA • Arquitetura: – Nós independentes participantes de um cluster – Não há gestão centralizada – Nós semeadores: contém informações do cluster para associação de novos nós – Protocolo Gossip: descobrir localização e estado dos outros nós Migração de um Esquema Relacional para o Cassandra
  • 13. BANCO DE DADOS CASSANDRA • Particionamento dos dados: – Métodos de particionamento – Representação lógica em forma de anel – Divisão do anel em intervalos de dados iguais ao número de nós – Token determina posição do nó no anel – Famílias de colunas particionadas no cluster pelo valor da chave de linha Migração de um Esquema Relacional para o Cassandra
  • 14. BANCO DE DADOS CASSANDRA • Replicação de dados: – Métodos de replicação – Cópia dos dados pelos nós do cluster – Na criação do Keyspace, definir quantidade de cópias de cada registro (fator de replicação) – Requisição de leitura ou escrita é enviada a qualquer nó – Registro mais atual com base no timestamp Migração de um Esquema Relacional para o Cassandra
  • 15. BANCO DE DADOS CASSANDRA • Transações e controle de concorrência: – Não oferece completamente ACID (atomicidade, consistência, isolamento e durabilidade) – Não há bloqueio – Não há dependências transacionais – Preza pela alta disponibilidade e alto desempenho na escrita em detrimento de isolamento e atomicidade Migração de um Esquema Relacional para o Cassandra
  • 16. BANCO DE DADOS CASSANDRA • Consistência dos dados: – Consistência eventual – Vários níveis de consistência para leitura (any, one, quorum, local_quorum, each_quorum, all) – Vários níveis de consistência para escrita (one, quorum, local_quorum, each_quorum, all) • Mecanismos de verificação: – Read repair – Anti-entropy – Hinted handoff Migração de um Esquema Relacional para o Cassandra
  • 17. BANCO DE DADOS CASSANDRA • APIs: – Thrift (API RPC) – CLI (interface de linha de comando) – CQL (Cassandra Query Language) • Semelhante ao SQL Migração de um Esquema Relacional para o Cassandra
  • 18. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) CREATE KEYSPACE • Objetivo: criar um keyspace e realizar a configuração do mesmo. • Sintaxe: CREATE KEYSPACE <NOME> WITH strategy_class = <ESTRATÉGIA>AND strategy_options.<OPÇÃO> = <VALOR> [AND strategy_options.<OPÇÃO> = <VALOR>]; • Exemplo: CREATE KEYSPACE twissandra WITHstrategy_class = 'NetworkTopologyStrategy'AND strategy_options:replication_factor=3; Migração de um Esquema Relacional para o Cassandra
  • 19. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) CREATE COLUMNFAMILY • Objetivo: Utilizado para criar uma família de colunas. • Sintaxe: CREATE COLUMNFAMILY <FAMÍLIA DE COLUNAS> (<KEY> <tipo> PRIMARY KEY [, name1 tipo, name2 tipo, ...]);CREATE COLUMNFAMILY <FAMÍLIA DE COLUNAS> (<KEY> <tipo> PRIMARY KEY [, name1 tipo, name2 tipo, ...])[WITH <PARÂMETRO1> = <VALOR1> [AND <PARÂMETRO2> = <VALOR2> [AND ...]]]; • Exemplo: CREATE COLUMNFAMILY usuario ( nome_usuario varchar PRIMARY KEY, senha varchar, sexo varchar, estado_civil varchar, ano_nascimento int)WITH comment=’família de colunas de usuário’ AND comparator=UTF8Type; Migração de um Esquema Relacional para o Cassandra
  • 20. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) SELECT • Objetivo: Utilizado para consulta de um ou mais registros. • Sintaxe: SELECT [FIRST N] [REVERSED] <SELECT EXPR> FROM <FAMÍLIA DE COLUNAS> [USING <CONSISTÊNCIA>] [WHERE <Claúsula>] [LIMIT N]; • Exemplo: SELECT * FROM usuario WHERE nome_usuario='joao'; Migração de um Esquema Relacional para o Cassandra
  • 21. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) ALTER TABLE • Objetivo: Comando utilizado para manipular colunas. Permite adicionar novas colunas, alterar colunas e apagar colunas. • Sintaxe: ALTER TABLE <FAMÍLIA DE COLUNAS> ADD <COLUNA> <VALIDADOR>; ALTER TABLE <FAMÍLIA DE COLUNAS> ALTER <COLUNA> TYPE <VALIDADOR>; ALTER TABLE <FAMÍLIA DE COLUNAS> DROP <COLUNA>; • Exemplo: ALTER TABLE usuario ADD cep varchar; ALTER TABLE usuario ALTER cep TYPE int; ALTER TABLE usuario DROP cep; Migração de um Esquema Relacional para o Cassandra
  • 22. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) INSERT • Objetivo: Comando utilizado para inserir um registro ou alterar colunas. Se o registro não existir, é criado. Se já existir, as colunas são atualizadas. • Sintaxe: INSERT INTO <FAMÍLIA DE COLUNAS> (<KEY>, <col>, <col>, ...) VALUES (<key>, <val>, <val>, ...) [USING CONSISTENCY <NÍVEL> [AND TIMESTAMP <timestamp>] [AND TTL <timeToLive>]]; • Exemplo: INSERT INTO usuario (nome_usuario, senha) VALUES ('joao', 'i120939'); Migração de um Esquema Relacional para o Cassandra
  • 23. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) UPDATE • Objetivo: Utilizado para atualizar uma ou mais colunas de uma família de colunas. • Sintaxe: UPDATE <FAMÍLIA DE COLUNAS> [USING <CONSISTÊNCIA> [AND TIMESTAMP <timestamp>] [AND TTL <timeToLive>]]SET nome1 = valor1, nome2 = valor2 WHERE <KEY> = <VALOR>; • Exemplo: UPDATE usuario USING TTL 432000 SET senha = 'ch@ngem3a' WHERE nome_usuario = 'joao'; Migração de um Esquema Relacional para o Cassandra
  • 24. BANCO DE DADOS CASSANDRA • CQL (Cassandra Query Language) DELETE • Objetivo: Comando utilizado para apagar uma ou mais colunas de uma ou mais linhas ou mesmo para apagar todas as colunas de acordo com a cláusula WHERE. • Sintaxe: DELETE [COLUNAS] FROM <FAMÍLIA DE COLUNAS> [USING <CONSISTÊNCIA>] WHERE KEY = <VALOR>DELETE [COLUNAS] FROM <FAMÍLIA DE COLUNAS> [USING <CONSISTÊNCIA>] WHERE KEY IN (<VALOR1, VALOR2); • Exemplo: DELETE ano_nascimento FROM usuario where nome_usuario = 'joao';DELETE FROM usuario where nome_usuario = ' joao'; Migração de um Esquema Relacional para o Cassandra
  • 25. MIGRAÇÃO DE ESQUEMA RELACIONAL PARA CASSANDRA • Planejamento – Diferente da modelagem relacional – Depende de quais funcionalidades a aplicação cliente necessita – Identificar as consultas que serão realizadas (famílias de colunas) – Otimização: desnormalização dos dados – Não há violação de integridade (UPSERT) Migração de um Esquema Relacional para o Cassandra
  • 26. MIGRAÇÃO DE ESQUEMA RELACIONAL PARA CASSANDRA • Estudo de caso – Exemplo de uma site de venda de CDs – Apresentar o modelo relacional Migração de um Esquema Relacional para o Cassandra
  • 27. • Modelo Relacional x Modelo em Coluna Consultas que serão realizadas: 1) Consultar dados de um CD; 2) Pesquisar CDs por título; 3) Pesquisar CDs por gênero musical; 4) Pesquisar músicas de um CD; 5) Pesquisar CDs por artista; 6) Pesquisar artistas de um CD; 7) Pesquisar fornecedores por cidade. Migração de um Esquema Relacional para o Cassandra
  • 28. • Modelo em Coluna Migração de um Esquema Relacional para o Cassandra
  • 29. • Modelo em Coluna Migração de um Esquema Relacional para o Cassandra
  • 30. • Modelo em Coluna Migração de um Esquema Relacional para o Cassandra
  • 31. CONCLUSÃO • Necessidade de evolução da linguagem CQL • Para cada nova funcionalidade, pode ser necessária uma família de coluna nova • Elasticidade dos recursos. Adição de novos nós • Alta escalabilidade • Utilização de Cassandra para dados não críticos (consistência eventual) • Utilização por grandes organizações (Twitter, Facebook, Digg) • Analisar possibilidade de os dados estarem parte em SGBD relacional e parte em outro SGBD como Cassandra Migração de um Esquema Relacional para o Cassandra
  • 32. TRABALHOS FUTUROS • Criação de ferramenta CASE para modelagem de dados para Cassandra • Realização de benchmark para comparar SGBDs NoSql. Migração de um Esquema Relacional para o Cassandra

Notas del editor

  1. Read repair – o coordenador atualiza os nós com o valor mais atual
  2. Read repair – o coordenador atualiza os nós com o valor mais atual
  3. Read repair – o coordenador atualiza os nós com o valor mais atual
  4. Read repair – o coordenador atualiza os nós com o valor mais atual
  5. Read repair – o coordenador atualiza os nós com o valor mais atual
  6. Read repair – o coordenador atualiza os nós com o valor mais atual
  7. Read repair – o coordenador atualiza os nós com o valor mais atual
  8. Read repair – o coordenador atualiza os nós com o valor mais atual
  9. Read repair – o coordenador atualiza os nós com o valor mais atual
  10. Read repair – o coordenador atualiza os nós com o valor mais atual
  11. Read repair – o coordenador atualiza os nós com o valor mais atual