SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

En vedette

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
 

En vedette (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
 

Dernier

William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...LizanSantos1
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 anoandrealeitetorres
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 

Dernier (20)

William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 ano
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 

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

Notes de l'éditeur

  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