SlideShare uma empresa 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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

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
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
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
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
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
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
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
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
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
 
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
 

Último (20)

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
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
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
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
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
 
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!
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
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
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
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?
 
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
 

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 do 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