SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
Uma Análise Comparativa
entre Sistemas Gerenciadores
de Bancos de Dados NoSQL
no contexto de Internet das
Coisas
Allexandre Sampaio Santos Soares
Pablo Freire Matos – Orientador (CSI/IFBA-VC)
Leonardo Barreto Campos – Coorientador (CSI/IFBA-VC)
AGENDA
▰ Introdução
▰ Fundamentação Teórica
▰ Trabalhos Correlatos
▰ Desenvolvimento
▰ Resultados
▰ Conclusões
2
NoSQL vs. IoT
INTRODUÇÃO
Do que estamos falando mesmo?
3
1
NoSQL vs. IoT
INTRODUÇÃO
▰ Necessidade de armazenamento de dados
▰ Surgimento de Bancos de Dados (BDs)
▰ BDs relacionais
Introdução 4
NoSQL vs. IoT
INTRODUÇÃO
▰ Inviabilidade do modelo relacional
▰ Alternativas ao modelo relacional
▰ Modelo NoSQL
▻ Arquitetura flexível
▻ Velocidade
▻ Escalabilidade
Introdução 5
Fonte: https://goo.gl/vF6XwQ
NoSQL vs. IoT
INTRODUÇÃO
▰ Internet das Coisas (IoT)
▻ Grande fluxo de dados
▻ Pouco conteúdo
▻ Múltiplas fontes
▻ Dados não estruturados
Introdução 6
Fonte: https://goo.gl/SswbNo
NoSQL vs. IoT
MOTIVAÇÃO
▰ Busca constante pelo melhor desempenho
▰ Gargalos de desempenho
▰ Área de IoT em alta
▰ Melhor desempenho em armazenamento e
consulta de dados de aplicações de IoT
Introdução 7
NoSQL vs. IoT
JUSTIFICATIVA
▰ Aplicações de IoT têm demandado o uso de
BDs de alto desempenho
▰ Trabalhos com a mesma temática não são
conclusivos quanto às melhores escolhas
▰ Responsabilidade do desenvolvedor na
escolha de um BD
Introdução 8
NoSQL vs. IoT
PROBLEMA
Existe relação entre os desempenhos dos
Sistemas Gerenciadores de Bancos de Dados
não relacionais (NoSQL) quando estes são
utilizados em aplicações de Internet das Coisas?
Introdução 9
NoSQL vs. IoT
OBJETIVOS
▰ Desenvolver uma análise comparativa entre BDs NoSQL
no contexto de Internet das Coisas
▻ Desenvolver um levantamento de conteúdo teórico
▻ Utilizar BDs NoSQL para guardar e recuperar dados de
aplicações de IoT
▻ Realizar testes nos BDs NoSQL, visando verificar
desempenho, disponibilidade e consistência
▻ Usar resultados para guiar o uso de BDs NoSQL em
soluções de IoT
Introdução 10
NoSQL vs. IoT
HIPÓTESE
Um determinado Banco de Dados NoSQL tem
maior capacidade de manipulação de dados
oriundos de aplicações de IoT
Introdução 11
NoSQL vs. IoT
FUNDAMENTAÇÃO
TEÓRICA
Um pouco de embasamento.
12
2
NoSQL vs. IoT
BANCOS DE DADOS RELACIONAIS
▰ Concorrência controlada e segura no acesso aos dados
▰ Integração com múltiplas aplicações
▰ Pouca diferença entre implementações
▰ Propriedades ACID
▻ Atomicidade: tudo ou nada
▻ Consistência: de estado válido para estado válido
▻ Isolamento: transações não interferem entre si
▻ Durabilidade: os dados permanecerão
Fundamentação 13
NoSQL vs. IoT
BANCOS DE DADOS RELACIONAIS
▰ Características
▻ Data-Definition Language (DDL)
▻ Data-Manipulation Language (DML)
▻ Incorporação DML
▻ Definição de visões
▻ Autorização
▻ Integridade
▻ Controle de transações
Fundamentação 14
Tabela Usuario
id: Interger
nome: Varchar(50)
email: Varchar(50)
senha: Varchar(20)
setor: char(8)
NoSQL vs. IoT
BANCOS DE DADOS NoSQL
▰ 1990: nome de um BD relacional de código aberto
▰ 2009: reunião para discutir formas de
armazenamento com BDs não relacionais,
distribuídos e de código aberto
Fundamentação 15
NoSQL vs. IoT
BANCOS DE DADOS NoSQL
▰ Focado em dados não estruturados
▰ Bancos com alto desempenho e escalabilidade
▰ Propriedades BASE
▻ Basicamente disponível: garante disponibilidade
▻ Estado leve: duplicações de dados podem ser inconsistentes
▻ Consistência eventual: a consistência se dá depois de certo
tempo sem atualizações no dado
Fundamentação 16
NoSQL vs. IoT
BANCOS DE DADOS NoSQL
▰ Teorema CAP
▰ Dados críticos x Alta disponibilidade
Fundamentação 17
NoSQL vs. IoT
BANCOS DE DADOS NoSQL
▰ Por quê?
▻ Dispor de grandes taxas de transferência
▻ Possibilitar escalabilidade horizontal
▻ Ter melhor desempenho, se confiabilidade não é ponto crítico
▻ Possibilitar o uso de novos frameworks e linguagens de
programação
▻ Facilitar o trabalho com computação na nuvem
▻ Garantir que no futuro as necessidades de armazenamento e
desempenho ainda sejam cumpridas
Fundamentação 18
NoSQL vs. IoT
TIPOS DE BDs NoSQL
▰ Chave-valor: tabela simples com
duas colunas, para a chave e
conteúdo do registro. Algumas
implementações permitem que
sejam armazenados, também,
estruturas complexas de dados
Fundamentação 19
NoSQL vs. IoT
TIPOS DE BDs NoSQL
▰ Documentos: é como um BD
chave-valor, onde cada chave
referencia um objeto (XML, JSON,
BSON, entre outros) que pode ser
examinado. Possibilita consultas
utilizando parâmetros dos objetos
gravados para a busca
Fundamentação 20
NoSQL vs. IoT
TIPOS DE BDs NoSQL
▰ Famílias de Colunas: várias
colunas de dados associados
a uma única chave. Se pode
ter, para a mesma linha de um
registro, colunas diversas com
seus atributos e valores para
cada um
Fundamentação 21
NoSQL vs. IoT
TIPOS DE BDs NoSQL
▰ Grafos: Guarda entidades e arestas.
Entidades são como objetos, com
propriedades, e as arestas indicam
como esses se relacionam
Fundamentação 22
NoSQL vs. IoT
Fundamentação 23
NoSQL vs. IoT
“integração de objetos físicos e virtuais
em redes conectadas à Internet,
permitindo que “coisas” coletem,
troquem e armazenem uma enorme
quantidade de dados numa nuvem, em
que uma vez processados e analisados
esses dados, gerem informações e
serviços em escala inimaginável.
Fundamentação 24
INTERNET DAS COISAS
(ALMEIDA, 2015, p.7)
NoSQL vs. IoT
INTERNET DAS COISAS
▰ Tipos de dados
▻ provêm de várias fontes e são heterogêneos
▻ têm grande escala
▻ têm correlação temporal e espacial
▻ necessitam de interoperabilidade
▻ são de multidimensionalidade
Fundamentação 25
NoSQL vs. IoT
$ 1.700.000.000.000
Mercado até 2020
44.000.000.000.000 GB
Dados manipulados diariamente em 2020
40.000.000.000
Dispositivos até 2020
Fundamentação 26
zettabytes
NoSQL vs. IoT
BENCHMARKING
▰ Nasceu com a gestão, no campo da administração
▰ Na computação, objetiva avaliar softwares, SGBDs, elementos
de hardware, dentre outros ativos, para verificar a sua
capacidade de suporte a alguma necessidade
Fundamentação 27
NoSQL vs. IoT
“nenhuma ferramenta pode
testar o desempenho de um
sistema por completo, havendo
a necessidade, então, de se
testar um sistema utilizando
ferramentas adequadas ao seu
domínio.
Fundamentação 28
BENCHMARKING
(GRAY, 1993)
NoSQL vs. IoT
TRABALHOS
CORRELATOS
O que já foi pesquisado?
29
3
NoSQL vs. IoT
NoSQL x Relacional
Correlatos 30
Autor Análise BDs
Carniel et al.
(2012)
Experimental com benchmarking e análise
de dados aplicada a Data warehouse
Fastbit, MongoDB, LucidDB,
PostgreSQL
Ferreira, Filipe Jr.
e Oliveira (2014)
Experimental aplicada a dados científicos Cassandra, PostgreSQL
Souza e Santos
(2015)
Experimental com benchmarking e análise
de maturidade de BDs
Redis, Cassandra, MySQL
Martins Filho
(2015)
Experimental com benchmarking e base de
dados real
MongoDB, PostgreSQL
NoSQL vs. IoT
NoSQL x NoSQL
Correlatos 31
Autor Análise BDs
Diana e Gerosa
(2010)
Proposta de análise
aplicada ao contexto da
Web 2.0
-
Bruhn (2011) Análise de características
de BDs
Cassandra, Riak, Project Voldemort, Hbase,
Redis, CouchDB, MongoDB, Membase
Tauro, Patil e
Prashanth (2013)
Análise de características
de BDs
dynamoDB, Hbase, MongoDB, Allegro,
Cassandra, Neo4j, CouchDB, Project Voldemort
Pinto et al. (2013) Experimental com
benchmarking próprio
MongoDB, DB4O
Prasad e Gohil
(2014)
Análise de características
de BDs
SimpleDB, Dynamo, MongoDB, CouchDB,
BigTable, Cassandra, Riak, Hbase, Redis
NoSQL vs. IoT
DESENVOLVIMENTO
Colocando a mão na massa!
32
4
NoSQL vs. IoT
AMBIENTE DE TESTES
▰ Sistema Operacional dedicado
▻ Ubuntu 16.04.1
▰ Servidor
▻ Acer Aspire V5 – 472-6_BR826
▻ 8 GB de memória RAM
▻ 500 GB de armazenamento de disco rígido
▻ Processador Intel i3-3217U, com 2 núcleos
físicos e 4 threads, frequência base de 1,8 GHz
Desenvolvimento 33
NoSQL vs. IoT
FERRAMENTA DE TESTES
▰ Dificuldades em utilizar benchmarkings em contextos específicos
▰ Desenvolvimento de uma nova ferramenta em Java
▻ Familiaridade do desenvolvedor
▻ Uso de bibliotecas de acesso aos BDs
▻ Facilidade com threads/usuários
▻ Gerenciamento de memória
▻ Implementação de serviços nativos
▻ Uso da Máquina Virtual Java (e.g. JMeter)
Desenvolvimento 34
NoSQL vs. IoT
FERRAMENTA DE TESTES - INOBENCH*
▰ IoT & NoSQL Benchmarking
▰ GNU General Public License V.3
▰ Módulos
▻ Core
▻ CSV Reader
▻ Files
▻ MongoDB
▻ Couchbase
▻ Redis
Desenvolvimento 35* https://github.com/allexandresampaio/inobench
NoSQL vs. IoT
BASE DE DADOS UTILIZADA
▰ Base de dados real do universo da IoT
▰ Air Quality Data Set*, repositório da UCI Machine Learning
▻ Qualidade do ar em uma cidade da Itália
▻ Dados de 2004 a 2005 (por hora)
▻ 9.358 instâncias
▻ 15 dados por instância
▻ .xlsx ou .csv (transformação em JSON)
▻ Amostragem: 965 itens, confiança de 95,5%, erro amostral de 5%
(Fonseca e Martins, 2010)
Desenvolvimento 36* http://archive.ics.uci.edu/ml/datasets/Air+Quality
NoSQL vs. IoT
BASE DE DADOS UTILIZADA
▰ Exemplos de informações na base de dados
▻ Data e Hora
▻ Concentração de Monóxido de Carbono
▻ Concentração de Benzeno
▻ Concentração de Óxido Nítrico
▻ Concentração de Ozônio
▻ Temperatura
▻ Umidade
Desenvolvimento 37
NoSQL vs. IoT
BASE DE DADOS UTILIZADA
Conversão de dados
Desenvolvimento 38
NoSQL vs. IoT
BANCOS DE DADOS UTILIZADOS
▰ MongoDB
▻ Documentos (BSON)
▻ Desenvolvido em C++
▻ Alta escalabilidade e velocidade
▻ Uso gratuito sob GNU AGPL v3.0, versão 3.4.2
▻ Biblioteca mongo-java-driver 3.0.0
Desenvolvimento 39
NoSQL vs. IoT
BANCOS DE DADOS UTILIZADOS
▰ Couchbase
▻ Documentos (JSON)
▻ Bom desempenho com muitos clientes
▻ Replicação e arquitetura cluster
▻ Transações em N1QL
▻ Características do memcached
▻ Biblioteca Couchbase-Java-Client 2.4.2
Desenvolvimento 40
NoSQL vs. IoT
BANCOS DE DADOS UTILIZADOS
▰ Redis
▻ Chave-Valor
▻ Escrito em ANSI C
▻ Armazena strings, hashes, lists, sets…
▻ Velocidade em transações (RAM)
▻ Replicação (sentinelas e auto particionamento)
▻ Licença BSD, versão 3.2
▻ Biblioteca jedis 2.9.0
Desenvolvimento 41
NoSQL vs. IoT
RESUMO DO EXPERIMENTO
Desenvolvimento 42
NoSQL vs. IoT
PLANOS DE TESTES
Desenvolvimento 43
NoSQL vs. IoT
RESULTADOS
Um monte de dados e gráficos.
44
5
NoSQL vs. IoT
VAZÃO - INSERÇÕES
Resultados 45
2560,29
810,77
NoSQL vs. IoT
VAZÃO - LEITURAS
Resultados 46
668,95
<150
NoSQL vs. IoT
TEMPO DE RESPOSTA - INSERÇÕES
Resultados 47
NoSQL vs. IoT
TEMPO DE RESPOSTA - LEITURAS
Resultados 48
6.136,96
147,92
NoSQL vs. IoT
TAXA DE ERROS - INSERÇÕES
Resultados 49
15261
3,05% 13892
2,77%
NoSQL vs. IoT
TAXA DE ERROS - LEITURAS
Resultados 50
1758
2%
NoSQL vs. IoT
CONSUMO DE CPU - INSERÇÕES
Resultados 51
32,95%
9,375%
NoSQL vs. IoT
CONSUMO DE CPU - LEITURAS
Resultados 52
72,25%
3,9%
NoSQL vs. IoT
CONSUMO DE RAM - INSERÇÕES
Resultados 53
8,3%
0,4%
NoSQL vs. IoT
CONSUMO DE RAM - LEITURAS
Resultados 54
7,8%
0,4%
NoSQL vs. IoT
ARMAZENAMENTO EM DISCO
Resultados 55
150
17,30
NoSQL vs. IoT
CONCLUSÕES
Finalmente.
56
6
NoSQL vs. IoT
Conclusões 57
NoSQL vs. IoT
Autor SQL NoSQL Contexto Base Real Software Abordagem
Diana e Gerosa (2010) X Web 2.0 Analítica
Bruhn (2011) X Analítica
Carniel et al. (2012) X X Data Warehouse X SSB Experimental
Tauro, Patil e Prashanth (2013) X Analítica
Pinto et al. (2013) X Específico* Experimental
Prasad e Gohil (2014) X Analítica
Ferreira, Filipe Jr. e Oliveira (2014) X X Dados Científicos X SciCumulus Experimental
Souza e Santos (2015) X X YCSB Experimental
Martins Filho (2015) X X X Jmeter Experimental
Soares (2017) X IoT X Inobench* Experimental
DISCUSSÃO
Em relação aos trabalhos correlatos, este trabalho teve como
diferenciais:
▰ Execução em um contexto específico (IoT), com poucas pesquisas com
mesmo foco
▰ Desenvolvimento de aplicação própria para testes em BDs NoSQL, com
possibilidade de expansão para novos BDs
▰ Execução prática dos testes em 3 BDs e com uso de dados reais
Conclusões 58
NoSQL vs. IoT
DISCUSSÃO
▰ Consumo de recursos pelo Java - influência em resultados
▰ Tentativa de testes em rede (arquitetura servidor - cliente)
▰ Tentativa de uso de BD chave-valor time-series - Riak TS
▰ Trabalhos futuros:
▻ Testes com replicação, verificando capacidade escalável
▻ Testes com BDs time-series
▻ Testes com outros BDs NoSQL e/ou SQL
Conclusões 59
NoSQL vs. IoT
CONCLUSÕES
Conclusões 60
NoSQL vs. IoT
Velocidade: Vazão e Tempo
Economia de Recursos:
CPU e RAM
CONCLUSÕES
▰ Foi possível analisar bancos de dados NoSQL no contexto de IoT
▰ Os resultados corroboram a hipótese
▰ Definição do melhor BD depende do contexto de atuação da
aplicação
▰ MongoDB: aplicações com restrições de confiabilidade e de espaço
para armazenamento em disco
▰ Couchbase: aplicações que demandam de alta velocidade
▰ Redis: aplicações onde há restrições de consumo de processamento
Conclusões 61
NoSQL vs. IoT
REFERÊNCIAS
ALMEIDA, Hyggo. Tudo Conectado. Computação Brasil: Revista da Sociedade Brasileira de Computação, Porto Alegre, v.
29, p.14-18, abr. 2015.
BRUHN, Dominik. Comparison of Distribution Technologies in Different NoSQL Database Systems. 2011. 56 f. TCC
(Graduação) Institute Of Applied Informatics And Formal Description Methods (AIFB), Karlsruhe Institute Of Technology
(KIT), Karlsruhe, Alemanha, 2011.
CARNIEL, Anderson C. et al. Análise Experimental de Bases de Dados Relacionais e NoSQL no Processamento de
Consultas sobre Data Warehouse. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, XXVII, 2012, São Paulo.
Proceedings... SBC, 2012, p. 113-120.
DATE, C. J. Introdução a Sistemas de Bancos de Dados. Tradução de Daniel Vieira. 8ª ed. Rio de Janeiro: Elsevier, 2003.
DIANA, Mauricio; GEROSA, Marco Aurélio. NOSQL na Web 2.0: Um Estudo Comparativo de Bancos Não-Relacionais para
Armazenamento de Dados na Web 2.0. In: WORKSHOP DE TESES E DISSERTAÇÕES EM BANCO DE DADOS, IX, 2010, Belo
Horizonte. Anais... 2010, p. 8.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados, 6ª ed. São Paulo: Pearson Addison Wesley,
2011.
FERREIRA, Guilherme. F.; FILIPE Jr., Carlos; OLIVEIRA, Daniel. Uso de SGBDs NoSQL na Gerência da Proveniência
Distribuída em Workflows Científicos. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, XXIX, 2014, Curitiba. Anais...
SBC, 2014, p. 187-196.
62
NoSQL vs. IoT
REFERÊNCIAS
GRAY, J. The Benchmark Handbook for Database and Transaction Systems, 2ª ed. Morgan Kaufmann Publishers, 1993.
MARTINS FILHO, Marcos André Pereira. SQL X NOSQL: Análise de Desempenho do uso do MongoDB em Relação ao uso
do PostgreSQL. 2015. 54 f. TCC (Graduação) - Curso de Ciência da Computação, Centro de Informática, Universidade
Federal de Pernambuco, Recife, 2015.
PINTO, Alexandre P. et al. Testes de Performance Utilizando o DB4O e MongoDB. E_rac: Revista Eletrônica da Reunião
Anual de Ciência, v. 3, n. 1, 2013. Anual. Disponível em:
<http://www.computacao.unitri.edu.br/erac/index.php/e-rac/article/view/161>. Acesso em: 15 maio 2016.
PRASAD, Abhishek; GOHIL, Bhavesh N. A Comparative Study of NoSQL Databases. International Journal Of Advanced
Research In Computer Science. p. 170-176. maio 2014.
SOUZA, Vanessa C. O.; SANTOS, Marcus Vinícius C. Maturing, Consolidation and Performance of NoSQL Databases -
Comparative Study. In: BRAZILIAN SYMPOSIUM ON INFORMATION SYSTEMS (SBIS), XI, 2015, Goiânia. Proceedings...
AIS Electronic Library, 2015, p. 235-242.
TAURO, Clarence J. M.; PATIL, Baswanth R.; PRASHANTH, K. R. A Comparative Analysis of Different NoSQL Databases on
Data Model, Query Model and Replication Model. In: INTERNATIONAL CONFERENCE ON EMERGING RESEARCH IN
COMPUTING, INFORMATION, COMMUNICATION AND APLICATIONS (ERCICA). 2013, Bangalore, India. Proceedings...
Elsevier, 2013, p. 14-25.
63
NoSQL vs. IoT
OBRIGADO!
Perguntas?
64
Allexandre Sampaio Santos Soares
Pablo Freire Matos – Orientador (CSI/IFBA-VC)
Leonardo Barreto Campos – Coorientador (CSI/IFBA-VC)
NoSQL
vs.
IoT
Slides por SlidesCarnival

