Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL (Parte 2)



Documentos relacionados
Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL

Análise de Abordagens para Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2

Bases de Dados Relacional/Objeto e NoSQL. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Introdução aos Bancos de Dados Não-Relacionais. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador)

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software

Um método de integração de dados armazenados em bancos de dados relacionais e NOSQL

PVFS-Store - Um repositório chave-valor com garantia de localidade

SISTEMA GERENCIADOR DE BANCO DE DADOS

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

NoSQL. Cintia Freitas de Moura. BCC 441 Banco de Dados II / 2014

HadoopDB. Edson Ie Serviço Federal de Processamento de Dados - SERPRO

BANCO DE DADOS 1 AULA 1. estrutura do curso e conceitos fundamentais. Professor Luciano Roberto Rocha. contato@lrocha.

INE 5336 Banco de Dados II

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Oficina. Praça das Três Caixas d Água Porto Velho - RO

INE 5432 Banco de Dados II

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto

PROJETO DE BANCO DE DADOS -INTRODUÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Persistência e Banco de Dados em Jogos Digitais

PROJETO DE BANCO DE DADOS -INTRODUÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Pollyanna Gonçalves. Seminário da disciplina Banco de Dados II

Neo4j Aprendendo conceitos por trás do Neo4j. Sem SQL? Apresentação. Por que grafos, por que agora? Por que grafos, por que agora?

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Uma arquitetura de Cloud Computing para análise de Big Data proveniente da Internet of Things

INTRODUÇÃO. Enfoque abstrato. Enfoque Intermediário

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof. Daniela Barreiro Claro

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Bancos de dados NOSQL (Not Only SQL)

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Análise comparativa sobre bases de dados para armazenamento e consulta de dados não estruturados no formato JSON.

Determinando Correspondências entre Atributos de Produtos em Ofertas de Comércio Eletrônico

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos

Europass Curriculum Vitae

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Banco de Dados, Integração e Qualidade de Dados. Ceça Moraes cecafac@gmail.com

Uma Breve Introdução. Andréa Bordin

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Adoção de Requisitos da Qualidade e Produtividade em Software no Programa BIOTA-MS, Através de Implantação da Fábrica de Software do Batlab.

Comandos de Manipulação

Junções e Índices em Tabelas

Administração de Sistemas de Informação Gerenciais

INF70 Gerenciamento de Banco de Dados 2 Plano de Curso e Introdução

Prof. Daniela Barreiro Claro

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

INE 5616 Banco de Dados II

Técnicas e Linguagens para Banco de Dados I

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Por que? A WEB está substituindo o desktop Google Gmail, Google Docs, Amazon, Flickr, Facebook, Twitter, YouTube Mudança de Paradigma:

Bancos de Dados NoSQL x SGBDs Relacionais:Análise Comparativa*

Docente: Éberton da Silva Marinho

Prof.: Clayton Maciel Costa

Noções de. Microsoft SQL Server. Microsoft SQL Server

Adoção de Requisitos da Qualidade e Produtividade em Software no Programa BIOTA-MS, Através de Implantação da Fábrica de Software do Batlab.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

Disciplina: Tecnologias de Banco de Dados para SI s

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular OPÇÃO IV - TÓPICOS AVANÇADOS DE BASES DE DADOS Ano Lectivo 2010/2011

Um Servidor Escalável para Bases Massivas de

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Conceitos de Banco de Dados

ESTUDO SOBRE A TECNOLOGIA DE BANCO DE DADOS NoSQL

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Prof. Marcelo Machado Cunha

NOVO MODELO PARA AUTORIZAÇÃO EM FEDERAÇÕES DE IDENTIDADE PARA COMPUTAÇÃO EM NUVEM

Disciplina: Unidade III: Prof.: Período:

Gestão de Tecnologia da Informação

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Roteiro 2 Conceitos Gerais

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

NoSQL Edward Ribeiro

SISTEMAS DE INFORMAÇÃO GERENCIAIS

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

Conceitos Básicos. Conceitos Básicos. Sistema de Arquivos. Prof. Edilberto Silva - edilms@yahoo.com. Sistemas de Informação Brasília/DF

Tuning para Desenvolvedores DB2

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Avaliação do desempenho de gerenciadores de bancos de dados multi modelo em aplicações com persistência poliglota

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Sistemas de Banco de Dados

BDII SQL Junção Revisão 8

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados.

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

NoSQL na Web 2.0: Um Estudo Comparativo de Bancos Não-Relacionais para Armazenamento de Dados na Web 2.0

