NoSQL. Panorama atual através das experiências obtidas no projeto SciELO.



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

Evandro Deliberal Aula 01

Engenharia de software 2011A. Trabalho sobre

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

Bancos de dados NOSQL (Not Only SQL)

Universidade Vila Velha. Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta

Uma Breve Introdução. Andréa Bordin

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

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro

Seminário apresentado em 29/06/2017 Disciplina: Sistemas Distribuídos Professora: Noemi Rodriguez Aluno: Ricardo Dias

Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL

Grandes volumes de dados pertenciam ao domínio das aplicações científicas até há 15 anos atrás.

ESTUDO SOBRE A TECNOLOGIA DE BANCO DE DADOS NoSQL

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

NoSQL. Arthur Azevedo Rafael Benedito

Prof. Romulo Fagundes Cantanhede. Node.JS. O poder do JavaScript do lado do Servidor

Shermila Guerra Santa Cruz Orientador: Ricardo Rodrigues Ciferri

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Software Livre e GIS: Quais são as alternativas?

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

Big Data. A Nova Onda

MAC NoSQL. Mauricio De Diana

Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. Elias Adriano - UFSCar Daniel Lucrédio - UFSCar

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

MBA Analytics em Big Data

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento

Desenvolvimento de um sistema de gestão acadêmica com software livre Rodrigo Bainy Fagundes

Processamento de Big Data com bancos de dados NoSQL para desenvolvedores Java. Fernando Babadopulos

Arquiteturas escaláveis utilizando ferramentas Shared Nothing. Victor Canô

Escalabilidade, as modas e (No)SQL. Fernando Ike

AN EVALUATION OF ALTERNATIVE ARCHITECTURE FOR TRANSACTION PROCESSING IN THE CLOUD (SIGMOD)

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

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

Anexo I Formulário para Proposta

NoSQL: Vantagens, Desvantagens e Compromissos. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador)

Conhecendo os usuários de um Sistema de Banco de Dados

Software Livre e Redes Sociais. Prof. Alexandro Silva

Software Livre, Redes Sociais e Segurança na Internet. Alexandro Silva alexos@ngsecurity.com.br

dados abertos cartilha para desenvolvedores

Disciplina: Tecnologias de Banco de Dados para SI s

NoSQL Edward Ribeiro

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

Miguel Fernando Aniceto Nobre. Engenheiro Informático

Bancos de Dados em Clouds

Oportunidades 30/05/2014

Formação em Tecnologias de Informação

Webstore Reloaded. A arquitetura do walmart.com.br remodelada

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

World Wide Web e Aplicações

Introdução. O que é um Banco de Dados (BD)?

Artur Petean Bove Júnior Tecnologia SJC

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

Boas Práticas em Sistemas Web muito além do HTML...

Geoprocessamento com Software Livre. Anderson Maciel Lima de Medeiros Consultor em Geotecnologias

Principais Comandos SQL Usados no MySql

João Víctor Rocon Maia Engenharia de Computação - UFES

CLOUD COMPUTING. Andrêza Leite.

20/05/2013. Sistemas de Arquivos Sistemas de arquivos. Sistemas de Gerenciamento de Banco de Dados (SGBD) Banco de Dados. Estrutura de um BD SGBD

HIBERNATE EM APLICAÇÃO JAVA WEB

Docente: Éberton da Silva Marinho

Mapserver Servidor de Mapas. João Araujo

BIG DATA: UMA INTRODUÇÃO. Prof. Ronaldo R. Goldschmidt

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

OFICINA USO DO I3GEO. Levindo Cardoso Medeiros.

ANÁLISE DE SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS PARA ARMAZENAMENTO DE DADOS CLIMÁTICOS

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

Modelagem UML com Software Livre. Palestrante: Marcio Junior Vieira

Contrata Consultor na modalidade Produto

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

Número do Recibo:

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de Rafael Polo e Sabrina Arêas

NoSQL no desenvolvimento de aplicações Web colaborativas

INTRODUÇÃO. Diferente de Bando de Dados

OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift

1. Introdução e Objetivos 2. Fundamentação teórica 3. Desenvolvimento e Especificações do sistema

Apache + PHP + MySQL

TRINITY Project Microsoft Research Asia

4 Um Exemplo de Implementação

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

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

Informações importantes

Uma Proposta de Framework de Comparação de Provedores de Computação em Nuvem

Varnish-Cache: Velocidade e disponibilidade para aplicações WEB

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

Ferramentas de Administração. PostgreSQL

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