Mais conteúdo relacionado

Mais procurados

Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
Bancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geralBancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geralPET Computação
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosNatanael Simões
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxFábio dos Reis
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de DadosLeinylson Fontinele
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Buscas Avançadas no Google
Buscas Avançadas no GoogleBuscas Avançadas no Google
Buscas Avançadas no Googlemauroladeiafilho
 

Mais procurados (20)

Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Curso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQLCurso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQL
 
Bancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geralBancos de dados nas nuvens: uma visão geral
Bancos de dados nas nuvens: uma visão geral
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de Dados
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Informatica Básica - Sexta Básica
Informatica Básica - Sexta BásicaInformatica Básica - Sexta Básica
Informatica Básica - Sexta Básica
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Buscas Avançadas no Google
Buscas Avançadas no GoogleBuscas Avançadas no Google
Buscas Avançadas no Google
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 

Semelhante a Análise comparativa entre SGBDs NoSQL no contexto de IoT

BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008CharlesAlfenasmg
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANOsmar Petry
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014Fernando Boaglio
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftLuciano Condé
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Rodrigo Valerio
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloRenato Groff
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsWSO2
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise críticapichiliani
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Finaljcaroso
 

Semelhante a Análise comparativa entre SGBDs NoSQL no contexto de IoT (20)

