UNIVERSIDADE FEDERAL DA FRONTEIRA SUL PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO – PROPEPG FORMULÁRIO ÚNICO DE PROPOSTAS (FUP) 1-DESCRIÇÃO DO PROJETO Título do Projeto : Estudo de SGBD NoSQL no Contexto Big Data Período de Execução (mês/ano) Início: Ago/2014 Área do conhecimento (nome e código): 1.00.00.00-3 Ciências Exatas e da Terra Término: Jul/2015 Sub-área do Conhecimento (nome e código): 1.03.00.00-7 Ciência da Computação Resumo do Projeto: Big data é um termo utilizado para descrever um conjunto de problemas e soluções relativos ao tratamento de um grande volume de dados. Os dados no contexto do Big Data são caracterizados por serem produzidos em tempo real (velozes), heterogêneos (variados) e volumosos (chamados de 3 V's). Sistemas gerenciadores de banco de dados (SGBD) tradicionais não foram projetados para gerenciar tais tipos de dados pois trabalham com dados estruturados e homogêneos. Assim, novos SGBD foram propostos para gerenciar dados em Big Data, esses SGBD são chamados de NoSQL (acrônimo de Not only SQL). Neste contexto, este trabalho visa estudar e avaliar várias implementações de SGBD NoSQL para identificar qual ou quais seriam mais adequados para pesquisas futuras em Big Data. A avaliação será realizada em termos de desempenho em respostas a consultas, tipos de dados manipulados, capacidade de armazenamento e escalabilidade. Texto limitado em 450 palavras Palavras-chave:big data, nosql, benchmark De 03 a 05 palavras Justificativa e contextualização do problema: (descrever o problema de pesquisa e sua importância científica e/ou tecnológica e/ou sócio-econômicoambiental; esclarecer a importância das vinculações interinstitucionais do projeto, se houver.) Os dados, desde o nascimento dos computadores, são produzidos em grande quantidade. No fim do século XX, tinha-se milhares de bytes armazenados em servidores ao redor do mundo. Com a evolução da tecnologia e, consequentemente, a sua popularização, agora quase todos os indivíduos são geradores de dados: a postagem no facebook, um tweet, uma conversa no WhatsApp, um smartphone conectado a um GPS, entre outros. O que fazer com essa quantidade massiva e heterogênea de dados? Como tratar esta produção instantânea de dados por cidadãos comuns? Se considerar-se dados gerados por aplicações pública ou privadas (e.g., satélites, aeronaves, cliques em sítios) essa quantidade de dados se torna ainda maior, quase que ingerenciável. Neste contexto, desde o início dos anos 2000, pesquisadores trabalham em uma área chamada Big Data que trata os problemas gerados por esses dados bem como as soluções propostas. Grande volume de dados não é um objeto de pesquisa recente em computação, já é estudado há décadas porém, com advento de smartphones, redes sociais, entre outros, os estudos anteriores não são mais satisfatórios pois tratavam dados volumosos estruturados e homogêneos (convencionais). Por exemplo, uma indústria automobolística deve ter millhares de registros de construção e venda de carros, porém, esses registros são estruturados e seus formatos conhecidos a priori, que apesar de serem volumosos são fáceis de tratar por sistemas gerenciadores de banco de dados (SGBD) tradicionais chamados de relacionais. Esses tipos de SGBD propostos na década de 1970 são robustos e mundialmente utilizados por organizações (públicas, privadas, grandes ou pequenas). O sucesso dos SGBD relacionais vem do formalismo que foi proposto e de sua álgebra relacional definida para consultar os dados. Essa álgebra foi implementada em versões comercias desses SGBD através da linguagem SQL (Structured Query Language): uma linguagem de consulta adequada e eficiente para SGBD relacionais. O avanço tecnológico na área da computação trouxe, entre outros, equipamentos computacionais mais poderosos e com mais capacidade de armazenamento, além do barateamento e a minituarização. Com recursos 1 UNIVERSIDADE FEDERAL DA FRONTEIRA SUL PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO – PROPEPG mais potentes, pode-se propor e implementar aplicações que atendesse melhor as necessidades dos usuários, tanto profissionalmente quanto no lazer. Pode-se citar duas transformações: a Web 2.0 e os smartphones. Com a Web 2.0, as redes sociais tiveram crescimento exponencial pois agora os dados não eram mais estáticos e limitados, com os smartphones, qualquer pessoa pode acessar aplicações e gerar dados livremente. Essa combinação fez com os dados não fossem mais estruturados e com formatos conhecidos a priori. Assim, os SGBD relacionais não são mais adequados para o gerenciamento desta nova classe de dados. Neste contexto, os SGBD NoSQL começaram a ser propostos e implementados. Antes, tinha-se apenas um classe de SGBD e as aplicações tradicionais eram atendidas adequadamente por essa classe, agora, existem uma quantidade grande de implementações, deixando os usuários mais leigos com dificuldades de escolher qual seria o melhor para a sua aplicação. Analisando o sítio nosql-database.org, pode-se observar mais de dez classes de SGBD NoSQL e mais de 8 implementações para cada classe. O usuário, neste caso, primeiramente tem que decidir pela classe do SGBD que é influenciada pelo tipo de aplicação Big Data que pretende implementar e, para a classe escolhida, um produto (implementação) disponível. Por exemplo, se a classe for chave valor (key value), existirá mais de quarenta implementações disponíveis. Decidir qual é mais adequada às necessidades da aplicação não é uma tarefa trivial. Como exemplo de aplicações que se apoiam em Big Data e, consequentemente, em SGBD NoSQL, pode-se citar: análise de sentimentos em dados publicados no Tweeter, dados captados por estação astrônimcas, dados de comportamento de usuários em sítios de vendas pela Web, dados de tráfegos aéreos, entre outros. Este projeto tem como objetivo avaliar o desempenho de SGBD NoSQL para classificá-los e auxiliar desenvolvedores e pesquisadores na escolha do SGBD mais adequado para as necessidades de suas aplicações envolvendo Big Data. Atualmente, existe um grupo de estudo em Big Data homologado pela UFFS além do coordenador do projeto ter uma parceria informal com pesquisadores da Udesc – Joinville na área. Texto limitado em 02 página Objetivo geral: Avaliar o desempenho de SGBD NoSQL no contexto de Big Data. Objetivos específicos: - Classificar os SGBD NoSQL quanto a melhor aplicação de gerenciamento de dados - Definir uma métrica de avaliação - Definir uma infraestrutura para avaliação - Definir os repositórios de dados públicos para realizar as avaliações 2 UNIVERSIDADE FEDERAL DA FRONTEIRA SUL PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO – PROPEPG Breve contextualização teórica da proposta Atualmente, tem-se o que é chamado de dilúvio de dados: o Tweeter possui 1 bilhão de usuários que já enviaram 300 bilhões de tweets, sendo que diariamente são enviados 500 milhões de tweets [4]. Esse volume de dados pode fazer com que muitas informações importantes sejam perdidas pela falta do seu gerenciamento. Por exemplo, o projeto observatório da dengue (http://www.observatorio.inweb.org.br/) mapeia em tempo real regiões do Brasil prováveis surtos da dengue através de tweets feitos pela população. Os dados gerados pelas redes sociais, redes de sensores, centro de observação aéreo-espacial, redes de sensores são volumosos, heterogêneos e produzidos em tempo real, caracterizando o problema de Big Data [2]. Os SGBD relacionais se têm mostrados adequados para tratar dados volumosos porém estruturados [6,8] porém falham para gerenciar dados sem muita estrutura e que crescem rapidamente [7]. Para atender essa demanda de gerenciamento de dados, é necessário utilizar SGBD capazes de tratar dados não estruturados, volumosos e com crescimento rápido, assim nasceram os SGBD NoSQL [7,9]. Esses SGBDs, além de atenderem a necessidade de armazenamento do dados não estruturados, possuem a capacidade de atender o aumento do volume de dados de forma mais rápida pois são escaláveis horizontalmente, utilizado a capacidade de computação nas nuvens (cloud computing) [1]. Essa nova necessidade de SGBD trouxe consigo um aumento da oferta de implementações disponíveis para os desenvolvedores de aplicações Big Data. O sítio nosql-database.org apresenta uma longa lista de implementações de SGBD NoSQL. Isso torna a tarefa de escolher qual o SGBD NoSQL mais apropriado para uma determinada aplicação não trivial. Existem alguns trabalhos que realizaram comparações entre SGBD NoSQL e entre SGBD relacionais e NoSQL [5,11] porém são limitados a testar um grupo pequeno de SGBD não considerando diversos tipos de base de dados para realizar a comparação. As análises de desempenho (benchmark) são feitas através de ferramentas próprias para tal. Entre essas ferramentas, pode-se citar OLPT-Bench [3] e TPC-C [10]. Essas ferramentas proporcionam formas automáticas de gerar dados e medir o desempenho dos SGBD utilizados. Também, existem vários repositórios com dados coletados para o tratamento de Big Data: Reality Comuns (realitycommons.media.mit.edu) que possui quatro conjunto de dados gerados por smartphones, Amazon Public Data Sets (aws.amazon.com/pt/publicdatasets), entre outros. Esses repositórios, as ferramentas de benchmark mais os SGBD noSQL disponíveis serão a base para os experimentos propostos neste trabalho. Texto limitado em 01 página 3 UNIVERSIDADE FEDERAL DA FRONTEIRA SUL PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO – PROPEPG Metodologia: Para alcançar o objetivo proposto neste projeto foi definido o seguinte conjunto de passos que compreendem a metodologia de realização do trabalho. Primeiramente, serão feitos estudos envolvendo os conceitos de Big Data, SGBD NoSQL e técnicas de benchmarking. Esses estudos serão conduzidos, principalmente, através de pesquisa bibliográfica, leitura dos manuais (white papers) dos SGBD NoSQL livres, instalação dos SGBD estudados, definição da ferramenta de benchmark e métrica. Essa etapa será conduzida pelo bolsista sob a supervisão do coordenador do projeto e é necessário que seja planejada e executada cuidadosamente pois oferece subsídios necessários para a avaliação propriamente dita. Em seguida, após a definição das ferramentas (i.e., SGBD e benchmark) será proposta a métrica de avaliação bem como as características da infraestrutura necessária (e.g., computadores, banco de dados, entre outros). Finalmente, após escolha dos SGBD, definição da métrica e preparação da infraestrutura, serão realizados os testes para medir o desempenho dos SGBD selecionados. Os resultados desses testes serão importantes para a continuação do projeto na área de Big Data pois o armazenamento e tratamento dos dados é um dos pontos mais críticos para as aplicações nessa área. Descrição detalhada Principais referenciais teóricos a serem estudados (relacionar os autores/obras mais importantes) [1] ARMBRUST, M., FOX, A., GRIFFITH, R., JOSEPH, A. D. , KATZ, R., KONWINSKI, A., LEE, G. , PATTERSON, D., RABKIN, A., STOICA, I, ZAHARIA, M. (2010) A view of cloud computing. Commun. ACM 53, 4. [2] BERMAN, J. J. (2013). Principles of Big Data: Preparing, Sharing, and Analyzing Complex Information. Morgan Kaufmann (Elsevier). First Edition. [3] DIFALLAH, D., CURINO, C., PAVLO, A., CUDRE-MAUROUX, P. (2013). OLTP-Bench: An Extensible Testbed for Benchmarking Relational Databases. Proceedings of the Very Large Database Endowment. [4] Digital Marketing Ramblings. http://expandedramblings.com/ [5] LEMOS, P. H. dos S. L., FIGUEIREDO, P. S. (2014) Uma Análise dos Novos Sistemas de Bancos de Dados Relacionais Escaláveis. Monografia. UFRJ [6] RAMAKRISHNAN, Ra., GEHRKE, J. (2010) Database management systems. Osborne/McGraw-Hill. [7] SADALAGE, P. J., FOWLER, M. (2012). NoSQL distilled: a brief guide to the emerging world of polyglot persistence. Pearson Education. [8] SILBERSCHATZ, A., KORTH, H. F., SUDARSHAN, S. (2011). Database system concepts. New York: McGraw-Hill. [9] STONEBRAKER, M. (2010), “SQL Databases v. NoSQL Databases”, Communications of the ACM , v. 53, n.4 [10] TPC (2010). TPC Benchmark C Standard Specification. Disponível em: www.tpc.org/tpcc/spec/tpcc_current.pdf [11] YIN, H., TANG, K., GAO, Y., KLAWONN, F., LEE, M., WEISE, T., LI, B., YAO, X. (2013). A Survey on Benchmarks for Big Data and Some More Considerations. Intelligent Data Engineering and Automated Learning – IDEAL 2013. 4 UNIVERSIDADE FEDERAL DA FRONTEIRA SUL PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO – PROPEPG Resultados esperados: Após o fim do projeto espera-se ter os seguintes resultados: 1. Classificação dos SGBD NoSQL quanto a capacidade de gerenciar dados Big Data bem como as aplicações mais adequadas para cada tipo de SGBD NoSQL 2. Divulgação dos resultados dos estudos em um evento regional ou nacional, dependendo dos resultados encontrados 3. A divulgação de um relatório que auxilie pesquisadores na área de Big Data a escolher o melhor SGBD NoSQL para as suas necessidades. 2-Plano de trabalho da equipe: Participante Bolsista / Bolsista voluntário Coordenador Atividades Prazos Revisão bibliográfica Até 2o. mes Testes dos SGBD Até 3o. mes Seleção dos SGBD Até 4o. mes Estudo e seleção de ferremanta de benchmark Até 5o. mes Configuração do ambiente (infraestrutura) Até 6o. mes Estudo e definição da métricas Até 7o. mes Benchmark Até 11o. mes Redação relatório e artigo Até 12o. mes Seleção de fontes bibliográficas Até 1o. mes Acompanhamento revisão bibliográfica e testes Até 3o. mes Validação da metodologia Até 4o. Mês Validação da métrica e ambiente Até 7o. Mês Acompanhamento benchmark Até 11o. Mês Redação de relatórios referentes ao projeto Até 12o. mes 3-Cronograma de desenvolvimento do projeto* ATIVIDADES Revisão bibilogtráfica Testes SGBD Seleção SGBD Ago Set Out Nov Dez Jan Fev Mar Abr Mai Jun Jul XX X X XX X 5 UNIVERSIDADE FEDERAL DA FRONTEIRA SUL PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO – PROPEPG Estudo ferramenta benchmark X X Configuração ambiente X X Estudo e definição métrica X XX Benchmark Redação (relatório, artigos) XX XX XX XX XX XX XX XX * Inserir colunas (atividades e meses) de acordo com o período de execução do projeto. 6