Disciplina de Banco de Dados Parte V

Análise do impacto de operações de live migration em ambientes de computação em nuvem Workshop MoDCS

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

4 Implementação e Resultados Experimentais

Banco de Dados I. Modelo Entidade Relacionamento Mapeamento para tabelas. Apresentação. Ementa

E N AT O M O L I N A T O T H

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Transcrição:

Minicurso: Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL (Parte 2) Geomar A. Schreiner - schreiner.geomar@posgrad.ufsc.br Ronaldo S. Mello r.mello@ufsc.br Departamento de Informática e Estatística (INE) Programa de Pós-Graduação em Ciência da Computação (PPGCC) Universidade Federal de Santa Catarina (UFSC)

Sumário Abordagens Layer Storage Engine Comparação Conclusão 2

Abordagens do tipo Layer SimpleSQL [Ferreira et al, 2013] JackHare [Chung et al, 2013] Unity [Lawrence, 2013] [Rith et al, 2014] Apache Phoenix

SimpleSQL Camada para o SimpleDB Desenvolvido pela Amazon Baseado em Documentos Dominio Item Atributo Valor

SimpleSQL Camada para o SimpleDB Desenvolvido pela Amazon Baseado em Documentos Dominio Item Atributo Valor Dominio{ Item 1 { } } Item n { } Att 1 : valor 1 ; Att n : valor n ; Att 1 : valor 1 ; Att n : valor n ;

SimpleSQL Camada para o SimpleDB Desenvolvido pela Amazon Baseado em Documentos Dominio Item Atributo Valor Relacional DB Tabela Tupla Coluna Valor NoSQL Dominio (Att) Itens Atributo Valor

SimpleSQL (SimpleDB) Biblioteca

SimpleSQL (SimpleDB) Biblioteca 1 SimpleSQL_TableName: Usuario Matricula: 1 Nome: Palpatine Cidade Natal: Naboo Telefone: 1111-1111

SimpleSQL (SimpleDB) Biblioteca 4 SimpleSQL_TableName: Emprestimo Id: 4 Cod: 2 Mat: 1 Devolvido: Não

SimpleSQL (SimpleDB) Suporte a Join

SimpleSQL (SimpleDB) Suporte a Join Join por Similiariedade Decomposição do comando e divisão em consultas simples Criada uma tabela com os resultados (respeitando o esquema da consulta) Combina os resultados pela similiariedade das chaves

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo Busca nome e matricula do Usuário Busca mat e cod de emprestimo Busca titulo e codigo do livro

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo

Abordagens do tipo Layer SimpleSQL [Ferreira et al, 2013] JackHare [Chung et al, 2013] Unity [Lawrence, 2013] [Rith et al, 2014] Apache Phoenix

JackHare (Hbase) Camada para o Hbase Hadoop + BigTable Baseado em Colunas HTables Fam. Colunas Chave Coluna Valor

JackHare (Hbase) Camada para o Hbase Hadoop + BigTable Baseado em Colunas HTables Fam. Colunas Chave Coluna Valor KeySpace{ HTable{ Fam. Col 1 { } } Chave{ Col 1 : valor 1 ; } } Fam. Col n { } Col n : valor n ; Chave{ Col 1 : valor 1 ; } Col n : valor n ;

JackHare (Hbase) Camada para o Hbase Hadoop + BigTable Baseado em Colunas HTables Fam. Colunas Chave Coluna Valor Relacional DB Tabela Tupla Coluna NoSQL HTable Fam. Colunas Ident. Unico Coluna Valor Valor

JackHare (HBase)

JackHare (Hbase) Suporta Join

JackHare (Hbase) Suporta Join Utiliza Map-Reduce Escolhe a menor das tabelas, transforma em um conjunto de chaves e coloca no Hbase Combina os valores da outra tabela com as chaves e atualiza a lista Após todos os elementos serem combinados com a lista das chaves apresenta o resultado

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo Pega as duas primeiras tabelas (usuario e emprestimo) Transforma a menor em um set de chaves Aplica map reduce combinando as chaves das duas tabelas armazenando Hbase Pega o resultado e repete o procedimento com a tabela livro Retorna o resultado 22

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo 23

Abordagens do tipo Layer SimpleSQL [Ferreira et al, 2013] JackHare [Chung et al, 2013] Unity [Lawrence, 2013] [Rith et al, 2014] Apache Phoenix

Unity (MongoDB) Camada para múltiplas fontes Mapeamento para o MongoDB Baseado em documentos Base de dados Conjunto de documentos Documentos Atributos Valores