#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
Tcc versao final-15-12
Tcc versao final-15-12Tcc versao final-15-12
Tcc versao final-15-12
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIs
 
Seminário de Andamento de Doutorado
Seminário de Andamento de DoutoradoSeminário de Andamento de Doutorado
Seminário de Andamento de Doutorado
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise crítica
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Final
 

Mais de Allexandre Sampaio

Big data em 1h: conceitos, aplicações e o que vem por aí
Big data em 1h: conceitos, aplicações e o que vem por aíBig data em 1h: conceitos, aplicações e o que vem por aí
Big data em 1h: conceitos, aplicações e o que vem por aíAllexandre Sampaio
 
TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...
TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...
TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...Allexandre Sampaio
 

Mais de Allexandre Sampaio (6)

Big data em 1h: conceitos, aplicações e o que vem por aí
Big data em 1h: conceitos, aplicações e o que vem por aíBig data em 1h: conceitos, aplicações e o que vem por aí
Big data em 1h: conceitos, aplicações e o que vem por aí
 
TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...
TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...
TV Digital inclusiva: uma análise sobre o processo de implantação do sinal de...
 
Big Data e NoSQL
Big Data e NoSQLBig Data e NoSQL
Big Data e NoSQL
 
MPS.BR
MPS.BRMPS.BR
MPS.BR
 
