Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 Autores: Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 5 de Março de 2020 1 74 NOÇÕES DE BIG DATA Noções de Big Data ............................................................................................................ 1 Introdução ......................................................................................................................... 2 Big Data: Definições e conceitos ........................................................................................ 2 Falácias sobre Big Data ................................................................................................................... 10 Aplicações de Big Data .................................................................................................................... 12 Classificação de Big Data ................................................................................................................ 13 Padrões atômicos e compostos de uma solução de Big Data......................................................... 16 Mapa Estratégico ............................................................................................................................ 24 NoSQL .............................................................................................................................. 25 Conceitos ......................................................................................................................................... 25 Modelos de dados ........................................................................................................................... 27 Modelo de dados chave-valor ......................................................................................................... 29 Modelo de dados de documento ..................................................................................................... 30 Modelo colunar ............................................................................................................................... 31 Modelo de grafos ............................................................................................................................ 32 Considerações finais sobre modelos ............................................................................................... 33 Formas de distribuição .................................................................................................................... 35 Teorema CAP ................................................................................................................................... 35 ACID x BASE ..................................................................................................................................... 37 MapReduce...................................................................................................................................... 40 Hadoop ............................................................................................................................ 41 O ecossistema do Hadoop ............................................................................................................... 42 Ingestão de dados ........................................................................................................................... 45 Outros componentes do Hadoop .................................................................................................... 51 Questões comentadas ..................................................................................................... 54 Considerações finais ........................................................................................................ 74 Referência ....................................................................................................................... 74 Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 2 74 INTRODUÇÃO Nesta aula nosso intuito é desenvolver um pouco seu conhecimento sobre bancos de dados não relacionais ou NoSQL (Not only SQL). Esse conceito surgiu pela necessidade de utilização de Big Data. Ou, visto de uma forma mais intuitiva, da necessidade de tratar um grande volume de dados das mais variadas formas, gerados em uma velocidade cada vez mais acelerada. Podemos falar sobre espaço de armazenamento, algo semelhante ao que dizemos a respeito de dinheiro, você tende a utilizar todo o espaço de armazenamento disponível. Considerando que o custo de armazenamento fica cada vez menor, principalmente com o surgimento de Cloud Computing, é possível focar nossa atenção na organização destas bases e no processamento dos dados. Para isso, utilizamos respectivamente bases de dados NoSQL e a infraestrutura de processamento e armazenamento distribuído como o Hadoop. Vem comigo conhecer um pouco deste universo paralelo de banco de dados! ☺ BIG DATA: DEFINIÇÕES E CONCEITOS A humanidade, nos dias de hoje, produz uma quantidade diária de dados que é simplesmente improcessável pelos próprios seres humanos. Para se ter uma ideia, a IBM, em 2013, estimou que 2,5 exabytes (2.500.000.000.000.000.000) de bytes de dados são criados por dia. Se cada um dos 7 bilhões de habitantes tivesse que se debruçar sobre essas informações, seriam aproximadamente 300MB de dados diários para cada cidadão, incluindo bebês e idosos, rs. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 3 74 São vídeos no youtube, postagens em redes sociais, blogs, portais de notícias, emails, dentre outros. E o que esses dados possuem em comum? São dados não-estruturados. Estima-se que 85% das informações com as quais as empresas lidam hoje não estão estruturadas. Desta forma, o SGBD tradicional e a modelagem relacional (datados da década de 60) não são mais suficientes para lidar com a realidade atual. É necessária uma nova abordagem. Surge então o conceito de Big Data! Big Data pode ser entendido como a captura, gerenciamento e análise de dados que vão além de dados estruturados típicos, que podem ser consultados por sistemas de gerenciamento de banco de dados relacional frequentemente em arquivos não estruturados, vídeo digital, imagens, dados de sensores, arquivos de log e, na verdade, qualquer dado não contido nos registros com campos pesquisáveis distintos. Em um certo sentido, os dados não estruturados são dados interessantes, mas difíceis de sintetizar ou tirar conclusões deles, a menos que possam ser correlacionados a dados estruturados. Big data apresenta soluções para integrar os dados estruturados e desestruturados. Em um primeiro momento, o Big Data pode até ser confundido com a Business Intelligence, mas difere na ordem de grandeza do volume de dados (que é muito maior), e na natureza dos dados. Enquanto as ferramentas de BI tradicionais extraem dados de Data entende que os dados não- Nossa ideia é começar o assunto apresentando, de forma sucinta, os conceitos básicos que permeiam o termo Big Data. Vamos começar pela definição que surgiu em 2001 no Meta Group (que viria a se juntar com a Gartner1 mais adiante) por meio do analista Doug Laney. 1 Gartner é uma empresa de consultoria fundada em 1979 por Gideon Gartner. A Gartner desenvolve tecnologias relacionadas a introspecção necessária para seus clientes tomarem suas decisões todos os dias. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação)- 2020 www.estrategiaconcursos.com.br 1265118 4 74 Para compor o conceito ele se utilizou de três termos, conhecidos como os 3Vs: Volume, Velocidade e Variedade. Vejamos a definição de cada um deles. Volume. Existem muitos fatores que contribuem para o aumento do volume de dados armazenados e trafegados. Podemos citar como exemplo: dados de transações armazenados ao longo de vários anos, dados de texto, áudio ou vídeo disponíveis em streaming nas mídias sociais e a crescente quantidade de dados coletados por sensores. No passado o volume de dados excessivo criou um problema de armazenamento. Mas, com os atuais custos de armazenamento decrescentes, outras questões surgem, incluindo, como determinar a relevância entre grandes volumes de dados e como criar valor a partir dessa relevância. Velocidade. De acordo com o Laney, velocidade significa o quão rápido os dados estão sendo produzidos e o quão rápido os dados devem ser tratados para atender as demandas. Etiquetas de RFID e sensores inteligentes estão impulsionando uma necessidade crescente de lidar com dados quase em tempo real. Reagir rápido o suficiente para lidar com a velocidade é um desafio para a maioria das organizações. Variedade. Os dados de hoje vêm em todos os tipos de formatos. Sejam bancos de dados tradicionais, hierarquias de dados criadas por usuários finais e sistemas OLAP, arquivos de texto, e-mail, medidores ou sensores de coleta de dados, vídeo, áudio, dados de ações do mercado e transações financeiras. Em algumas estimativas, 80% dos dados de uma organização não são numéricos! Mas, estes dados também precisam ser incluídos nas análises e nas tomadas de decisões das empresas. Big Data é importante porque permite que as organizações recolham, armazenem, administrem e manipulem grandes quantidades de dados na velocidade certa, no tempo certo para conseguir os conhecimentos corretos. A novidade é que, pela primeira vez, o custo de ciclos de computação e armazenamento alcançou uma relação interessantes de curso x benefício. Por que isso é importante? Há alguns anos atrás, as empresas porque o custo de armazenamento e a limitação do processamento os impedia de armazenar tudo o que queriam analisar. Além da melhoria na capacidade de processamento e armazenamento, melhorias na velocidade de rede e confiança removeram outras limitações físicas da capacidade de administrar quantidades massivas de dados a um passo aceitável. Assim, as organizações querem ser capazes de compreender e acionar resultados de diferentes tipos de dados na velocidade certa não importa quantos dados estejam envolvidos. Se as empresas podem analisar petabytes de dados (o equivalente a 20 milhões de gabinetes, com quatro gavetas cheias de arquivos de texto ou 13.3 anos de conteúdo de HDTV) com desempenho Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 5 74 aceitável para discernir padrões e anomalias, elas podem começar a compreender dados de novas maneiras. Judith Hurwiz, et al - Big Data Para Leigos A mudança para Big Data não é exclusivamente em negócios. Ciência, pesquisa e atividades do governo também ajudaram a impulsioná-la. Pense sobre analisar o genoma humano ou lidar com todos os dados astronômicos coletados em observatórios para avançar nosso conhecimento do mundo à nossa volta. Considere também a quantidade de dados que o governo coleta em suas atividades antiterroristas e você entenderá a ideia de que Big Data não é só sobre negócios. Vejam a figura apresentada acima. Ela representa uma indicação do conceito de Big Data relacionando os três V s sobre os quais tratamos até agora, adicionando duas caraterísticas: veracidade e valor. Contudo, existem ainda outros V s, são eles Visibilidade, Variabilidade e Visualização que complementam o conceito, detalhando um pouco mais algumas características de Big Data. Vamos apresentar a definição destes termos no quadro abaixo. Veracidade. A veracidade foi um termo cunhado pela IBM, considerado o quarto V, que representa a falta de confiabilidade inerente em algumas fontes de dados. Por exemplo, medir os sentimentos dos clientes em mídias sociais é incerto por natureza, já que implicam uso do juízo humano. No entanto, eles contêm valiosas informações. Assim, a necessidade de lidar com dados Dados em repouso • Terabytes ou exabytes de dados existentes para o processo Volume Dados em movimento • Streaming data (fluxo de dados • Requer milissegundos ou segundos para resposta. Velocidade Dados em diferentes formas • Estruturados • Semiestruturado • Não estruturado • Texto • Multimidia Variedade Dados em dúvida • Incerteza sobre a consistência e completude. • Ambiguidade, latência, modelos de aproximação. Veracidade Dados em dinheiro • Os dados devem estar associados aos modelos de negócio. • Preocupação com a geração de retorno. Valor Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 6 74 imprecisos e incertos é outra faceta de Big Data, geralmente resolvida usando ferramentas e análises desenvolvidas para gerenciamento e mineração de dados imprecisos. É necessário avaliar as inconsistências, incompletudes, ambiguidades, latência e possíveis modelos de aproximação utilizados. Os dados podem ainda perder a vigência. Verificar se os dados são consistentes é extremamente necessário para qualquer análise de dados. Visibilidade. É a relevância dos dados. A organização está ciente de todos os dados que ele gera? Estes poderiam ser (aparentemente) registros de dados inconsequentes. Em outras palavras tentamos entender se todos os dados gerados estão disponíveis, e se são de fato armazenados e ficam visíveis para os analistas de dados. Valor. A Oracle introduziu valor como um atributo na definição de Big Data. Com base na definição da Oracle, Big Data é, muitas vezes, caracterizado por uma "densidade de valor relativamente baixa". Isto é, os dados recebidos na forma original, geralmente tem um valor baixo em relação ao seu volume. Entretanto, um valor elevado pode ser obtido pela análise de grandes volumes destes mesmos dados. Assim, as informações geradas devem produzir algum valor para as organizações. Variabilidade (e complexidade). A SAS apresentou variabilidade (e complexidade) como duas dimensões adicionais para Big Data. Variabilidade refere-se à variação nas taxas de fluxo de dados. Muitas vezes, a velocidade de Big Data não é consistente e tem picos e depressões periódicas. Complexidade refere-se ao fato de Big Data gerar ou receber informações através de uma multiplicidade de fontes. Isso impõe um desafio crucial: a necessidade de se conectar, integrar, limpar e transformar os dados recebidos de diferentes fontes. Visualização. É o modo como aqueles dados complexos serão representados ou apresentados. Big data é um termo utilizado para descrever grandes volumes de dados e que ganha cada vez mais relevância à medida que a sociedade se depara com um aumento sem precedentes no número de informações geradas. As dificuldades em armazenar, analisar e utilizar grandes conjuntos de dados têm sido um considerável gargalo para as organizações. Vamos fazer mais uma questão recente sobre esses conceitos: 1. Ano: 2017 Órgão: TCE-PE Cargo: Auditor de Obras Públicas Questão: 120 Com relação a Big Data, julgue o item subsequente. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 7 74 [120] Além de estar relacionadoà grande quantidade de informações a serem analisadas, o Big Data considera o volume, velocidade e a variedade dos dados estruturados dos quais se conhece a estrutura de armazenamento bem como dos não estruturado, como imagens, vídeos, áudios e documentos. Comentário: Big Data é o termo que descreve o imenso volume de dados estruturados e não estruturados que impactam os negócios no dia a dia. A definição da questão está perfeitamente de acordo com o conceito, citando inclusive os 3Vs da definição inicial de Doug Laney. Sendo assim, a resposta para esta alternativa está correta. Gabarito: C Dimensões sobre os dados A IBM cita atualmente 7 dimensões sobre os dados. Essas dimensões são uma outra forma de apresentar as características que vimos até o momento. As definições de velocidade, variedade, volume, valor e variedade são as mesmas neste contexto. Incluímos mais duas percepções que não foram listadas acima: governança e pessoas. Vejamos suas definições: Governança - Ao decidir implementar ou não uma plataforma de big data, uma organização pode estar olhando novas fontes e novos tipos de elementos de dados nos quais a propriedade não está definida de forma clara. Por exemplo, no caso de assistência médica, é legal acessar dados de paciente para obter insight? É correto mapear as despesas do cartão de crédito do cliente para sugerir novas compras? Regras semelhantes regem todos os segmentos de mercado. Além da questão da governança de TI, também pode ser necessário redefinir ou modificar os processos de negócios de uma organização para que ela possa adquirir, armazenar e acessar dados externos. Pessoas É necessário ter pessoas com aptidões específicas para entender, analisar os requisitos e manter uma solução de Big Data. Envolve conhecimento do segmento de mercado, domínio técnico sobre as ferramentas de Big Data e conhecimentos específicos de modelagem, estatística e outros. Essas duas dimensões, na percepção da IBM, juntamente com volume, variedade, velocidade, veracidade e valor dão viabilidade a um projeto de Big Data, podemos observar de forma organizada esses termos na figura abaixo. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 8 74 Big data trata, portanto, de grandes volumes, alta velocidade e variedade dos ativos de informação, procurando formas inovadoras e rentáveis de processamento da informação, visando uma melhor percepção dos fatos e uma tomada de decisão mais consistente. Outra definição da TechAmerica define big data da seguinte forma: "Big Data é um termo que descreve grandes volumes de dados de alta velocidade, complexos e variáveis que exigem técnicas e tecnologias avançadas para permitir a captura, armazenamento, distribuição, gestão e análise Antes de serguirmos em frente veja no infográfico do Jornal O Globo algumas soluções corporativas que envolvem Big Data: Big Data Volume Variedade Velociadade VeracidadeValor Pessoas Governança Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 9 74 Big Data pelo mundo. Fonte: Jornal O Globo. Entendido os conceitos básicos vamos avançar no assunto. Antes de falar sobre as premissas e aplicações, gostaria de tecer alguns comentários sobre falácias ou mitos associados a Big Data. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 10 74 FALÁCIAS2 SOBRE BIG DATA Quando pensamos em premissas sobre Big Data imaginamos uma caixa preta que vai receber dados de um lado e entregar algo pronto do outro. Nesta linha de raciocínio, provavelmente falaciosa, antes de apresentamos as condições ideias para funcionamento dos sistemas ou projetos de Big Data, nós mostraremos os erros que muitos assumem como verdade. Chamaremos de falácias ou mitos sobre Big Data. Falácia 01 Big Data engloba somente dados estruturados. Com o crescente volume de dados, o banco de dados relacional precisou ser complementado com outras estruturas de armazenamento, devido principalmente à escalabilidade e flexibilidade das novas soluções tecnológicas. Entretanto, os dados relacionais continuam sendo valiosos e são muito utilizados em soluções de Big Data. O que mudou de fato foi a inclusão de mais tipos de dados, além dos estruturados. Lembre- se do conceito de variedade. Falácia 02 Big Data refere-se somente a soluções com petabytes de dados Embora o volume de dados seja o fator que impulsionou o fenômeno Big Data, aplicações que utilizam conjuntos de dados em uma escala menor do que petabytes também podem se beneficiar das tecnologias de Big Data. Afinal, o mais importante nessas aplicações é a capacidade de extrair valor dos dados. Falácia 03 Big data é aplicado somente às empresas do Vale do Silício (Califórnia) Quando se fala em Big Data, é normal associarmos os termos às grandes empresas de tecnologia que prestam serviços na Web, tais como Facebook, Twitter, Netflix, Google. Embora elas tenham sido as primeiras a serem desafiadas com o grande volume, variedade e velocidade de dados, atualmente empresas de outros domínios, como agricultura, varejo e logística, também se beneficiam das tecnologias de Big Data. Falácia 04 Big Data é aplicado somente em grandes organizações Ainda existe essa percepção de que Big Data oferece valor exclusivamente para grandes organizações. Entretanto, pequenas e médias empresas também podem obter vantagem competitiva por meio de soluções de Big Data, oferecendo uma melhor experiência aos seus clientes, otimizando processos, reduzindo custos ou criando novos produtos e serviços. Falácia 05 Big Data requer uso de dados externos Embora a adoção de dados de diferentes fontes seja uma prática muito adotada em soluções de Big Data, a aquisição de dados externos é um requisito obrigatório. Na verdade, a sugestão para quem inicia um projeto de Big data é buscar extrair valor 2 O termo falácia deriva do verbo latino fallere, que significa enganar. Designa-se por falácia um raciocínio errado com aparência de verdadeiro. Na lógica e na retórica, uma falácia é um argumento logicamente inconsistente, sem fundamento, inválido ou falho na tentativa de provar eficazmente o que alega. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 11 74 primeiramente dos dados internos para somente depois ampliar suas jornadas a dados de terceiros. Falácia 06 - Big Data pode prever o futuro Big data e todas as suas ferramentas de análise, comentários, experiências científicas e visualizações não podem dizer o que vai acontecer no futuro. Por quê? Os dados que você coletar vem inteiramente do passado. Temos ainda de atingir um grau de evolução em que será possível coletar dados e os valores do futuro. Sendo assim, nós podemos analisar o que aconteceu no passado e tentar desenhar as tendências entre as ações e os pontos de decisão, e as suas consequências, baseadas nos dados. Podemos usar isso para adivinhar que, em circunstâncias semelhantes, se uma decisão semelhante for tomada, resultados semelhantes ocorreriam como resultado. Mas não podemos prever o futuro. Falácia 07 - Big Data pode substituir seus valores ou os da sua organização Big Data é pobre para substituir valores ou aqueles costumes e padrões pelos quais você vive sua vida e sua empresa se esforça para operar. Suas escolhas sobre essas questões podem serbem cristalinas, e pode ser mais fácil e claro resolver as vantagens e desvantagens de diferentes cursos da ação, mas os dados em si não podem ajudá-lo a interpretar como as decisões certas se comparam com os padrões que você definiu para si e para a sua empresa. Os dados podem descrever todos os tipos de cenários, tanto os próprios números quanto com a ajuda de software de visualização. Sua equipe pode criar muitas projeções de cenários sobre um determinado assunto, mas esses resultados são simplesmente isso - uma projeção. O trabalho de um executivo, como um CIO, é utilizar as ferramentas e pessoal disponível dentro de seu negócio, e realmente reconciliar os dados contra os valores da sua empresa. Falácia 08 - Big Data pode resolver problemas não quantificáveis Eis o velho ditado: Quando você só tem um martelo, tudo parece um prego. Uma vez que você começa a ter algum sucesso usando big data para prever e resolver problemas de negócios, haverá inevitavelmente uma tentação para "perguntar aos dados" toda vez que você tiver um problema ou um item sobre o qual a resolução não está clara. Como mencionado anteriormente, os dados podem apresentar mais e melhores opções e, talvez, deixar claro o que pode acontecer com cada uma dessas escolhas. Às vezes, porém, os dados não são bons e isso ocorre quando ele é usado de forma individual. Por quê? É quase impossível de quantificar o comportamento de um indivíduo. As pessoas têm seus próprios conjuntos de circunstâncias, os seus próprios universos, suas próprias razões e contextos. É impossível aplicar a matemática para um único indivíduo. Em vez disso, você tem que olhar para um grupo de indivíduos, de preferência um subgrupo com características semelhantes. Só então você pode observar as tendências de comportamento que se aplicam a todo o grupo. Agora que sabemos o que pode e o que não pode ser feito com Big Data, vamos entender quais as premissas que devem ser verificadas quando decidimos pela implementação de um projeto de Big Data. Primeiro precisamos considerar os elementos fundamentais para Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 12 74 o crescimento de Big Data tais como o aumento da capacidade de armazenamento, aumento do poder de processamento e disponibilidade de dados. APLICAÇÕES DE BIG DATA As aplicações de Big Data e análise de dados são as mais variadas. Uma lista retirada do livro do Aguinaldo Aragon nos traz as seguintes opções de uso: desenvolvimento de mercado, inovação, desenvolvimento de produtos e serviço, eficiência operacional, previsões de demanda de mercado, detecção de fraudes, gerenciamento de riscos, previsão de concorrência, vendas, campanhas de marketing, avaliação de desempenho de funcionários, alocação de orçamento anual, estabelecimento de previsões financeiras, gestão de planos de saúde, identificação de potenciais compradores e entendimento da base de cliente. Essa lista extensa nos mostra apenas parte das oportunidades geradas pela utilização de Big Data. O uso de Big Data por empresas como Amazon e Netflix tem demostrado como a mineração de dados pode gerar resultados surpreendentes. A partir destes dados, é possível conhecer melhor as escolhas dos usuários. Implementações dos conceitos de Big Data permitem, hoje, possibilidades quase infinitas, utilizando, por exemplo, mineração de dados conseguimos verdadeiros insights sobre os dados. Um exemplo disso foi a pesquisa feita pela Consultoria MGI. Ela estudou dados em cinco grandes domínios - saúde nos Estados Unidos, o setor público na Europa, varejo nos Estados Unidos, dados de produção e dados de localização de pessoas em nível mundial. Big Data poderia gerar valor em cada um deles. Por exemplo, um varejista pode utilizar do conceito para aumentar sua margem operacional em mais de 60%. O aproveitamento de Big Data no setor público tem um potencial enorme também. Se o programa de saúde dos Estados Unidos fosse usar big data de forma criativa e eficaz poderia impulsionar a eficiência e qualidade, o setor poderia criar mais de US$ 300 bilhões em valor a cada ano. Dois terços dos quais seriam sob a forma de redução nas despesas de saúde dos EUA em cerca de 8 por cento. Nas economias desenvolvidas da Europa, os administradores do governo poderiam economizar mais de € 100 bilhões em melhorias de eficiência operacional usando big data, não incluindo o uso para reduzir a fraude e erros ou aumentar a cobrança das receitas fiscais. A quantidade de dados em nosso mundo está explodindo, e a análise de grandes conjuntos de dados - os chamados big data - se tornará uma base essencial na concorrência pelo mercado ou na prestação de um serviço público de qualidade, apoiando novas ondas de crescimento na produtividade, inovação e expectativa dos consumidores. Líderes em todos os setores terão de lidar com as implicações de Big Data, não apenas os gestores orientados a dados, ou cientistas de dados. O crescente volume e detalhamento das informações capturadas por empresas, o aumento de dados multimídia, mídia social, e a Internet das Coisas vão alimentar o crescimento exponencial dos dados no futuro. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 13 74 A minha experiência pessoal no estudo de Big Data é que quando começamos a ler sobre o assunto esses conceitos teóricos vistos até aqui são apresentados de forma semelhante em vários artigos disponíveis na internet e em livros especializados, mas aí você deve estar fazendo a seguinte pergunta: E como eu implemento esse trem? (Homenagem aos meus amigos mineiros). E alguém vai te responder: usa uma base NoSQL com a infraestrutura do Hadoop! 2. Ano: 2017 Banca: CESPE Órgão: TCE-PE Cargo: Analista De Controle Externo Área: Auditoria De Contas Públicas Questão: 120 No que se refere a Big Data, julgue o item subsecutivo. 120 O termo Big Data Analytics refere-se aos poderosos softwares que tratam dados estruturados e não estruturados para transformá-los em informações úteis às organizações, permitindo-lhes analisar dados, como registros de call center, postagens de redes sociais, de blogs, dados de CRM e demonstrativos de resultados. Comentário: analítico e inteligente de grandes volumes de dados, estruturados ou não- estruturados, que são coletados, armazenados e interpretados por softwares de altíssimo desempenho. Trata-se do cruzamento de uma infinidade de dados do Vejam que a definição está plenamente de acordo com o texto da questão, nos habilitando a confirmar como correta a alternativa. Gabarito: C CLASSIFICAÇÃO DE BIG DATA É possível categorizar problemas de negócios em tipos de problemas de big data. Quando problemas de big data são categorizados por tipo, é mais fácil ver as características de cada tipo de dados. Essas características ajudam a entender como os dados são obtidos, como são processados para o formato apropriado e com que frequência novos dados estão disponíveis. Dados de diferentes fontes possuem características diferentes; por exemplo, dados de mídia social podem ter vídeos, imagens e texto não estruturado, como postagens de blog, entrando continuamente. Quer conferir alguns exemplos? A tabela a seguir contém problemas comuns de negócios e atribui um tipo de big data a cada um. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 14 74 Problemas de negócios Tipo de big data Descrição Serviços públicos: Prever o consumo de energia Dados geradospor máquina Concessionárias de serviços públicos implementaram medidores inteligentes para medir o consumo de água, gás e eletricidade a intervalos regulares de uma hora ou menos. Esses medidores inteligentes geram enormes volumes de dados de intervalo que precisam ser analisados. Para ter eficiência operacional, a empresa precisa monitorar os dados entregues pelo sensor. Uma solução de big data pode analisar dados de geração de energia (fornecimento) e de consumo de energia (demanda) usando medidores inteligentes. Telecomunicações: Analítica de perda de clientes Dados da web e sociais Dados de transação (operacionais) Operadores de telecomunicações precisam criar modelos detalhados de perda de clientes que incluam dados de mídias sociais e de transação, para estar à frente da concorrência. Provedores que implementam uma estratégia de analítica preditiva podem gerenciar e prever a perda analisando os padrões de chamada dos assinantes. Varejo: Sistema de mensagens personalizado com base em reconhecimento facial e mídia social Dados da web e sociais Biométrica Varejistas podem usar tecnologia de reconhecimento facial combinada a uma foto da mídia social para fazer ofertas personalizadas a clientes com base no comportamento de compra e na localização. Esse recurso pode ter um impacto tremendo nos programas de fidelização dos varejistas, mas há sérias considerações sobre a privacidade. Os varejistas precisariam ser transparentes com relação à privacidade para implementar esses aplicativos. Problemas de negócios de big data por tipo. Fonte: http://www.ibm.com/developerworks/br/library/bd- archpatterns1/ A figura a seguir mostrará as várias categorias ou taxonimias que podemos usar para classificar Big Data, e as possíveis divisões ou grupos em cada categoria. As categorias mais relevantes estão em azul turquesa. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 15 74 Falando um pouco mais sobre as classificações: Tipo de análise Se os dados são analisados em tempo real ou agrupados para análise posterior. Essa escolha afeta várias outras decisões sobre produtos, ferramentas, hardware, fontes de dados e a frequência estimada dos dados. Para alguns casos de uso é necessária uma mistura dos dois tipos. Metodologia de processamento O tipo de técnica a ser aplicada para processar dados (por exemplo, preditiva, analítica, consulta ad hoc e relatórios). As necessidades de negócios determinam a metodologia de processamento apropriada. É possível usar uma combinação de técnicas. A escolha de metodologia de processamento ajuda a identificar as ferramentas e técnicas apropriadas para uso na solução de big data. Frequência e tamanho dos dados O volume estimado de dados e a frequência com que chegam. Saber a frequência e o tamanho ajuda a determinar o mecanismo de armazenamento, formato de armazenamento e as ferramentas necessárias de pré- processamento. Frequência e tamanho de dados dependem das fontes. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 16 74 • Sob demanda, como dados de mídia social • Feed contínuo, em tempo real (dados de clima ou transacionais) • Série temporal (dados com base em tempo) Tipo de dados Tipo dos dados a serem processados transacionais, históricos, principais e outros. Saber o tipo de dados ajuda a segregar os dados no armazenamento. Formato de conteúdo Formato dos dados recebidos estruturados (SGBDR, por exemplo), não estruturados (áudio, vídeo e imagens, por exemplo) ou semiestruturados. O formato determina como os dados recebidos precisam ser processados e é essencial para escolher ferramentas e técnicas e definir uma solução de uma perspectiva de negócios. Fonte de dados Fontes de dados (onde os dados são gerados) web e mídia social, gerados por máquina, gerados por humanos, etc. Identificar todas as fontes de dados ajuda a determinar o escopo de uma perspectiva de negócios. Consumidores de dados Uma lista de todos os possíveis consumidores dos dados processados: • Processos de negócios • Usuários corporativos • Aplicativos corporativos • Pessoas individuais em várias funções de negócios • Parte dos fluxos do processo • Outros repositórios de dados ou aplicativos corporativos Hardware O tipo de hardware no qual a solução de big data será implementada hardware barato ou de ponta. Entender as limitações do hardware ajuda na escolha da solução big data. PADRÕES ATÔMICOS E COMPOSTOS DE UMA SOLUÇÃO DE BIG DATA Os padrões auxiliam a definir os parâmetros, quando da adoção de uma solução de big data. Veremos dois tipos principais: os padrões atômicos descrevem as abordagens típicas para o consumo, processamento, acesso e armazenamento de big data; os padrões compostos, que são formados por padrões atômicos, são classificados de acordo com o escopo da solução de big data. Por apresentarem as ideias mais relevantes acerca do Big Data, exploraremos os padrões atômicos. PADRÕES ATÔMICOS Os padrões atômicos ajudam a identificar a forma que os dados são consumidos, processados, armazenados e acessados por problemas de big data. Eles também podem ajudar a identificar os componentes necessários. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 17 74 Cada padrão lida com requisitos específicos visualização, análise de dados históricos, dados de mídia social e armazenamento de dados não estruturados, por exemplo. Os padrões atômicos podem trabalhar em conjunto para criar um padrão composto. Não há camadas ou sequência para esses padrões atômicos. Por exemplo, os padrões de visualização podem interagir com os padrões de acesso a dados para mídia social diretamente e os padrões de visualização podem interagir com o padrão de processamento de análise avançada. Padrões atômicos de Big Data. Fonte: http://www.ibm.com/developerworks/br/library/bd-archpatterns4/ Vejamos um pouco de cada padrão atômico: PADRÕES DE CONSUMO Lidam com as várias formas em que o resultado da análise de dados é consumido. Inclui padrões de consumo de dados para atender a diversos requisitos. Vejamos os principais padrões de consumo a seguir: Visualização Padrões Atômicos Padrões de consumo Visualização Descobertas ad-hoc Aumentar o armazenamento de dados tradicional Notificações Iniciar resposta automatizada Padrões de processamento Análise de dados históricos Análises avançadas Pré-processamento de dados brutos Análises ad-hoc Padrões de acesso Dados da web e mídias soaciais Dados de dispositivos Dados de data warehouse, transacionais e operacionais Padrões de armazenamento Dados estruturados e distribuídos Dados não estruturados e distribuídos Dados tradicionais Dados em nuvem Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 ==134dde== 18 74 A forma tradicional de visualizar dados se baseia em gráficos, painéis e relatórios de resumo. Essas abordagens tradicionais não são sempre a melhor maneira de visualizar os dados. Os requisitos típicos para visualização de big data, incluindo os requisitos emergentes, são listados abaixo: • Realizar análise em tempo real e exibição de dados de fluxo • Extrair dados de forma interativa, com base no contexto • Executar procurasavançadas e obter recomendações • Visualizar informações paralelamente • Ter acesso a hardware avançado para necessidades de visualização futuristas A pesquisa para determinar como os insights de big data podem ser consumidos por humanos e máquinas está em andamento. Os desafios incluem o volume de dados envolvido e a necessidade de associar contexto a eles. O insight dever apresentado no contexto adequado. Descoberta ad hoc Criar de relatórios padrão que sejam adequados para todas as necessidades de negócios, via de regra, não é viável, pois as empresas têm requisitos de consultas de dados de negócios diversas. Os usuários precisam da capacidade de enviar consultas ad hoc, ou seja, problema. Aumentar os armazenamentos de dados tradicionais Aumentar os armazenamentos de dados existentes ajuda a ampliar o escopo de dados disponível para a analítica atual para incluir dados que residem dentro e fora dos limites organizacionais, como dados de mídia social, que podem melhorar os dados principais. Ao ampliar o escopo para incluir novas tabelas de fatos, dimensões e dados principais nos armazenamentos existentes e adquirir dados de clientes a partir de mídia social, uma organização pode obter um insight mais profundo do cliente. Notificação Os insights de big data permitem que as pessoas, negócios e máquinas ajam instantaneamente usando notificações para indicar eventos. A plataforma de notificação deve ser capaz de lidar com o volume antecipado de notificações a serem enviadas de maneira oportuna. Essas notificações são diferentes das malas diretas ou do envio em massa de mensagens SMS, pois o conteúdo geralmente é específico para o consumidor. Por exemplo, os mecanismos de recomendação podem fornecer insights sobre a enorme base de clientes em todo o mundo, e as notificações podem ser envidas para tais clientes. Iniciar uma resposta automatizada Os insights de negócios derivados do big data podem ser usados para acionar ou iniciar outros processos de negócios ou transações. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 19 74 PADRÕES DE PROCESSAMENTO O big data pode ser processado quando os dados estão em repouso ou em movimento. Dependendo da complexidade da análise, os dados podem não ser processados em tempo real. Esse padrão lida com como o big data é processado em tempo real, quase em tempo real ou em lote (rotinas batch, processadas em horários pré-determinados). Vejamos um pouco mais sobre esses padrões a seguir: Análise de dados históricos A análise de dados históricos tradicional é limitada a um período predefinido de dados, que normalmente depende das políticas de retenção de dados. Após desse período, geralmente os dados são arquivados ou limpos em virtude de limitações de armazenamento e processamento. A análise histórica envolve analisar as tendências históricas para um determinado período, conjunto de períodos e produtos e compará-las aos dados atuais disponíveis. Analítica Avançada O big data fornece enormes oportunidades de obter insights criativos. É possível correlacionar diferentes conjuntos de dados em muitos contextos. A descoberta desses relacionamentos requer técnicas e algoritmos complexos inovadores. A análise avançada inclui previsões, decisões, processos inferenciais, simulações, identificações de informações contextuais e resoluções da entidade. Os aplicativos de analítica avançada incluem análise de dados biométricos, por exemplo, análise de DNA, análise espacial, analítica baseada em localização, análise científica, pesquisa e muitas outras. A analítica avançada requer a computação exigente para gerenciar a enorme quantidade de dados. Pré-processar dados brutos A extração de dados a partir de dados não estruturados, como imagens, áudio, vídeo, feeds binários ou até mesmo texto, é uma tarefa complexa e precisa de técnicas como aprendizado de máquina e processamento de idioma natural, etc. O outro grande desafio é como verificar a precisão e a exatidão do resultado de tais técnicas e algoritmos. Para executar a análise em quaisquer dados, eles devem estar em algum tipo de formato estruturado. Os dados não estruturados acessados de várias fontes podem ser armazenados como estão e, em seguida, transformados em dados estruturados e novamente armazenados nos sistemas de armazenamento de big data. O texto não estruturado pode ser convertido em dados estruturados ou semiestruturados. Da mesma forma, os dados de imagem, áudio e vídeo precisam ser convertidos nos formatos que podem ser usados para análise. Além disso, a precisão e exatidão da analítica avançada que usa algoritmos preditivos e estatísticos dependem da quantidade de dados e algoritmos usados para treinar os modelos. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 20 74 3. Ano: 2014 Banca: CESPE Órgão: TJ/SE Cargo: Analista Judiciário Em soluções Big Data, a análise dos dados comumente precisa ser precedida de uma transformação de dados não estruturados em dados estruturados. Comentário: Para que um dado possa ser analisado, é preciso que ele esteja em algum tipo de formato estruturado, envolvendo metadados, relacionado a algum outro dado ou informação. Gabarito: C. Análise ad hoc O processamento de consultas ad hoc no big data traz desafios diferentes daqueles incorridos ao realizar consultas ad hoc em dados estruturados pelo fato de as fontes e formatos dos dados não serem fixos e exigirem mecanismos diferentes para recuperá-los e processá-los. Embora as consultas ad hoc simples possam ser resolvidas pelos provedores de big data, na maioria dos casos, elas são complexas porque os dados, algoritmos, formatos e resoluções da entidade devem ser descobertos dinamicamente. O conhecimento dos cientistas de dados e dos usuários corporativos é necessário para definir a análise exigida para as seguintes tarefas: • Identificar e descobrir os cálculos e algoritmos • Identificar e descobrir as fontes de dados • Definir os formatos necessários que podem ser consumidos pelos cálculos • Executar os cálculos nos dados paralelamente 4. Ano: 2014 Banca: CESPE Órgão: TJ/SE Cargo: Analista Judiciário O processamento de consultas ad hoc em Big Data, devido às características de armazenamento dos dados, utiliza técnicas semelhantes àquelas empregadas em consultas do mesmo tipo em bancos de dados tradicionais. Comentário: O processamento de consultas ad hoc no big data traz desafios diferentes daqueles incorridos ao realizar consultas ad hoc em dados estruturados pelo fato de as fontes e formatos dos dados não serem fixos e exigirem mecanismos diferentes para recuperá-los e processá-los. Em Big Data, tais consultas serão bem mais complexas e dinâmicas. Gabarito: E. PADRÕES DE ACESSO Existem muitas fontes de dados e formas em que os dados podem ser acessados em uma solução de big data, vejamos as mais comuns: Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 21 74 Web e mídias sociais A Internet é a fonte de dados que fornece muitos dos insights produzidos atualmente. A web e a mídia social são úteis em praticamente todas as análises, mas são necessários mecanismos de acesso diferentes para obter esses dados. A web e a mídia social são a fonte de dados mais complexa de todas em virtude de sua enorme variedade, velocidade e volume. Há aproximadamente de 40 a 50 categorias de websites e cada uma exigirá um tratamento diferente para acessar esses dados.(gerados por) Dispositivos O conteúdo gerado por dispositivos inclui dados de sensores. Os dados são detectados a partir das origens de dados, como informações sobre o clima, medições elétricas e dados sobre poluição, e capturados pelos sensores. Os dados podem ser fotos, vídeos, texto e outros formatos binários. Dados transacionais, operacionais e de Warehouse É possível armazenar os dados operacionais e transacionais em warehouse existentes para evitar a limpeza ou o arquivamento deles (em virtude de limitações de armazenamento e processamento) ou para reduzir a carga no armazenamento tradicional quando os dados são acessados por outros consumidores. Os dados transacionais podem ser inseridos no armazenamento de warehouse usando conectores padrão disponibilizados por diversos fornecedores de banco de dados. O pré- processamento de dados transacionais é muito mais fácil, pois a maior parte deles é estruturada. Os processos de extração, transformação e carregamento simples podem ser usados para mover os dados transacionais para o armazenamento em um data warehouse. PADRÕES DE ARMAZENAMENTO Os padrões de armazenamento auxiliam a determinar o armazenamento adequado para diversos formatos e tipos de dados. Os dados podem ser armazenados como estão, com relação a pares de valores de chave ou em formatos predefinidos. Vejamos os principais padrões: Dados não estruturados e distribuídos A maior parte do big data não é estruturada, já sabemos, e pode conter informações que podem ser extraídas de diferentes formas para diferentes contextos. Na maioria das vezes, os dados não estruturados devem ser armazenados como estão, em seu formato original. Tais dados podem ser armazenados em sistemas de arquivos distribuídos, como HDFS (Hadoop Distributed File System), e em armazenamento de documentos NoSQL (Not Only SQL), como o MongoDB. Esses sistemas fornecem uma maneira eficiente de recuperar dados não estruturados. Dados estruturados e distribuídos Os dados estruturados incluem aqueles que chegam da fonte de dados e já estão em um formato estruturado e os dados não estruturados que foram pré-processados. Esses dados Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 22 74 convertidos devem ser armazenados para evitar a frequente conversão de dados brutos para dados estruturados. Tecnologias como BigTable do Google são usadas para armazenar dados estruturados. O BigTable é um sistema de autogerenciamento tolerante a falhas de grande escala que inclui terabytes de memória e petabytes de armazenamento. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 23 74 Armazenamento de dados tradicionais O armazenamento de dados tradicional não é a melhor opção para armazenar big data, mas nos casos em que as empresas estão realizando a exploração de dados inicial, elas podem optar por usar o data warehouse, o sistema RDBMS (sistemas relacionais) e outros armazenamentos de conteúdo existentes. Esses sistemas de armazenamento existentes podem ser usados para armazenar os dados que são compilados e filtrados usando a plataforma de big data. Os sistemas de armazenamento de dados tradicionais não são adequados para o big data. Armazenamento na nuvem Muitos provedores de infraestrutura da nuvem possuem recursos de armazenamento estruturado e não estruturado distribuídos. As tecnologias de big data são um pouco diferentes das perspectivas de configurações, manutenção, gerenciamento de sistemas e programação e modelagem tradicionais. Além disso, as qualificações necessárias para implementar as soluções de big data são raras e caras. As empresas explorando as tecnologias de big data podem usar soluções de nuvem que fornecem o gerenciamento de sistemas, manutenção e armazenamento de big data. Contudo, não-raro, os dados a serem armazenados são confidenciais, incluindo dados biométricos e registros médicos. A segurança de dados, o compartilhamento de dados, a governança de dados e outras políticas relacionadas aos dados, são aspectos a serem considerados ao ponderar a nuvem como um repositório de armazenamento para big data. A capacidade de transferir enormes quantidades de dados também é outra consideração fundamental para o armazenamento em nuvem. 5. Ano: 2014 Banca: CESPE Órgão: TJ/SE Prova: Analista Judiciário Ao utilizar armazenamento dos dados em nuvem, a localização do processamento de aplicações Big Data não influenciará os custos e o tempo de resposta, uma vez que os dados são acessíveis a partir de qualquer lugar. Comentário: Naturalmente, por envolver transferência de volumes muito grandes de dados, o tempo de resposta das aplicações pode ser afetado. Além disso, ao adotar armazenamento em nuvem, espera-se uma diminuição dos custos de armazenamento, que será feito por um terceiro. Gabarito: E. 6. Ano: 2013 Banca: CESPE Órgão: TRE/GO Prova: Técnico Judiciário Área: Administrativa Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 24 74 A Big Data pode ser utilizada na EAD para se entender as preferências e necessidades de aprendizagem dos alunos e, assim, contribuir para soluções mais eficientes de educação mediada por tecnologia. Comentário: O Big Data poder ser utilizado para melhor conhecer o perfil e o comportamento dos alunos, para que cursos à distância sejam mais eficazes. Este tipo de sentença CESPE (Tal coisa PODE ser utilizada...) só estará errado se estiver escrito algo muito absurdo a seguir. De qualquer forma, sugiro a leitura complementar: http://convergenciadigital.uol.com.br/cgi/cgilua.exe/sys/start.htm?infoid=37729#.Va LtKvlVhBc Gabarito: C. MAPA ESTRATÉGICO Conceitos de Big Data Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 25 74 NOSQL Começaremos analisando os conceitos e os modelos de dados que dão suporte a bases de dados NoSQL. Lembrem-se que o foco aqui é entender os conceitos e não a parte técnica do assunto. Alguns nomes técnicos de ferramentas e aplicações que usam esses tipos de modelos de dados serão apresentados, contudo, você não tem necessidade de conhecer nenhuma dessas ferramentas. Vamos em frente!? CONCEITOS Os bancos de dados relacionais foram bem-sucedidos porque trouxeram os benefícios de armazenamento de dados persistentes de forma mais organizada, com controle de concorrência entre as transações. As transações desempenham um papel importante na hora de lidar com os erros, pois é possível fazer uma alteração e, caso ocorra um erro durante seu processamento, pode-se desfazê-la e voltar ao estado anterior. Embora haja diferenças de um banco de dados relacional para outro os mecanismos principais permanecem os mesmos: os dialetos SQL utilizados por diversos fornecedores são similares, e as transações são realizadas praticamente da mesma forma. Banco de dados relacionais fornecem muitas vantagens, mas não são, de forma alguma, perfeitos. Desde que surgiram, há muita frustração e críticas em relação a seu uso. Vejamos as palavras chaves de uma comparação entre SQL (Relacional) e NoSQL. Para os desenvolvedores de aplicativos, a maior frustração tem sido a diferença entre o modelo relacional e as estruturas de dados na memória, comumente chamada de incompatibilidade de impedância. Os modelos de dados relacionais organizam os dados em uma estruturade tabelas e linhas, ou, mais apropriadamente, de relações e tuplas. Uma tupla é um conjunto de pares nome-valor e uma relação é um conjunto de tuplas. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 26 74 Ao longo dos anos, tornou-se mais fácil lidar com a incompatibilidade de impedância devido à ampla disponibilidade de frameworks de mapeamento objeto-relacional, como Hibernate e iBATIS, que implementam padrões de mapeamento bastante conhecidos. Embora a questão do mapeamento ainda seja controversa dado que os frameworks poupam muito trabalho pesado às pessoas, mas podem se tornar um problema quando estas exageram ao ignorar o banco de dados, comprometendo o desempenho das operações de manipulação de dados sobre a base. Outro ponto relevante dentro do contexto apareceu devido ao crescimento dos Sistemas Web. Lidar com o aumento da quantidade de dados e com o tráfego exigiu mais recursos computacionais. Para comportar esse crescimento, há duas opções: ir para cima (crescimento vertical) ou para fora (horizontal). Ir para cima significa adquirir máquinas maiores, mais processadores, ter maior capacidade de armazenamento em disco e memória. Máquinas maiores, todavia, tornam-se cada vez mais caras, sem mencionar que há limites físicos quanto ao aumento do seu tamanho ou para se escalar verticalmente. A alternativa seria utilizar mais máquinas menores em um cluster. Um cluster de máquinas pequenas pode utilizar hardware mais acessível e acaba se tornando mais barato para a aplicação. Ele também pode ser mais resiliente. Embora falhas em máquinas individuais sejam comuns, o cluster, como um todo, pode ser criado para continuar funcionando apesar dessas falhas, fornecendo alta confiabilidade. Duas empresas em particular Google e Amazon têm sido influentes no processo de desenvolvimento de rotas alternativas para armazenamento baseado na ideia de clusters. Ambas estiveram à frente na execução de grandes clusters. Além disso, obtiveram quantidades de dados relevantes para testarem e comprovarem seus modelos. Elas eram empresas bem-sucedidas e em crescimento com fortes componentes técnicos, proporcionando-lhes os meios e as oportunidades. Não é surpresa o fato de que essas empresas tinham em mente acabar com seus bancos de dados relacionais. Quando a década de 2000 chegou, elas produziram artigos concisos, porém altamente influentes, a respeito de seus trabalhos: BigTable (Google) e Dynamo (Amazon). Os exemplos do BigTable e do Dynamo inspirou a criação de projetos, que faziam experimentações com armazenamentos alternativos de dados, e discussões sobre o assunto haviam se tornado uma parte essencial das melhores conferências sobre software realizada no dia 11 de junho de 2009, em São Francisco Califórnia, organizada por Johan Oskarsson, um desenvolvedor de software de Londres. Johan estava interessado em descobrir mais sobre esses novos bancos de dados enquanto estava em São Francisco para um evento sobre Hadoop. Já que dispunha de pouco tempo, achou que não seria viável visitar todas as empresas, de modo que resolveu organizar uma reunião em que todos pudessem estar presentes e apresentar seu trabalho para quem estivesse interessado em conhecê-lo. A chamad Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 27 74 Voldemort, Cassandra, Dynomite, HBase, Hypertable, CouchDB e MongoDB, mas o termo nunca ficou limitado a esse grupo original. Não há uma definição genericamente aceita nem uma autoridade para fornecer uma, de modo que tudo o que podemos fazer é discutir algumas características comuns em bancos de dados que tendem a ser chamados de As características comuns dos bancos de dados NoSQl são: não utilizam o modelo relacional, tem uma boa execução em clusters, ter código aberto (open source), são criados para suportar propriedades da web do século XXI, e não tem um esquema definido (schema free). O resultado mais importante do surgimento do NoSQL é a persistência poliglota. Em vez de escolher o banco de dados relacional mais utilizado por todos, precisamos entender a natureza dos dados que estamos armazenando e como queremos manipulá-los. O resultado é que a maioria das organizações terá uma mistura de tecnologias de armazenamento de dados para diferentes circunstâncias. Veja a figura abaixo: MODELOS DE DADOS Um modelo de dados é a forma pela qual percebemos e manipulamos nossos dados. Para as pessoas utilizarem um banco de dados precisam de um modelo que descreve a forma pela qual interagimos com os dados desse banco. Embora o termo formal para modelo esteja relacionado a um metamodelo ou uma abstração sobre os dados, quando tratamos de modelos dentro do contexto de NoSQL estamos nos referindo a forma ou o modo pelo qual o gerenciador do banco de dados organiza seus dados. O modelo de dados dominante nas últimas décadas é o modelo relacional, já falamos bastante sobre ele em uma aula anterior, que pode ser entendido como um conjunto de tabelas. Cada tabela possui linhas e cada linha representa uma entidade de interesse. Descrevemos essa entidade por meio de colunas, cada uma tendo um único valor. Uma Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 28 74 coluna pode se referir a outra linha da mesma tabela ou em uma tabela diferente, o que constitui um relacionamento entre essas entidades. Uma das mudanças mais evidentes trazidas pelo NoSQL é o afastamento do modelo relacional. Cada solução NoSQL possui um modelo diferente, os quais dividimos em quatro categorias amplamente utilizadas no ecossistema NoSQL: chave-valor, documento, família de colunas ou colunar, e grafos. Dessas as três primeiras compartilham uma A orientação agregada reconhece que você, frequentemente, deseja trabalhar com dados na forma de unidades que tenham uma estrutura mais complexa do que um conjunto de tuplas. Pode ser útil pensar em termos de um registro complexo que permita que listas e outras estruturas de dados sejam aninhadas dentro dele. Partindo desta ideia é possível agora definir o conceito de agregado. Um agregado é um conjunto de objetos relacionados que desejamos tratar como uma unidade. Em particular, é uma unidade de manipulação de dados e gerenciamento de consistência. Normalmente, preferimos atualizar agregados como operações atômicas e comunicarmo-nos com nosso armazenamento de dados em termos agregados. Essa definição corresponde bem ao funcionamento dos bancos de dados chave-valor, documento e família de colunas. Lidar com agregados facilita muito a execução desses bancos de dados em um cluster, uma vez que o agregado constitui uma unidade natural para replicação e fragmentação. Agregados também são, frequentemente, mais simples de ser manipulados pelos programadores de aplicativos. Vejam um exemplo de um modelo agregado na figura abaixo. Observem que nestes casos é possível criar uma estrutura hierárquica dentro dos atributos dos objetos. Para fazer isso usamos podemos usar JSON ou XML. Vamos agora tratar com um pouco mais de detalhes cada uma das categorias de modelos que apresentamos anteriormente. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 29 74 MODELO DE DADOS CHAVE-VALOR O modelo de dados chave-valor trata o agregado como um todo opaco, o que significa que somente serápossível fazer uma pesquisa por chave para o agregado como um todo, não sendo possível executar uma consulta nem recuperar apenas parte do agregado. Esse é o tipo de banco de dados NoSQL mais simples e permite a visualização do banco de dados como uma grande tabela hash. Conforme falamos acima, o banco de dados é composto por um conjunto de chaves, as quais estão associadas um único valor. A figura abaixo apresenta um exemplo de um banco de dados que armazena informações pessoais no formato chave-valor. A chave representa um campo como o nome, enquanto o valor representa a instância do correspondente. Este modelo, por ser de fácil compreensão e implementação, permite que os dados sejam rapidamente acessados pela chave, principalmente em sistemas que possuem alta escalabilidade, contribuindo para aumentar a disponibilidade de acesso aos dados. As operações disponíveis para manipulação de dados são bem simples, como get() e set(), que permitem retornar e capturar valores, respectivamente. A desvantagem deste modelo é que não permite a recuperação de objetos por meio de consultas mais complexas. Como exemplo de banco de dados NoSQL que adota o modelo chave-valor podemos destacar o DynamoDB, o qual foi desenvolvido pela Amazon. Dentre as principais funcionalidades do Dynamo temos a possibilidade de realizar particionamento, replicação e versionamento dos dados. Além do Dynamo, outras soluções NoSQL seguem o mesmo conceito de chave-valor: Redis, Riak e GenieDB. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 30 74 MODELO DE DADOS DE DOCUMENTO O modelo de documentos torna o agregado transparente para o banco de dados, permitindo que sejam executadas consultas e recuperações parciais. Entretanto, pelo fato de o documento não possuir esquema, o banco de dados não pode atuar muito na estrutura desse documento para otimizar o armazenamento e a recuperação de partes do agregado. Um documento, em geral, é um objeto com um identificador único e um conjunto de campos, que podem ser strings, listas ou documentos aninhados. Estes campos se assemelham a estrutura chave-valor, que cria uma única tabela hash para todo o banco de dados. No modelo orientado a documentos temos um conjunto de documentos e em cada documento temos um conjunto de campos (chaves) e o valor deste campo. Outra característica importante é que este modelo não depende de um esquema rígido, ou seja, não exige uma estrutura fixa como ocorre nos bancos de dados relacionais. Assim, é possível que ocorra uma atualização na estrutura do documento, com a adição de novos campos, por exemplo, sem causar problemas no banco de dados. Na figura a seguir temos um exemplo de documento representado por um banco de dados de fornecedor (supplier) que tem os campos ID, Name, Address e Order. Para cada um desses campos temos os valores associados. Vejam que o atributo order aponta para outro documento. Como principais soluções que adotam o modelo orientado a documentos destacamos o CouchDB e o MongoDB. CouchDB utiliza o formato JSON e é implementado em Java, além disso permite replicação e consistência. O MongoDB foi implementado em C++ e permite tanto concorrência como replicação. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 31 74 MODELO COLUNAR Modelos de famílias de colunas dividem o agregado em famílias de colunas, permitindo ao banco de dados tratá-las como unidades de dados dentro do agregado da linha. Isso impõe alguma estrutura ao agregado, mas também permite que o banco de dados aproveite a estrutura para melhorar sua acessibilidade. Vejam que neste caso, mudamos o paradigma em relação ao modelo chave-valor. A orientação deixa de ser por registros ou tuplas para orientação por colunas. Neste modelo os dados são indexados por uma trilha (linha, coluna e timestamp), onde as linhas e colunas são identificadas por chaves e o timestamp permite diferenciar múltiplas versões de um mesmo dado. Vale ressaltar que operações de leitura e escrita são atômicas, ou seja, todos os valores associados a uma linha são considerados na execução destas operações, independentemente das colunas que estão sendo lidas ou escritas. Outro conceito associado ao modelo é o de família de colunas (column family), que é usado com o intuito de agrupar colunas que armazenam o mesmo tipo de dados. Observem abaixo o que geralmente acontece na prática em banco de dados colunar. Neste caso as colunas das tabelas são serializadas e armazenadas em disco. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 32 74 Este modelo de dados surgiu com o BigTable do Google, por isso é comum falar sobre o modelo de dados BigTable. Dentre as características deste modelo temos a possibilidade de particionamento dos dados, além de oferecer forte consistência, mas não garante alta disponibilidade. Outras soluções sugiram após o BigTable, dentre elas o Cassandra, desenvolvido pelo Facebook. Temos também o Hbase, que é um banco de dados open source semelhante ao BigTable, que utiliza o Hadoop. MODELO DE GRAFOS Bancos de dados de grafos são motivados por uma frustração diferente com banco de dados relacionais e, por isso, têm um modelo oposto registros pequenos com interconexões complexas. A ideia desse modelo é representar os dados e/ou o esquema dos dados como grafos dirigidos, ou como estruturas que generalizem a noção de grafos. O modelo de grafos é mais interessante que outros quando informações sobre a interconectividade ou a topologia dos dados são mais ou tão importantes quantos os dados propriamente ditos. O modelo orientado a grafos possui três componentes básicos: os nós (são os vértices do grafo), os relacionamentos (são as arestas) e as propriedades (ou atributos) dos nós e relacionamentos. Neste caso, o banco de dados pode ser visto como um multigrafo rotulado e direcionado, onde cada par de nós pode ser conectado por mais de uma aresta. Um exemplo pode ser: cidades foram visitadas anteriormente (seja residindo ou viajando) por pessoas que No modelo relacional esta consulta poderia ser muito complexa devido a necessidade de múltiplas junções, o que poderia acarretar uma diminuição no desempenho da aplicação. Porém, por meio dos relacionamentos inerentes aos grafos, estas consultas tornam-se mais simples e diretas. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 33 74 Alguns bancos que utilizam esse padrão são: Neo4J, Infinite Graph, InfoGrid, HyperGraphDB. Vejam a figura abaixo que apresenta duas características relacionadas aos bancos de dados de grafos: o processamento e o armazenamento nativo. CONSIDERAÇÕES FINAIS SOBRE MODELOS Bancos de dados orientados a agregados tornam os relacionamentos entre agregados mais difíceis de lidar do que relacionamentos intra-agregados. Bancos de dados sem esquema permitem que campos sejam adicionados livremente aos registros, mas geralmente há um esquema implícito esperado pelos usuários dos dados. Banco de dados orientados a agregados, muitas vezes, criam visões materializadas para fornecer dados organizados de um modo diferente de seus agregados primários. Isso, muitas vezes, é realizado com computação MapReduce. Outro ponto importante é saber associar cada categoria dos modelos de dados aos seus respectivos representantesou principais referências. Veja nas figuras a seguir essa lista de forma organizada. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 34 74 Chave Valor Riak Redis Amazon DynamoDB Oracle BerkeleyBD Documentos MongoDB CouchDB Azure DocumentDB Colunar Hbase Cassandra HyperTable BigTable Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 35 74 FORMAS DE DISTRIBUIÇÃO Há dois estilos de distribuição de dados: a replicação e a fragmentação. A fragmentação distribui dados diferentes em múltiplos servidores, de modo que cada servidor atue como a única fonte de um subconjunto de dados. A replicação copia os dados para servidores distintos, de modo que cada parte dos dados pode ser encontrada em múltiplos lugares. Um sistema pode utilizar ambas as técnicas. A replicação mestre-escravo torna um nodo a cópia oficial, a qual lida com gravações, enquanto os escravos sincronizam-se com o mestre e podem lidar com as leituras. A replicação ponto a ponto permite gravações em qualquer nodo; os nodos são coordenados para sincronizar suas cópias de dados. A replicação mestre-escravo reduz a chance de conflitos de atualização, mas a ponto a ponto evita carregar todas as gravações em um único ponto de falha. TEOREMA CAP No mundo NoSQL, é comum referimo-nos ao teorema CAP como o motivo pelo qual pode-se precisar relaxar a consistência. Ele foi proposto originalmente por Eric Brewer em 2000, e recebeu uma prova formal de Seth Gilbert e Nancy Lynch alguns anos depois. É possível ouvir referências aos termos como conjectura de Brewer. A declaração do teorema CAP é que, dadas as três propriedades de Consistência, Disponibilidade e de Tolerância a partições, somente é possível obter duas delas. A sigla vem do nome dessas propriedades em inglês: Consistency, Availability, e Partition tolerance. Logicamente, a existência do teorema vai depender de como são definidas cada uma dessas propriedades. Vejamos então a definição de cada uma delas. Antes vejam a Grafos Neo4J Infinite Graph InfoGrid Titan Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 36 74 figura abaixo o diagrama de Van que representa o relacionamento entre as três propriedades. A consistência refere-se ao fato de que uma leitura em qualquer um dos nodos de um sistema retorna como resultado a mesma informação. Vejam a figura abaixo: A disponibilidade trata do fato das requisições de leitura e escrita sempre serão reconhecidas e respondidas sobre a forma de sucesso ou falha. Desta forma, toda solicitação recebida por um nodo que não esteja no estado de falha deve resultar em uma resposta. A tolerância a partições significa que o cluster pode suportar falhas na comunicação que o dividam em múltiplas partições incapazes de se comunicar entre si, essa situação é conhecida como divisão cerebral (split brain). Observe na figura a seguir um exemplo de disponibilidade e tolerância a partições. Veja que a partição B não possui os dados referentes ao id 3 e recebe uma mensagem de erros no caso de uma partição. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 37 74 ACID X BASE ACID é um princípio de design de banco de dados relacionado ao gerenciamento de transações. É um acrônimo que significa: Atomicidade, Consistência, Isolamento e Durabilidade. ACID é um estilo de gerenciamento de transações que utiliza controles de simultaneidade pessimista para garantir que a consistência seja mantida através da aplicação de bloqueios de registo. ACID é a abordagem tradicional de gerenciamento de transações de banco de dados, uma vez que é aproveitada pelos sistemas de gerenciamento de banco de dados relacionais. Quando olhamos para o teorema CAP, os bancos de dados relacionais estão associados à priorização das propriedades de Consistência e Disponibilidade. O Modelo BASE (Basically Avaliable, Soft State, Eventual Consistency), foi sugerido como contraposição ao ACID. O ACID é pessimista e força a consistência no final de cada operação, enquanto o modelo BASE é otimista e aceita que a consistência no banco de dados estará em um estado de fluxo, ou seja, não ocorrerá no mesmo instante, gerando A disponibilidade do Modelo BASE é garantida tolerando falhas parciais no sistema, sem que o sistema todo falhe. Por exemplo, se um banco de dados está particionado em cinco nós e um deles falha, apenas os clientes que acessam aquele nó serão prejudicados, pois o sistema como todo não cessará seu funcionamento. A consistência pode ser relaxada permitindo que a persistência no banco de dados não seja efetivada em tempo real (ou seja, logo depois de realizada uma operação sobre o banco). Pelo ACID, quando uma operação é realizada no SGBD, ela só será finalizada se houver a certeza de que a persistência dos dados foi realizada no mesmo momento, fato que é derivado da propriedade da durabilidade. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05 Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020 www.estrategiaconcursos.com.br 1265118 38 74 Já no BASE isso não se confirma. Para garantir a disponibilidade, algumas etapas são dissociadas à operação requisitada, sendo executadas posteriormente. O cliente realiza uma operação no banco de dados e, não necessariamente, a persistência será efetivada naquele instante. O Modelo BASE pode elevar o sistema a níveis de escalabilidade que não podem ser obtidos com ACID. No entanto, algumas aplicações necessitam que a consistência seja precisamente empregada. Nenhuma aplicação bancária poderá colocar em risco operações de saque, depósito, transferência, etc. O projetista do banco de dados deverá estar ciente de que se utilizar o Modelo BASE ganhará disponibilidade em troca de consistência, o que pode afetar os usuários da aplicação referente ao banco de dados. Quando um banco de dados suporta BASE, favorece a disponibilidade sobre a consistência. Em outras palavras, a base de dados é A + P a partir de uma perspectiva de teorema CAP. Em essência, BASE aproveita concorrência otimista, relaxando restrições fortes de consistência determinadas pelas propriedades ACID. Se um banco de dados é basicamente disponível, esse banco de dados sempre dará conhecimento ao pedido de um cliente, quer sob a forma dos dados solicitados ou de uma notificação de sucesso/fracasso. Na figura abaixo, o banco de dados é basicamente disponível, mesmo que tenha sido particionado como um resultado de uma falha de rede. Soft state significa que um banco de dados pode estar em um estado inconsistente quando os dados são lidos. Assim, os resultados podem mudar se os mesmos dados forem solicitados novamente. Isso ocorre porque os dados podem ser atualizados para a consistência, mesmo que nenhum usuário tenha escrito no banco de dados entre duas leituras. Esta propriedade está intimamente relacionada com a consistência eventual. Na figura abaixo, 1. Um usuário atualiza um registro no peer A. 2. Antes dos outros peers serem atualizados, o usuário B solicita o mesmo registro do peer C. 3. A base de dados está agora em um estado soft, e dados obsoletos são devolvido ao usuário B. Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti Aula 05
Compartilhar