Unity (MongoDB) Camada para múltiplas fontes Mapeamento para o MongoDB Baseado em documentos Base de dados Conjunto de documentos Documentos Atributos Valores Base{ Conjnto 1 { } } Doc 1 { } Doc n { } att 1 : valor 1 ; att n : valor n ; att 1 : valor 1 ; att n : valor n ;

Unity (MongoDB) Camada para múltiplas fontes Mapeamento para o MongoDB Baseado em documentos Base de dados Conjunto de documentos Documentos Atributos Valores Relacional DB Tabela Tupla Coluna Valor NoSQL BaseMongo Conj Doc Documento Atributo Valor

Unity (MongoDB) Biblioteca 28

Unity (MongoDB) Biblioteca Livro 29

Unity (MongoDB) Biblioteca Livro 7 Autor: George Lucas Titulo: Destruindo Vidas 4 Autor: Yoda Titulo: 800 Anos Jedi 30

Unity (MongoDB) Suporte a Join Em uma base Relacional Entre uma base NoSQL e uma Relacional Escolhe a maior tabela Entre bases NoSQL Hash-Join Chave feita com as chaves envolvidas no Join

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo Verifica onde os dados estão guardados: Relacional Relacional e NoSQL NoSQL e NoSQL 32

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo 33

Abordagens do tipo Layer SimpleSQL [Ferreira et al, 2013] JackHare [Chung et al, 2013] Unity [Lawrence, 2013] [Rith et al, 2014] Apache Phoenix

Rith et al Mapeamento para vários Dbs alvo (Cassandra e Mongo DB) Mapeamento realizado através de conectores (wrappers) específicos para cada um dos modelos de dados O desenvolvedor deve criar os conectores A base de dados já deve existir e os comandos SQL são traduzidos para a linguagem de consulta do DB alvo

Abordagens do tipo Layer SimpleSQL [Ferreira et al, 2013] JackHare [Chung et al, 2013] Unity [Lawrence, 2013] [Rith et al, 2014] Apache Phoenix

Apache Phoenix Desenvolvido pela Apache (Maio, 2014) Camada sobre o Hbase Banco Colunar Keyspace Fam. Colunas Chave Colunas Valores

Apache Phoenix Desenvolvido pela Apache (Maio, 2014) Camada sobre o Hbase Banco Colunar Keyspace Fam. Colunas Chave Colunas Valores KeySpace{ HTable 1 { } } Fam. Col 1 { Chave{ Col 1 : valor 1 ; } } Fam. Col n { } Col n : valor n ; Chave{ Col 1 : valor 1 ; } Col n : valor n ;

Apache Phoenix Desenvolvido pela Apache (Maio, 2014) Camada sobre o Hbase Banco Colunar Keyspace Fam. Colunas Chave Colunas Valores Relacional DB Tabela Tupla Coluna Valor NoSQL Namespace HTables Ident. Unico Coluna Valor

Exemplo

Apache Phoenix Suporte a Join 2 tipos Hash-Join Merge-Join

Como assim? SELECT u.nome, l.titulo FROM usuario u JOIN emprestimo e ON u.matricula = e.mat JOIN livro l ON e.cod = l.codigo Verifica o tamanho dos dados a serem acessados Descide entre o Merge e o Hash Join 42

Quem usa? 43

Sumário Abordagens Layer Storage Engine Comparação Conclusão

Categoria de Storage Engine Phoenix [Arnout et al, 2011] CloudyStore [Egger et al, 2009] DQE [Villaça et al, 2013]

Phoenix (Scalaris) Storage Engine para o MySQL Utiliza o Scalaris Banco colunar Chaves Valores Chave e { } Cave 1 { Chave 2 : valor 2 ; } Chave n { } Chave n+1 : valor n+1 ;

Phoenix (Scalaris)

Phoenix (Scalaris)

Phoenix (Scalaris)

Phoenix (Scalaris) Suporta Join Executado pelo SGBD

Categoria de Storage Engine Phoenix [Arnout et al, 2011] CloudyStore [Egger et al, 2009] DQE [Villaça et al, 2013]

CloudyStore (Cloudy) Storage Engine para o MySQL Feito sobre o Cloudy Desenvolvido pela ETH Zürich Banco colunar Keyspace Fam. Colunas Chave Coluna Valor KeySpace{ Fam. Col 1 { } Chave{ Col 1 : valor 1 ; } } Fam. Col n { } Col n : valor n ; Chave{ Col 1 : valor 1 ; } Col n : valor n ;