Clocking IT
Clocking ITClocking IT
Clocking IT
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 

Análise comparativa entre SGBDs NoSQL no contexto de IoT

  • 1. Uma Análise Comparativa entre Sistemas Gerenciadores de Bancos de Dados NoSQL no contexto de Internet das Coisas Allexandre Sampaio Santos Soares Pablo Freire Matos – Orientador (CSI/IFBA-VC) Leonardo Barreto Campos – Coorientador (CSI/IFBA-VC)
  • 2. AGENDA ▰ Introdução ▰ Fundamentação Teórica ▰ Trabalhos Correlatos ▰ Desenvolvimento ▰ Resultados ▰ Conclusões 2 NoSQL vs. IoT
  • 3. INTRODUÇÃO Do que estamos falando mesmo? 3 1 NoSQL vs. IoT
  • 4. INTRODUÇÃO ▰ Necessidade de armazenamento de dados ▰ Surgimento de Bancos de Dados (BDs) ▰ BDs relacionais Introdução 4 NoSQL vs. IoT
  • 5. INTRODUÇÃO ▰ Inviabilidade do modelo relacional ▰ Alternativas ao modelo relacional ▰ Modelo NoSQL ▻ Arquitetura flexível ▻ Velocidade ▻ Escalabilidade Introdução 5 Fonte: https://goo.gl/vF6XwQ NoSQL vs. IoT
  • 6. INTRODUÇÃO ▰ Internet das Coisas (IoT) ▻ Grande fluxo de dados ▻ Pouco conteúdo ▻ Múltiplas fontes ▻ Dados não estruturados Introdução 6 Fonte: https://goo.gl/SswbNo NoSQL vs. IoT
  • 7. MOTIVAÇÃO ▰ Busca constante pelo melhor desempenho ▰ Gargalos de desempenho ▰ Área de IoT em alta ▰ Melhor desempenho em armazenamento e consulta de dados de aplicações de IoT Introdução 7 NoSQL vs. IoT
  • 8. JUSTIFICATIVA ▰ Aplicações de IoT têm demandado o uso de BDs de alto desempenho ▰ Trabalhos com a mesma temática não são conclusivos quanto às melhores escolhas ▰ Responsabilidade do desenvolvedor na escolha de um BD Introdução 8 NoSQL vs. IoT
  • 9. PROBLEMA Existe relação entre os desempenhos dos Sistemas Gerenciadores de Bancos de Dados não relacionais (NoSQL) quando estes são utilizados em aplicações de Internet das Coisas? Introdução 9 NoSQL vs. IoT
  • 10. OBJETIVOS ▰ Desenvolver uma análise comparativa entre BDs NoSQL no contexto de Internet das Coisas ▻ Desenvolver um levantamento de conteúdo teórico ▻ Utilizar BDs NoSQL para guardar e recuperar dados de aplicações de IoT ▻ Realizar testes nos BDs NoSQL, visando verificar desempenho, disponibilidade e consistência ▻ Usar resultados para guiar o uso de BDs NoSQL em soluções de IoT Introdução 10 NoSQL vs. IoT
  • 11. HIPÓTESE Um determinado Banco de Dados NoSQL tem maior capacidade de manipulação de dados oriundos de aplicações de IoT Introdução 11 NoSQL vs. IoT
  • 12. FUNDAMENTAÇÃO TEÓRICA Um pouco de embasamento. 12 2 NoSQL vs. IoT
  • 13. BANCOS DE DADOS RELACIONAIS ▰ Concorrência controlada e segura no acesso aos dados ▰ Integração com múltiplas aplicações ▰ Pouca diferença entre implementações ▰ Propriedades ACID ▻ Atomicidade: tudo ou nada ▻ Consistência: de estado válido para estado válido ▻ Isolamento: transações não interferem entre si ▻ Durabilidade: os dados permanecerão Fundamentação 13 NoSQL vs. IoT
  • 14. BANCOS DE DADOS RELACIONAIS ▰ Características ▻ Data-Definition Language (DDL) ▻ Data-Manipulation Language (DML) ▻ Incorporação DML ▻ Definição de visões ▻ Autorização ▻ Integridade ▻ Controle de transações Fundamentação 14 Tabela Usuario id: Interger nome: Varchar(50) email: Varchar(50) senha: Varchar(20) setor: char(8) NoSQL vs. IoT
  • 15. BANCOS DE DADOS NoSQL ▰ 1990: nome de um BD relacional de código aberto ▰ 2009: reunião para discutir formas de armazenamento com BDs não relacionais, distribuídos e de código aberto Fundamentação 15 NoSQL vs. IoT
  • 16. BANCOS DE DADOS NoSQL ▰ Focado em dados não estruturados ▰ Bancos com alto desempenho e escalabilidade ▰ Propriedades BASE ▻ Basicamente disponível: garante disponibilidade ▻ Estado leve: duplicações de dados podem ser inconsistentes ▻ Consistência eventual: a consistência se dá depois de certo tempo sem atualizações no dado Fundamentação 16 NoSQL vs. IoT
  • 17. BANCOS DE DADOS NoSQL ▰ Teorema CAP ▰ Dados críticos x Alta disponibilidade Fundamentação 17 NoSQL vs. IoT
  • 18. BANCOS DE DADOS NoSQL ▰ Por quê? ▻ Dispor de grandes taxas de transferência ▻ Possibilitar escalabilidade horizontal ▻ Ter melhor desempenho, se confiabilidade não é ponto crítico ▻ Possibilitar o uso de novos frameworks e linguagens de programação ▻ Facilitar o trabalho com computação na nuvem ▻ Garantir que no futuro as necessidades de armazenamento e desempenho ainda sejam cumpridas Fundamentação 18 NoSQL vs. IoT
  • 19. TIPOS DE BDs NoSQL ▰ Chave-valor: tabela simples com duas colunas, para a chave e conteúdo do registro. Algumas implementações permitem que sejam armazenados, também, estruturas complexas de dados Fundamentação 19 NoSQL vs. IoT
  • 20. TIPOS DE BDs NoSQL ▰ Documentos: é como um BD chave-valor, onde cada chave referencia um objeto (XML, JSON, BSON, entre outros) que pode ser examinado. Possibilita consultas utilizando parâmetros dos objetos gravados para a busca Fundamentação 20 NoSQL vs. IoT
  • 21. TIPOS DE BDs NoSQL ▰ Famílias de Colunas: várias colunas de dados associados a uma única chave. Se pode ter, para a mesma linha de um registro, colunas diversas com seus atributos e valores para cada um Fundamentação 21 NoSQL vs. IoT
  • 22. TIPOS DE BDs NoSQL ▰ Grafos: Guarda entidades e arestas. Entidades são como objetos, com propriedades, e as arestas indicam como esses se relacionam Fundamentação 22 NoSQL vs. IoT
  • 24. “integração de objetos físicos e virtuais em redes conectadas à Internet, permitindo que “coisas” coletem, troquem e armazenem uma enorme quantidade de dados numa nuvem, em que uma vez processados e analisados esses dados, gerem informações e serviços em escala inimaginável. Fundamentação 24 INTERNET DAS COISAS (ALMEIDA, 2015, p.7) NoSQL vs. IoT
  • 25. INTERNET DAS COISAS ▰ Tipos de dados ▻ provêm de várias fontes e são heterogêneos ▻ têm grande escala ▻ têm correlação temporal e espacial ▻ necessitam de interoperabilidade ▻ são de multidimensionalidade Fundamentação 25 NoSQL vs. IoT
  • 26. $ 1.700.000.000.000 Mercado até 2020 44.000.000.000.000 GB Dados manipulados diariamente em 2020 40.000.000.000 Dispositivos até 2020 Fundamentação 26 zettabytes NoSQL vs. IoT
  • 27. BENCHMARKING ▰ Nasceu com a gestão, no campo da administração ▰ Na computação, objetiva avaliar softwares, SGBDs, elementos de hardware, dentre outros ativos, para verificar a sua capacidade de suporte a alguma necessidade Fundamentação 27 NoSQL vs. IoT
  • 28. “nenhuma ferramenta pode testar o desempenho de um sistema por completo, havendo a necessidade, então, de se testar um sistema utilizando ferramentas adequadas ao seu domínio. Fundamentação 28 BENCHMARKING (GRAY, 1993) NoSQL vs. IoT
  • 29. TRABALHOS CORRELATOS O que já foi pesquisado? 29 3 NoSQL vs. IoT
  • 30. NoSQL x Relacional Correlatos 30 Autor Análise BDs Carniel et al. (2012) Experimental com benchmarking e análise de dados aplicada a Data warehouse Fastbit, MongoDB, LucidDB, PostgreSQL Ferreira, Filipe Jr. e Oliveira (2014) Experimental aplicada a dados científicos Cassandra, PostgreSQL Souza e Santos (2015) Experimental com benchmarking e análise de maturidade de BDs Redis, Cassandra, MySQL Martins Filho (2015) Experimental com benchmarking e base de dados real MongoDB, PostgreSQL NoSQL vs. IoT
  • 31. NoSQL x NoSQL Correlatos 31 Autor Análise BDs Diana e Gerosa (2010) Proposta de análise aplicada ao contexto da Web 2.0 - Bruhn (2011) Análise de características de BDs Cassandra, Riak, Project Voldemort, Hbase, Redis, CouchDB, MongoDB, Membase Tauro, Patil e Prashanth (2013) Análise de características de BDs dynamoDB, Hbase, MongoDB, Allegro, Cassandra, Neo4j, CouchDB, Project Voldemort Pinto et al. (2013) Experimental com benchmarking próprio MongoDB, DB4O Prasad e Gohil (2014) Análise de características de BDs SimpleDB, Dynamo, MongoDB, CouchDB, BigTable, Cassandra, Riak, Hbase, Redis NoSQL vs. IoT
  • 32. DESENVOLVIMENTO Colocando a mão na massa! 32 4 NoSQL vs. IoT
  • 33. AMBIENTE DE TESTES ▰ Sistema Operacional dedicado ▻ Ubuntu 16.04.1 ▰ Servidor ▻ Acer Aspire V5 – 472-6_BR826 ▻ 8 GB de memória RAM ▻ 500 GB de armazenamento de disco rígido ▻ Processador Intel i3-3217U, com 2 núcleos físicos e 4 threads, frequência base de 1,8 GHz Desenvolvimento 33 NoSQL vs. IoT
  • 34. FERRAMENTA DE TESTES ▰ Dificuldades em utilizar benchmarkings em contextos específicos ▰ Desenvolvimento de uma nova ferramenta em Java ▻ Familiaridade do desenvolvedor ▻ Uso de bibliotecas de acesso aos BDs ▻ Facilidade com threads/usuários ▻ Gerenciamento de memória ▻ Implementação de serviços nativos ▻ Uso da Máquina Virtual Java (e.g. JMeter) Desenvolvimento 34 NoSQL vs. IoT
  • 35. FERRAMENTA DE TESTES - INOBENCH* ▰ IoT & NoSQL Benchmarking ▰ GNU General Public License V.3 ▰ Módulos ▻ Core ▻ CSV Reader ▻ Files ▻ MongoDB ▻ Couchbase ▻ Redis Desenvolvimento 35* https://github.com/allexandresampaio/inobench NoSQL vs. IoT
  • 36. BASE DE DADOS UTILIZADA ▰ Base de dados real do universo da IoT ▰ Air Quality Data Set*, repositório da UCI Machine Learning ▻ Qualidade do ar em uma cidade da Itália ▻ Dados de 2004 a 2005 (por hora) ▻ 9.358 instâncias ▻ 15 dados por instância ▻ .xlsx ou .csv (transformação em JSON) ▻ Amostragem: 965 itens, confiança de 95,5%, erro amostral de 5% (Fonseca e Martins, 2010) Desenvolvimento 36* http://archive.ics.uci.edu/ml/datasets/Air+Quality NoSQL vs. IoT
  • 37. BASE DE DADOS UTILIZADA ▰ Exemplos de informações na base de dados ▻ Data e Hora ▻ Concentração de Monóxido de Carbono ▻ Concentração de Benzeno ▻ Concentração de Óxido Nítrico ▻ Concentração de Ozônio ▻ Temperatura ▻ Umidade Desenvolvimento 37 NoSQL vs. IoT
  • 38. BASE DE DADOS UTILIZADA Conversão de dados Desenvolvimento 38 NoSQL vs. IoT
  • 39. BANCOS DE DADOS UTILIZADOS ▰ MongoDB ▻ Documentos (BSON) ▻ Desenvolvido em C++ ▻ Alta escalabilidade e velocidade ▻ Uso gratuito sob GNU AGPL v3.0, versão 3.4.2 ▻ Biblioteca mongo-java-driver 3.0.0 Desenvolvimento 39 NoSQL vs. IoT
  • 40. BANCOS DE DADOS UTILIZADOS ▰ Couchbase ▻ Documentos (JSON) ▻ Bom desempenho com muitos clientes ▻ Replicação e arquitetura cluster ▻ Transações em N1QL ▻ Características do memcached ▻ Biblioteca Couchbase-Java-Client 2.4.2 Desenvolvimento 40 NoSQL vs. IoT
  • 41. BANCOS DE DADOS UTILIZADOS ▰ Redis ▻ Chave-Valor ▻ Escrito em ANSI C ▻ Armazena strings, hashes, lists, sets… ▻ Velocidade em transações (RAM) ▻ Replicação (sentinelas e auto particionamento) ▻ Licença BSD, versão 3.2 ▻ Biblioteca jedis 2.9.0 Desenvolvimento 41 NoSQL vs. IoT
  • 44. RESULTADOS Um monte de dados e gráficos. 44 5 NoSQL vs. IoT
  • 45. VAZÃO - INSERÇÕES Resultados 45 2560,29 810,77 NoSQL vs. IoT
  • 46. VAZÃO - LEITURAS Resultados 46 668,95 <150 NoSQL vs. IoT
  • 47. TEMPO DE RESPOSTA - INSERÇÕES Resultados 47 NoSQL vs. IoT
  • 48. TEMPO DE RESPOSTA - LEITURAS Resultados 48 6.136,96 147,92 NoSQL vs. IoT
  • 49. TAXA DE ERROS - INSERÇÕES Resultados 49 15261 3,05% 13892 2,77% NoSQL vs. IoT
  • 50. TAXA DE ERROS - LEITURAS Resultados 50 1758 2% NoSQL vs. IoT
  • 51. CONSUMO DE CPU - INSERÇÕES Resultados 51 32,95% 9,375% NoSQL vs. IoT
  • 52. CONSUMO DE CPU - LEITURAS Resultados 52 72,25% 3,9% NoSQL vs. IoT
  • 53. CONSUMO DE RAM - INSERÇÕES Resultados 53 8,3% 0,4% NoSQL vs. IoT
  • 54. CONSUMO DE RAM - LEITURAS Resultados 54 7,8% 0,4% NoSQL vs. IoT
  • 55. ARMAZENAMENTO EM DISCO Resultados 55 150 17,30 NoSQL vs. IoT
  • 57. Conclusões 57 NoSQL vs. IoT Autor SQL NoSQL Contexto Base Real Software Abordagem Diana e Gerosa (2010) X Web 2.0 Analítica Bruhn (2011) X Analítica Carniel et al. (2012) X X Data Warehouse X SSB Experimental Tauro, Patil e Prashanth (2013) X Analítica Pinto et al. (2013) X Específico* Experimental Prasad e Gohil (2014) X Analítica Ferreira, Filipe Jr. e Oliveira (2014) X X Dados Científicos X SciCumulus Experimental Souza e Santos (2015) X X YCSB Experimental Martins Filho (2015) X X X Jmeter Experimental Soares (2017) X IoT X Inobench* Experimental
  • 58. DISCUSSÃO Em relação aos trabalhos correlatos, este trabalho teve como diferenciais: ▰ Execução em um contexto específico (IoT), com poucas pesquisas com mesmo foco ▰ Desenvolvimento de aplicação própria para testes em BDs NoSQL, com possibilidade de expansão para novos BDs ▰ Execução prática dos testes em 3 BDs e com uso de dados reais Conclusões 58 NoSQL vs. IoT
  • 59. DISCUSSÃO ▰ Consumo de recursos pelo Java - influência em resultados ▰ Tentativa de testes em rede (arquitetura servidor - cliente) ▰ Tentativa de uso de BD chave-valor time-series - Riak TS ▰ Trabalhos futuros: ▻ Testes com replicação, verificando capacidade escalável ▻ Testes com BDs time-series ▻ Testes com outros BDs NoSQL e/ou SQL Conclusões 59 NoSQL vs. IoT
  • 60. CONCLUSÕES Conclusões 60 NoSQL vs. IoT Velocidade: Vazão e Tempo Economia de Recursos: CPU e RAM
  • 61. CONCLUSÕES ▰ Foi possível analisar bancos de dados NoSQL no contexto de IoT ▰ Os resultados corroboram a hipótese ▰ Definição do melhor BD depende do contexto de atuação da aplicação ▰ MongoDB: aplicações com restrições de confiabilidade e de espaço para armazenamento em disco ▰ Couchbase: aplicações que demandam de alta velocidade ▰ Redis: aplicações onde há restrições de consumo de processamento Conclusões 61 NoSQL vs. IoT
  • 62. REFERÊNCIAS ALMEIDA, Hyggo. Tudo Conectado. Computação Brasil: Revista da Sociedade Brasileira de Computação, Porto Alegre, v. 29, p.14-18, abr. 2015. BRUHN, Dominik. Comparison of Distribution Technologies in Different NoSQL Database Systems. 2011. 56 f. TCC (Graduação) Institute Of Applied Informatics And Formal Description Methods (AIFB), Karlsruhe Institute Of Technology (KIT), Karlsruhe, Alemanha, 2011. CARNIEL, Anderson C. et al. Análise Experimental de Bases de Dados Relacionais e NoSQL no Processamento de Consultas sobre Data Warehouse. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, XXVII, 2012, São Paulo. Proceedings... SBC, 2012, p. 113-120. DATE, C. J. Introdução a Sistemas de Bancos de Dados. Tradução de Daniel Vieira. 8ª ed. Rio de Janeiro: Elsevier, 2003. DIANA, Mauricio; GEROSA, Marco Aurélio. NOSQL na Web 2.0: Um Estudo Comparativo de Bancos Não-Relacionais para Armazenamento de Dados na Web 2.0. In: WORKSHOP DE TESES E DISSERTAÇÕES EM BANCO DE DADOS, IX, 2010, Belo Horizonte. Anais... 2010, p. 8. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados, 6ª ed. São Paulo: Pearson Addison Wesley, 2011. FERREIRA, Guilherme. F.; FILIPE Jr., Carlos; OLIVEIRA, Daniel. Uso de SGBDs NoSQL na Gerência da Proveniência Distribuída em Workflows Científicos. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, XXIX, 2014, Curitiba. Anais... SBC, 2014, p. 187-196. 62 NoSQL vs. IoT
  • 63. REFERÊNCIAS GRAY, J. The Benchmark Handbook for Database and Transaction Systems, 2ª ed. Morgan Kaufmann Publishers, 1993. MARTINS FILHO, Marcos André Pereira. SQL X NOSQL: Análise de Desempenho do uso do MongoDB em Relação ao uso do PostgreSQL. 2015. 54 f. TCC (Graduação) - Curso de Ciência da Computação, Centro de Informática, Universidade Federal de Pernambuco, Recife, 2015. PINTO, Alexandre P. et al. Testes de Performance Utilizando o DB4O e MongoDB. E_rac: Revista Eletrônica da Reunião Anual de Ciência, v. 3, n. 1, 2013. Anual. Disponível em: <http://www.computacao.unitri.edu.br/erac/index.php/e-rac/article/view/161>. Acesso em: 15 maio 2016. PRASAD, Abhishek; GOHIL, Bhavesh N. A Comparative Study of NoSQL Databases. International Journal Of Advanced Research In Computer Science. p. 170-176. maio 2014. SOUZA, Vanessa C. O.; SANTOS, Marcus Vinícius C. Maturing, Consolidation and Performance of NoSQL Databases - Comparative Study. In: BRAZILIAN SYMPOSIUM ON INFORMATION SYSTEMS (SBIS), XI, 2015, Goiânia. Proceedings... AIS Electronic Library, 2015, p. 235-242. TAURO, Clarence J. M.; PATIL, Baswanth R.; PRASHANTH, K. R. A Comparative Analysis of Different NoSQL Databases on Data Model, Query Model and Replication Model. In: INTERNATIONAL CONFERENCE ON EMERGING RESEARCH IN COMPUTING, INFORMATION, COMMUNICATION AND APLICATIONS (ERCICA). 2013, Bangalore, India. Proceedings... Elsevier, 2013, p. 14-25. 63 NoSQL vs. IoT
  • 64. OBRIGADO! Perguntas? 64 Allexandre Sampaio Santos Soares Pablo Freire Matos – Orientador (CSI/IFBA-VC) Leonardo Barreto Campos – Coorientador (CSI/IFBA-VC) NoSQL vs. IoT Slides por SlidesCarnival