Prof. Marcelo Machado Cunha

NoSQL no Desenvolvimento de Aplicações Web Colaborativas

BANCO DE DADOS II. AULA MySQL.

Lucas Nascimento Santos

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

Transcrição:

NoSQL Panorama atual através das experiências obtidas no projeto SciELO. III Encuentro de Desarrolladores de las Redes BVS y Asociadas por Gustavo Fonseca - 13/09/2012 {fabio.batalha,gustavo.fonseca,jamil.atta}@scielo.org

O modelo semi-estruturado

O modelo semi-estruturado http://www.amazon.com/data-web-relations-semistructured-management/dp/155860622x

O real significado de NoSQL Eu uso PostgreSQL, sou um pecador???

Sabores de NoSQL Documental, Relacional, Grafos, Chave/Valor, Objetos, outros); Deve-se considerar a natureza dos dados manipulados; Deve-se considerar os requisitos não funcionais da aplicação; Provavelmente apenas 1 Sistema de Banco de Dados não resolverá seu problema.

Sabores de NoSQL (http://nosql-database.org/) Wide Column Document Key/Value Graph Object XML Others* Hadoop MongoDB DynamoDB Neo4J db4o Mark Logic IBM Lotus/Domino Cassandra CouchDB Azure Infinite Graph Versant EMC Documentum xdb extremedb Hpertable RavenDB Couchbase Sones Objectivity exist RDM Embedded Accumulo Clusterpoint Riak InfoGrid Starcounter Sedna ISIS Family Amanzon Simple DB ThruDB Redis HyperGraph Perst BaseX Prevalyler Cloudata Terrastore LevelDB DEX ZODB Qizx Yserial Cloudera RaptorDB Chordless GraphBase Magma Berkeley DB XML U2 SciDB JasDB GenieDB Trinity NEO Globals HPCC SisoDB Scalaris AllegroGraph PicoLisp GT.M Sytratosphere SDB BerkeleyDB Bigdata siaqodb OpenInsight SchemaFree Voldemort Memorynymy Sterling Reality djondb Dynomite OpenLink Morantex OpenQM Memcached VertexDB EyeDB ESENT * Multivalue, Multidimensional, Grid & Cloud, Multimodel, other NoSQL related databases

Qual a melhor solução?

OPS!!!

MongoDB Criado pela 10gen em 2007 Primeira versão estável disponível em 2010 Atualmente um dos bancos de dados NoSQL mais adotados no mercado Baixa curva de aprendizado Grande comunidade de desenvolvedores e usuários API's disponíveis para diversas linguagens de programação (Python, C, C++, Erlang, Haskell, Java, JavaScript,.NET (C#, F#, PowerShell, etc), Node.js, Perl, PHP, Ruby e Scala)

CouchDB Criado em 2005 por Damien Katz (ex. Desenvolvedor do Lotus Notes da IBM) Em 2008 se tornou um projeto da Apache Software Foundation Grande projeção nos últimos 3 anos Replicação de dados Armazenamento em formato JSON Capacidade de desenvolver produtos auto-contidos utilizando CouchApps. API's disponíveis para diversas linguagens de programação: C, C#, ColdFusion, Erlang, ExJS, Haskell, Java, JavaScript, LISP, LotusScript, Lua, Node. JS, Objective-C, Objective Caml (OCaml), Perl, PHP, PLSQL, Python, Rebol, Ruby e Smalltalk

Bancos de dados documental Volume de índices gerados pelo Google para os termos MongoDB (azul), CouchDB (vermelho) e CISIS (amarelo)

Bancos de dados documental MongoDB CouchDB MongoDB CouchDB Escalabilidade horizontal X X Escalabilidade vertical X X Replicação X X Sharding X Indice geográfico Modificadores atômicos Balanceamento de carga X X X Tolerância a falhas X X Map-reduce / agregação X X Ordenação X X File storage (BLOBS) X X Indexação X X Integrity X X Pesquisas adhoc X Concurrency X X Indexação incremental X X Foundation data types X X Caracteres Unicode X X TTL (time to leave) documents X

NoSQL e SciELO Basicamente publicação de documentos; artigos, livros; Expressividade no modelo de dados; dados semi-estruturados, CISIS; Desempenho

Motivações SciELO A SciELO gosta de tecnologia Open Source Adoção de tecnologias leading-edge Aumentar capacidade de contribuição de terceiros Uso de tecnologias que possuem comunidade ativa Documentações atualizadas e existência de vários estudos de casos que servem de referência para desenvolvimentos novos e atuais. Escalabilidade A SciELO demanda cada vez mais tecnologias escaláveis Escalabilidade deve ser horizontal e vertical Arquitetura não deve ser um impedimento para escalabilidade

Webservices O precursor na virada tecnológica dos produtos SciELO; Prova de conceito do uso do CouchDB com o modelo de dados SciELO; Migração por meio do utilitário isis2json*; Utiliza as funcionalidades do CouchDB para expor os dados; CouchApps, Show e View functions. Abriu a mente da equipe de desenvolvimento sobre tecnologias de persistência de dados; Representou um marco na adoção gradual de uma plataforma baseada em serviços. * isis2json é um utilitário desenvolvido pela Bireme, para a conversão de bases ISIS para o formato JSON. Código fonte: https://github.com/bireme/isis2json

SciELO Livros Catálogo on-line de livros acadêmicos. Php, Python, CouchDB, PostgreSQL e MySQL. Docs: http://docs.scielo.org/projects/scielo-books/en/latest/ Código fonte: https://github.com/scieloorg/scielobooks Licença: BSD-2clause

SciELO Periódicos Catálogo on-line de periódicos científicos; Atualmente baseado na plataforma ISIS; Arquitetura "shared nothing"; Migração para Python e MongoDB. Visão geral da nova arquitetura do SciELO Periódicos

Ratchet Contador de acessos aos recursos SciELO e associados. Python, MongoDB e Tornado. Leitura* Nível de concorrência: 250 Total de requisições: 2000 Reqs: 1180/sec (média) Tempo por req. : 211.033 ms Gravação* Nível de concorrência: 250 Total de requisições: 2000 Reqs: 1775/sec (média) Tempo por req. : 140.833 ms Docs: http://docs.scielo.org/projects/ratchet/en/latest/ Código fonte: https://github.com/scieloorg/ratchet Licença: BSD-2clause * Valores aproximados com base num ambiente GNU/Linux, 8 cores e 32GB RAM. Não foram estabelecidas metodologias sérias para a mensuração, então não leve este benchmark muito a sério. =)

Nurl Encurtador de URLs da rede SciELO. Python, MongoDB, Memcached, Gunicorn e Nginx. Resolução* Nível de concorrência: 100 Total de requisições: 1000 Reqs: 219,98 /sec (média) Tempo por req. : 454,595 ms Encurtamento* Nível de concorrência: 400 Total de requisições: 2000 Reqs: 228,90 /sec (média) Tempo por req. : 1747,498 ms Docs: http://docs.scielo.org/en/latest/api/ref-scielo.html Código fonte: https://github.com/scieloorg/nurl Licença: BSD-2clause * Valores aproximados com base num ambiente GNU/Linux, 8 cores e 32GB RAM. Não foram estabelecidas metodologias sérias para a mensuração, então não leve este benchmark muito a sério. =)

Conclusões O ecosistema é importante; Desempenho é importante, nos 2 contextos: Desenvolvimento (expressividade do programador) Execução da aplicação (ambiente de produção) Não existe bala de prata;

Dúvidas? Obrigado!! http://www.scielo.org http://docs.scielo.org http://github.com/scieloorg

Imagens Trapped Babe http://3.bp.blogspot.com/_aobxvsswp20/ts2fnnxxuti/aaaaaaaaahk/bgwpn_gh684/s1600/busyparents.jpg Chave de Grifo https://encrypted-tbn3.google.com/images?q=tbn:and9gcqt5eg92le4zwxwyb6dynhaklboq56iqc40tzk3m4zgqwew_igpew Martelo https://encrypted-tbn0.google.com/images?q=tbn:and9gcqs5ylyhwhbwx7vqc6m5lfjx70q9awj0sm8x9knqxam0-34dwfp Serra https://encrypted-tbn0.google.com/images?q=tbn:and9gcrtnsfi-lm9di3jt1vkqa_kj1xeop8ehmlic-ct10usy3ais0knyg Bigorna https://encrypted-tbn0.google.com/images?q=tbn:and9gcr7gsxwdo47i9kqpb9rqzbipbg9mfpys8-i-q464z_1jigbkp4a Chiclete https://encrypted-tbn2.google.com/images?q=tbn:and9gcqlpo93lhwcgynctjjphblvv0whvsfyxgr5u5whmx7cn6m5lh-0 Pá https://encrypted-tbn1.google.com/images?q=tbn:and9gcth5sh_ga6hqshwzqkz6rydig48ddyqvhmygs74ivvoor_ts-zemw