CloudyStore (Cloudy) Storage Engine para o MySQL Relacional DB NoSQL keyspace Feito sobre o Cloudy Desenvolvido pela ETH Zürich Banco colunar Keyspace Fam. Colunas Chave Coluna Valor Tabela Tupla Coluna Valor Fam. Colunas Ident. Unico Coluna Valor

CloudyStore (Cloudy)

Categoria de Storage Engine Phoenix [Ferreira et al, 2013] Cloudy [Chung et al, 2013] DQE [Lawrence, 2013]

DQE (Hbase) Modificação no DerbyDB Otimizações Camada Física Utiliza o Hbase Colunar Htable Fam. Coluna Cahve Colunas Valores KeySpace{ HTable 1 { } } Fam. Col 1 { Chave{ Col 1 : valor 1 ; } } Fam. Col n { } Col n : valor n ; Chave{ Col 1 : valor 1 ; } Col n : valor n ;

DQE (Hbase) Modificação no DerbyDB Otimizações Camada Física Relacional DB Tabela NoSQL Namespace HTables Utiliza o Hbase Colunar Htable Fam. Coluna Cahve Colunas Valores Tupla Coluna Valor Ident. Unico Coluna Valor

DQE (Hbase)

Sumário Abordagens Layer Storage Engine Comparação Conclusão

Comparação

Comparação

Comparação

Comparação

Comparação

Comparação

Sumário Abordagens Layer Storage Engine Comparação Conclusão 67

Conclusão Objetido do Minicurso Levantamento das soluções para interoperabilidade entre BDRs e BDs NoSQL Apresentação de algumas características para facilitar a escolha da solução mais adequada para o usuário Layers Maior Flexibilidade e escalabilidade para o acesso Storage Engine Suporte Full ao SQL e permite transações

Conclusão Futuro da área Abordagem genérica Soluções existentes apenas para um DB NoSQL Estratégias distintas para o mesmo DB NoSQL Suporte FULL da SQL Avaliação do desempenho das soluções nas diversas categorias e entre elas Estratégias para o processamento de Joins (Layers)

Minicurso: Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL (Parte 2) Geomar A. Schreiner - schreiner.geomar@posgrad.ufsc.br Ronaldo S. Mello r.mello@ufsc.br Departamento de Informática e Estatística (INE) Programa de Pós-Graduação em Ciência da Computação (PPGCC) Universidade Federal de Santa Catarina (UFSC)

Referências Abadi, D. J. (2009). Data management in the cloud: Limitations and opportunities. IEEE Data Eng. Bull., 32(1):3 12. Arnaut, D. E., Schroeder, R., and Hara, C. S. (2011). Phoenix: A relational storage component for the cloud. In Cloud Computing (CLOUD), 2011 IEEE International Conference on, pages 684 691. IEEE. Chung, W.-C., Lin, H.-P., Chen, S.-C., Jiang, M.-F., and Chung, Y.-C. (2013). Jackhare: a framework for SQL to NoSQL translation using MapReduce. Automated Software Engineering, pages 1 20. Dean, J. and Ghemawat, S. (2008). Mapreduce: Simplified data processing on large clusters. Commun. ACM, 51(1):107 113.

Referências dos Santos Ferreira, G., Calil, A., and dos Santos Mello, R. (2013). On providing DDL support for a relational layer over a document NoSQL database. In Proceedings of In- ternational Conference on Information Integration and Web-based Applications; Services, IIWAS 13, pages 125:125 125:132, New York, NY, USA. ACM. Egger, D. (2009). SQL in the Cloud. PhD thesis, Master Thesis ETH Zurich, 2009. Lawrence, R. (2014). Integration and virtualization of relational SQL and NoSQL systems including MySQL and MongoDB. In Computational Science and Computational Intelligence (CSCI), 2014 International Conference on, volume 1, pages 285 290.

Referências Papakonstantinou, Y., Garcia-Molina, H., and Widom, J. (1995). Object exchange across heterogeneous information sources. In Data Engineering, 1995. Proceedings of the Eleventh International Conference on, pages 251 260. Rith, J., Lehmayr, P. S., and Meyer-Wegener, K. (2014). Speaking in tongues: SQL access to NoSQL systems. In Proceedings of the 29th Annual ACM Symposium on Applied Computing, pages 855 857. ACM. Vilaça, R., Cruz, F., Pereira, J., and Oliveira, R. (2013). An effective scalable SQL engine for NoSQL databases. In Distributed Applications and Interoperable Systems, pages 155 168. Springer. Apache Phoenix, http://phoenix.apache.org/