Buscar

03 - Big Data, NoSQL e Hadoop

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 03
Business Intelligence para Concursos - Curso Regular	
Professor: Thiago Rodrigues Cavalcanti
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 1 de 41 
AULA xx: Big Data e Banco de dados NoSQL 
Sumário 
Big Data ............................................................................................................................................... 1 
1. Definições e conceito .................................................................................................. 1 
2. Falácias sobre Big Data .............................................................................................. 4 
3. Aplicações de Big Data ............................................................................................... 5 
4. NoSQL ............................................................................................................................... 7 
4.1. Conceitos ..................................................................................................................... 7 
4.2. Modelos de dados ..................................................................................................... 9 
4.2.1. Modelo de dados chave-valor ........................................................................ 10 
4.2.2. Modelo de dados de documento ................................................................... 11 
4.2.3. Modelo colunar .................................................................................................... 12 
4.2.4. Modelo de grafos ................................................................................................ 13 
4.2.5. Considerações finais sobre modelos ........................................................... 14 
4.3. Formas de distribuição ......................................................................................... 14 
4.4. Teorema CAP ............................................................................................................ 15 
4.5. ACID x BASE ............................................................................................................ 16 
4.6. Map-Reduce .............................................................................................................. 19 
5. Hadoop ........................................................................................................................... 20 
5.1. O ecossistema do Hadoop ................................................................................... 22 
Questões comentadas .............................................................................................................. 28 
Considerações finais ...................................................................................................................... 41 
Referência ......................................................................................................................................... 41 
 
Nesta aula nosso intuito é desenvolver um pouco seu conhecimento sobre 
bancos de dados não relacionais. Esse conceito surgiu pela necessidade de 
utilização de Big Data. Podemos falar de espaço de armazenamento, algo 
semelhante ao que dizemos sobre dinheiro, você tende a utilizar todos o espaço 
de armazenamento disponível. Considerando que o custo de armazenamento 
ficou pequeno, comparado com alguns anos atrás, 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 NoSQL e infraestruturas baseadas em processamento 
distribuído como o Hadoop. Vem comigo conhecer um pouco deste universo 
paralelo de banco de dados!  
 
Big Data 
1. Definições e conceito 
 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 tornar Gartner mais 
adiante) por meio do analista Doug Laney. Para compor o conceito ele se 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 2 de 41 
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. 
 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 3 de 41 
Vejam a figura apresentada acima. Ela representa uma indicação do 
conceito de Big Data relacionando os três Vs sobre os quais tratamos até agora. 
Contudo, existem outros Vs, são eles Veracidade, Visibilidade, Valor e 
Variabilidade que complementam o conceito, detalhando um pouco mais 
algumas características de Big Data. 
 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 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 pelaaná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. 
Podemos agora apresentar uma definição de Big Data da IBM. É 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 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 4 de 41 
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. 
Big data trata, portanto, 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 da informação”. Entendido os conceitos básicos vamos avançar 
para as premissas e aplicações. 
2. Falácias 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 sobre Big Data. 
Falácia 01 - Big Data não 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 02 - Big Data não 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 ser bem 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. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 5 de 41 
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 03 - Big Data não 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 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 o crescimento de Big Data tais como o aumento 
da capacidade de armazenamento, aumento do poder de processamento e 
disponibilidade de dados. 
3. 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 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 6 de 41 
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 economizarmais 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. 
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! É sobre esses termos que falaremos agora. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 7 de 41 
4. NoSQL 
Começaremos analisando os conceitos e os modelos de dados que dão 
suporte a bases de dados NoSQL. 
4.1. 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. 
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 estrutura de 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. 
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. Maquinas maiores, todavia, 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 8 de 41 
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 daquela época. O termo “NoSQL” que conhecemos 
hoje é resultado de uma reunião 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 chamada original, NoSQL Meetup, para a reunião pedia por “bancos de 
dados não relacionais, distribuídos e de código aberto”. As palestras lá realizadas 
versaram sobre 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 “NoSQL”. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 9 de 41 
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. 
4.2. 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 modelosdentro 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 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 característica em comum conhecida como 
“orientação agregada”. 
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 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 10 de 41 
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. 
4.2.1. 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 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 11 de 41 
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 Dynamo, o qual foi desenvolvido pela Amazon e, 
posteriormente, foi utilizado como base para o desenvolvimento do banco de 
dados Cassandra. 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. 
4.2.2. 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. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 12 de 41 
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. 
4.2.3. 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, colina e 
timestamp), onde 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. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 13 de 41 
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. 
 
Este modelo de dados surgiu com o BigTable do Google, por isso é comum 
falarsobre 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 e 
baseado no Dynamo. Temos também o Hbase, que é um banco de dados open 
source semelhante ao BigTable, que utiliza o Hadoop. 
4.2.4. 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: “Quais cidades foram visitadas anteriormente (seja 
residindo ou viajando) por pessoas que viajaram para o Rio de Janeiro? ”. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 14 de 41 
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. 
Alguns bancos que utilizam esse padrão são: Neo4J, Infinite Graph, 
InforGrid, HyperGraphDB. Vejam a figura abaixo que apresenta duas 
características relacionadas aos bancos de dados de grafos: o processamento e o 
armazenamento nativo. 
 
4.2.5. 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. 
4.3. 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. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 15 de 41 
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. 
4.4. 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 depende de como são definidas cada uma dessas propriedades. 
Vejamos então a definição de cada uma delas. Antes vejam a 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: 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 16 de 41 
 
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 abaixo 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. 
 
4.5. 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 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 17 de 41 
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 uma “fila” de consistência de 
posterior execução. 
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. 
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 realizauma 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á por 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 estará ganhando 
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. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 18 de 41 
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. 
 
Consistência eventual é o estado em que leituras feitas por diferentes 
clientes, imediatamente após a gravação para o banco de dados, podem não 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 19 de 41 
retornar resultados consistentes. O banco de dados só alcança a consistência 
uma vez que as mudanças foram propagadas para todos os nós. Embora a base 
de dados esteja em processo para atingir o estado de consistência, estaremos 
em um estado soft. 
Na figura a seguir: 1. Um usuário atualiza um registro. 2. O registro só fica 
atualizado no peer A, mas antes que os outros pares possam ser atualizados, o 
usuário B solicita o mesmo registro. 3. A base de dados está agora em um 
estado soft, dados obsoletos são retornados para o usuário B do Peer C. 4. No 
entanto, a consistência é eventualmente atingida, e usuário C recebe o valor 
correto. 
 
BASE enfatiza disponibilidade imediata em relação à consistência, em 
contraste com o ACID, que garante a consistência imediata à custa de 
disponibilidade devido a bloqueio de registo. Esta abordagem soft para a 
consistência permite que as bases de dados compatíveis com BASE possam 
servir a múltiplos clientes sem qualquer latência embora servindo resultados 
inconsistentes. No entanto, as bases de dados compatíveis com BASE não são 
úteis para sistemas transacionais onde a falta de consistência é uma 
preocupação. 
4.6. Map-Reduce 
Map-reduce é um padrão que permite que operações computacionais sejam 
realizadas em um cluster. A tarefa de mapeamento lê dados de um agregado e 
os agrupa em partes chave-valor relevante. Mapeamentos somente leem um 
único registro de cada vez e podem, assim, ser paralelizados e executados no 
nodo que armazena o registro. 
A tarefa de redução recebe muitos valores de uma única chave de saída, a 
partir da tarefa de mapeamento, e os resume em uma única saída. Cada 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 20 de 41 
redutora trabalha sobre o resultado de uma única chave, de modo que podem 
ser paralelizados por chave. 
MapReduce é complicado de entender no início, por isso vamos tentar 
compreendê-lo com um exemplo simples. Vamos supor que temos um arquivo 
que tem algumas palavras e o arquivo é dividido em blocos, e temos que contar 
o número de ocorrências de uma palavra no arquivo. Iremos passo a passo para 
alcançar o resultado usando a funcionalidade MapReduce. Todo o processo é 
ilustrado no diagrama a seguir: 
 
Redutoras que tenham o mesmo formato de entrada e saída podem ser 
combinadas em pipelines. Isso melhora o paralelismo e reduz a quantidade de 
dados a serem transferidos. Operações de MapReduce podem ser compostas em 
pipelines, nos quais a saída de uma redução é a entrada do mapeamento de 
outra operação. 
Se o resultado de uma computação MapReduce for amplamente utilizado, 
pode ser armazenado como uma visão materializada. Visões materializadas 
podem ser atualizadas por meio de operações MapReduce que apenas computem 
alterações na visão, em vez de computar novamente tudo desde o início. 
5. Hadoop 
Hadoop é um framework de código aberto para armazenamento de dados 
em grande escala e processamento de dados que seja compatível com o 
hardware específico. O framework Hadoop se estabeleceu como uma plataforma 
da indústria de fato para soluções de Big Data contemporâneas. Ele pode ser 
usado como um motor de ETL ou como um mecanismo de análise para o 
processamento de grandes quantidades de dados estruturados, 
semiestruturados e não estruturados. A partir de uma perspectiva de análise, 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 21 de 41 
Hadoop implementa a estrutura de processamento de MapReduce. A figura 
abaixo ilustra algumas das características do Hadoop. 
 
Hadoop é usado amplamente na indústria para processamento de grande 
escala, massivamente paralelo e distribuído. Hadoop é altamente tolerante a 
falhas e configurável para tantos níveis quanto precisarmos. O que tem um 
impacto direto no número de vezes que os dados são armazenados. 
Como já abordado, em sistemas de Big Data, a arquitetura gira em torno 
de dois componentes principais: a computação distribuída e processamento 
paralelo. No Hadoop, a computação distribuída é tratada por meio do HDFS e 
processamento paralelo é tratado pelo MapReduce. Em suma, podemos dizer 
que o Hadoop é uma combinação de HDFS e MapReduce, como mostrado na 
imagem a seguir: 
 
Hadoop tem uma série de vantagens, e algumas delas são: 
Baixo custo - Funciona em hardware simples (commodity): Hadoop pode 
ser executado em hardware simples e não requer um sistema de alto 
desempenho, o que pode ajudar no controle de custos e, mesmo assim, alcançar 
escalabilidade e desempenho. Adicionar ou remover nós do cluster é simples. O 
custo por terabyte é mais baixo para armazenamento e processamento no 
Hadoop. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 22 de 41 
Flexibilidade de armazenamento: Hadoop pode armazenar dados em 
formato plano (raw) em um ambiente distribuído. Hadoop pode processar os 
dados não estruturados e dados semiestruturados melhor que a maioria das 
tecnologias disponíveis. 
Comunidade de código aberto: Hadoop é de código aberto e apoiado 
por muitos contribuintes com uma crescente rede de desenvolvedoresem todo o 
mundo. Muitas organizações, tais como Yahoo, Facebook, Hortonworks, e outros 
têm contribuído imensamente para o progresso do Hadoop e outros subprojetos 
relacionados. 
Tolerante a falhas: Hadoop é altamente escalável e tolerante a falhas. 
Hadoop é confiável em termos de disponibilidade de dados, e até mesmo se 
alguns nós falharem, Hadoop pode recuperar os dados. A arquitetura assume 
que os nós podem falhar e o sistema deve ser capaz de continuar a processar os 
dados. 
Análise de dados complexos: Com o surgimento de Big Data, a ciência 
de dados também tem crescido aos trancos e barrancos, e nós temos de 
algoritmos intensivos complexos e pesados para análise de dados. Hadoop pode 
processar tais algoritmos para um conjunto de dados muito grande. 
Alguns exemplos onde o Hadoop pode ser utilizado são os seguintes: 
pesquisa ou mineração de texto, processamento de registros, sistemas de 
recomendação, inteligência de negócios, análise de vídeo e imagem, 
reconhecimento de padrões, avaliação de risco e análise de sentimentos. 
5.1. O ecossistema do Hadoop 
O ecossistema Hadoop é composto por uma série de subprojetos e 
podemos configurar esses projetos conforme precisamos em um cluster 
Hadoop. Como Hadoop é um software de código aberto, vemos um monte de 
contribuições e melhorias do Hadoop feitas por diferentes organizações. Todos 
os utilitários são absolutamente úteis e ajudam na gestão do sistema de forma 
mais eficiente. Para simplificar, vamos entender as diferentes ferramentas, 
categorizando-as. 
A figura abaixo mostra as camadas e as ferramentas e utilitários dentro 
dessas camadas, no ecossistema Hadoop: 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 23 de 41 
 
Sistema de arquivos - No Hadoop, sabemos que os dados são 
armazenados em um ambiente de computação distribuída, de modo que os 
arquivos estão espalhados por todo o cluster. Devemos ter um sistema de 
arquivos eficiente para gerenciar os arquivos no Hadoop. O sistema de arquivos 
usado em Hadoop é o HDFS, sigla para Hadoop Distributed File System. 
O HDFS é extremamente escalável e tolerante a falhas. Ele é projetado 
para processar de forma eficiente de forma paralela em ambiente distribuído no 
mesmo hardware simples (commodity). HDFS tem processos daemon em 
Hadoop, que gerenciam os dados. Os processos são NameNode, DataNode, 
BackupNode, e Checkpoint NameNode. 
Programação distribuída - Para aproveitar o poder de um sistema de 
arquivos de armazenamento distribuído, Hadoop utiliza programação 
distribuída que pode fazer programação paralela massiva. A programação 
distribuída é o coração de qualquer sistema de Big Data, por isso é 
extremamente crítica. A seguir estão os diferentes frameworks que podem ser 
usados para a programação distribuída: MapReduce, Hive, Pig e Spark. 
A camada de base em Hadoop para a programação distribuída é 
MapReduce. Se você observar a figura os outros frameworks rodam em cima 
do MapReduce. 
Hadoop MapReduce: MapReduce é o coração do sistema Hadoop de 
programação distribuída. MapReduce é projetado como processamento paralelo 
em um ambiente distribuído. Hadoop MapReduce foi inspirado pelo artigo do 
Google MapReduce. Hadoop MapReduce possui uma estrutura de 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 24 de 41 
processamento escalável e massivamente paralela, que pode trabalhar com Big 
Data e é projetado para ser executado em um cluster de hardware commodity. 
Antes do Hadoop 2.x, MapReduce era a única estrutura de 
processamento que podia ser usada para a execução. Nas verões mais 
recentes, esse utilitário foi ampliado e se criou um wrapper para uma 
programação mais fácil que torna o desenvolvimento mais rápido. 
Apache Hive: Hive fornece uma infraestrutura de sistemas de data 
warehouse para Hadoop, ele cria uma interface de wrapper SQL chamada 
HiveQL, em cima do MapReduce. Hive pode ser usado para executar algumas 
consultas ad hoc, agregações básicas e processamento de sumarizações com 
os dados do Hadoop. HiveQL não é compatível com SQL92. Hive foi 
desenvolvido pelo Facebook e foi doado para o Apache. Hive é projetado em 
cima do MapReduce, o que significa uma consulta HiveQL vai executar os 
trabalhos usando MapReduce para o processamento da consulta. Podemos até 
mesmo estender HiveQL usando User Defined Functions (UDF). 
Apache Pig: Pig fornece um invólucro baseado em script escrito na 
linguagem Pig Latin para processar os dados com uma sintaxe script-like. Pig 
foi desenvolvido pelo Yahoo e foi doado para o Apache. Pig, também traduz o 
código de script Pig Latin para MapReduce e executa o trabalho. Pig é 
normalmente utilizado para analisar conjuntos de dados semiestruturados e 
grandes. 
Apache Spark: Oferece uma alternativa poderosa para o MapReduce do 
Hadoop. Apache Spark é um framework de processamento de dados paralelo 
que pode executar programas em até 100 vezes mais rápido do que o Hadoop 
MapReduce na memória, ou 10 vezes mais rápido no disco. Spark é utilizado 
para o processamento de fluxo em tempo real e análise dos dados. 
Bancos de dados NoSQL - Nós já discutimos sobre NoSQL como um 
dos sistemas emergentes e amplamente adotados. Dentro ecossistema do 
Hadoop, temos um banco de dados NoSQL chamado HBase. HBase é um dos 
componentes chave que fornece um design flexível e alto volume de operações 
de leitura e escritas simultâneas com baixa latência, portanto, é amplamente 
adotado. 
HBase é inspirado no BigTable do Google. HBase é um mapa ordenado, 
que é esparso, consistente, distribuído e multidimensional. HBase é um banco 
de dados NoSQL, orientado coluna e chave-valor, que funciona no topo do 
HDFS. HBase fornece um lookup mais rápido e também um alto volume de 
inserções e atualizações de acesso aleatório em uma escala elevada. O 
esquema HBase é muito flexível e realmente variável, onde as colunas podem 
ser adicionadas ou removidas em tempo de execução. HBase suporta baixa 
latência e operações de gravação e leitura fortemente consistentes. É 
apropriado para agregação de alta velocidade. Muitas organizações ou 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 25 de 41 
empresas usam HBase, tais como Yahoo, Adobe, Facebook, Twitter, 
StumbleUpon, NGData, Infolinks, Trend Micro, e muitos mais. 
Ingestão de dados – o gerenciamento de dados em big data é um 
aspecto importante e crítico. Temos de importar e exportar dados em grande 
escala para fazer o processamento, o que pode se tornar incontrolável no 
ambiente de produção. No Hadoop, lidamos com um conjunto diferente de 
fontes, tais como batch, streaming, dados em tempo real, e também fontes de 
dados que são complexos do ponto de vista de formatos, alguns são 
semiestruturadas e não estruturadas. A gestão de tais dados é muito difícil, por 
isso temos algumas ferramentas para gerenciamento de dados, como Flume, 
Sqoop, e Storm, que são mencionados como segue: 
Apache Flume: Apache Flume é uma ferramenta amplamente utilizada 
para coleta eficiente, agregação e movimentação de grandes quantidades de 
dados de muitas fontes diferentes para um armazenamento de dados 
centralizado. Flume é um sistema distribuído, confiável e disponível. Ele 
executa bem se uma fonte está fornecendo streaming, por exemplo, arquivos 
de log. 
Apache Sqoop: Sqoop pode ser usado para gerenciar dados entre 
sistemas NoSQL Hadoop e bancos de dados relacionais ou data warehouses 
corporativos. Sqoop tem diferentes conectores com os respectivos dados 
armazenados e utilizando esses conectores, Sqoop pode importar e exportar 
dados em MapReduce,e ainda importar e exportar dados no modo paralelo. 
Sqoop também é tolerante a falhas. 
Apache Storm: Apache Storm fornece uma solução em tempo real, 
escalável e distribuída para streaming de dados. Storm permite atividades 
orientadas a dados e automatizadas. Pode ser utilizado com qualquer 
linguagem de programação e garante que os fluxos de dados são processados 
sem perda de dados. Storm possui tipagem de dados agnóstica, ou seja, ele 
processa fluxos de dados de qualquer tipo. 
Programação de serviços - Programação em um ambiente distribuído 
é complexa e cuidados tem que ser tomados, caso contrário, ela pode se tornar 
ineficiente. Para desenvolver aplicativos adequadamente distribuídos em 
Hadoop, temos algumas ferramentas de programação de serviços que 
fornecem utilitários que cuidam do aspecto da gestão de distribuição e de 
recursos. As ferramentas que iremos discutir são as seguintes: Apache YARN e 
Apache Zookeeper. 
Apache YARN - Yet another Resource Negotiator (YARN) tem sido uma 
revolução na versão principal do Hadoop versão 2.x. YARN oferece 
gerenciamento de recursos e deve ser utilizado como uma plataforma comum 
para a integração e gerenciamento de diferentes ferramentas e utilitários em 
um cluster Hadoop. YARN é um gerenciador de recursos que foi criado 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 26 de 41 
separando as capacidades do motor de processamento e gestão de recursos do 
MapReduce. Ele também fornece a plataforma para outros fins, tais como, 
Storm, Spark, e assim por diante. 
YARN melhorou suas capacidades, agora ele também pode ser ajustado 
para streaming e análise em tempo real, o que é um benefício enorme e uma 
necessidade em alguns cenários. YARN também é compatível com vários 
aplicativos MapReduce existentes. Alguns aplicativos alimentados por YARN são 
os seguintes: Apache Hadoop MapReduce, Apache Spark, Apache Strom, 
Apache Tez e Apache S4 
Apache Zookeeper - ZooKeeper é um distribuído, de código aberto e 
usado para a coordenação de serviços para aplicações distribuídas. ZooKeeper 
expõe um conjunto simples de primitivas que aplicações distribuídas podem 
usar para sincronização, configuração, manutenção, agrupamento e nomeação 
de recursos para a realização da coordenação, alta disponibilidade e 
sincronização. ZooKeeper é executado em Java e tem ligações (bindings) para 
Java e C. HBase, Solr, Kata, Neo4j, e assim por diante, são algumas 
ferramentas que utilizam Zookeeper para coordenar as atividades. 
Agendamento - O sistema Hadoop pode ter vários jobs e estes têm de 
ser agendados muitas vezes. O agendamento de trabalhos do Hadoop é 
complexo e difícil de estruturar, gerenciar e monitorar. Podemos usar um 
sistema como Oozie para coordenar e monitorar os trabalhos do Hadoop de 
forma eficiente. 
Apache Oozie: Oozie é um sistema de processamento de fluxo de 
trabalho e coordenação de serviços que permite que os usuários gerenciem 
múltiplas tarefas, como uma cadeia de trabalhos escritos em MapReduce, Pig, e 
Hive, também programas Java e scripts shell, e permite ligá-los uns aos outros. 
Oozie é um serviço extensível, escalável e com reconhecimento de dados. 
Oozie pode ser usado para definir regras, começando e terminando um fluxo de 
trabalho e também pode detectar a conclusão de tarefas. 
Análise de dados e aprendizagem de máquina - Em Hadoop, a 
análise dos dados é uma área de interesse chave. Hadoop é uma poderosa 
ferramenta para processar programas complexos e algoritmos que visam 
melhorar o processo de negócios. A análise de dados pode identificar insights e 
ajudar a otimizar o processo em relação aos competidores. Devido à natureza 
de processamento poderosa do Hadoop, o aprendizado de máquina tem estado 
em foco e vários algoritmos e técnicas têm sido adaptados para Hadoop. As 
técnicas de aprendizado de máquina também são usadas em análises 
preditivas. A análise de dados e a aprendizagem de máquina são necessárias 
para organizações ficarem à frente na competição. Para alguns pesquisadores, 
especialmente em ciências da vida, usam-se esses algoritmos para processar 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 27 de 41 
genes e padrões de registros médicos com o objetivo de gerar insights e 
detalhes importantes e úteis que são muito necessários na área médica. 
Isso também é necessário para pesquisadores no campo da robótica 
para fornecer inteligência a máquinas para a execução e otimização de uma 
tarefa. RHadoop é uma linguagem estatística de análise de dados integrada 
com o Hadoop. Mahout é uma API de aprendizagem de máquina de código 
aberto usada pelo Hadoop. 
Apache Mahout: Mahout é uma API escalável de aprendizagem de 
máquina, que tem uma variedade de bibliotecas de aprendizado de máquina 
implementada. Mahout é um projeto isolado que pode ser utilizado como uma 
biblioteca de aprendizagem de máquina pura, mas o poder do Mahout aumenta 
quando ele é integrado com o Hadoop. Alguns dos algoritmos que são 
popularmente utilizados no Mahout são: Recomendação, Clustering e 
Classificação. 
Administração de sistema - Implantar, provisionar, gerenciar e 
monitorar um cluster Hadoop requer conhecimento de script e normalmente 
leva uma boa quantidade de tempo e esforço manual, mas é repetitivo. Para a 
realização de tais atividades em Hadoop, podemos usar ferramentas como 
Ambari. 
Apache Ambari - Ambari pode ser usado por desenvolvedores de 
aplicativos e integradores de sistemas para gerenciar a maioria das atividades 
de administração de um cluster Hadoop. Ambari é um framework open source 
do ecossistema Hadoop, que pode ser usado para a instalação, 
provisionamento, implantação, gerenciamento e monitoramento de um cluster 
Hadoop. Seus principais objetivos são esconder a complexidade do 
gerenciamento de um cluster Hadoop e fornecer uma interface web fácil e 
intuitiva. Uma característica fundamental do Ambari é que ele fornece APIs 
RESTful, que podem ser usadas para integração com outras ferramentas 
externas para uma melhor gestão. 
Finalmente terminamos nossos comentários sobre algumas dos possíveis 
frameworks e tecnologias relacionadas ao Hadoop. A figura que apresentamos 
no início mostra a integração entre esses componentes de forma gráfica. 
Esperamos que você tenha gostado. 
A seguir apresentaremos nossa tradicional lista de questões comentadas! 
Elas fazem parte da aula e devem ajudar você na fixação do conteúdo. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 28 de 41 
Questões comentadas 
 Chegamos a nossa tradicional lista de questões comentadas. 
 
1. Ano: 2015 Banca: CESPE Órgão: TJDFT Cargo: Suporte em 
Tecnologia da Informação – Questões 92 e 93 
A respeito de tipos de bancos de dados, julgue os itens que se seguem. 
92 A capacidade de estender tipos de dados básicos é uma das características 
dos bancos de dados objeto relacional. 
93 Sistemas de bancos de dados classificados como NoSQL permitem a inserção 
de dados sem que haja um esquema predefinido. 
Comentários: Essa questão trata na alternativa 92 de banco de dados 
relacionais. A ideia descrita na alternativa trata dos itens conhecidos como user 
defined type – UDT. Eles aparecem dentro do padrão SQL e permitem que novos 
tipos possam ser estendidos dos tipos básicos. 
A alternativa 93, por sua vez, refere-se ao assunto presente nesta aula. Vejam 
que a existência de esquema bem definido não é uma obrigatoriedade dentro do 
contexto de bancos de dados NoSQL. Essa propriedade é conhecida como 
schema free ou livre de esquema. 
Pelo exposto acima, as duas alternativasestão corretas. 
Gabarito: C C 
 
2. Ano: 2016 Banca: FGV Órgão: IBGE Cargo: WEB MOBILE Questão: 41 
Considere as seguintes características de um projeto de banco de dados. 
I. O modelo de dados é conhecido a priori e é estável; 
II. A integridade dos dados deve ser rigorosamente mantida; 
III. Velocidade e escalabilidade são preponderantes. 
Dessas características, o emprego de bancos de dados NoSQL é favorecido 
somente por: 
(A) I; 
(B) I e II; 
(C) II; 
(D) II e III; 
(E) III. 
Comentário: Veja que a questão trata das propriedades ou características de 
um projeto de banco de dados NoSQL. Sabemos que bancos de dados deste tipo 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 29 de 41 
substituem a sigla ACID (atomicidade, consistência, isolamento e durabilidade) 
que está relacionado com transações pela sigla BASE que está relacionada com 
os conceitos de BA – (Basically Available) disponibilidade é prioridade, S – (Soft-
State) – Não precisa ser consistente o tempo todo e E – (Eventually Consistent) 
– Consistente em momento indeterminado. Outro ponto importante é a relação 
de NoSQL com o modelo de dados, geralmente o banco é considerado schema 
free, ou seja, livre de esquema ou de um modelo pré-determinado a priori. 
Partindo desta exposição básica sobre NoSQL podemos analisar as alternativas I, 
II e III. Vejam que as duas primeiras são definições associadas a banco de 
dados relacionais ou transacionais. A alternativa III trata de outro aspecto que 
não vimos ainda, mas que também está relacionada ao conceito de NoSQL e Big 
Data. NoSQL é uma tecnologia que trouxe o foco de banco de dados para 
performance e escalabilidade. A pergunta é como analisar uma grande 
quantidade de dados. 
Gabarito: E 
 
 
3. Ano: 2016 Banca: ESAF Órgão: ANAC Cargo: Analista de TI - 
QUESTÃO 62 
Big Data é: 
a) volume + variedade + agilidade + efetividade, tudo agregando + valor + 
atualidade. 
b) volume + oportunidade + segurança + veracidade, tudo agregando + valor. 
c) dimensão + variedade + otimização + veracidade, tudo agregando + 
agilidade. 
d) volume + variedade + velocidade + veracidade, tudo agregando + valor. 
e) volume + disponibilidade + velocidade + portabilidade, tudo requerendo - 
valor. 
Comentário: Embora o termo "big data" seja relativamente novo, o ato de 
recolher e armazenar grandes quantidades de informações para eventual análise 
de dados é bem antigo. O conceito ganhou força no início dos anos 2000, 
quando um analista famoso deste setor, Doug Laney, articulou a definição de big 
data como os três Vs: 
Volume. Organizações coletam dados de uma grande variedade de fontes, 
incluindo transações comerciais, redes sociais e informações de sensores ou 
dados transmitidos de máquina a máquina. No passado, armazenar tamanha 
quantidade de informações teria sido um problema – mas novas tecnologias 
(como o Hadoop) têm aliviado a carga. 
Velocidade. Os dados fluem em uma velocidade sem precedentes e devem ser 
tratados em tempo hábil. Tags de RFID, sensores, celulares e contadores 
inteligentes estão impulsionado a necessidade de lidar com imensas quantidades 
de dados em tempo real, ou quase real. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 30 de 41 
Variedade. Os dados são gerados em todos os tipos de formatos - de dados 
estruturados, dados numéricos em bancos de dados tradicionais, até 
documentos de texto não estruturados, e-mail, vídeo, áudio, dados de cotações 
da bolsa e transações financeiras. 
Outros Vs foram adicionados ao longo dos anos: 
Veracidade. O quarto V do conceito está ligado à veracidade do conteúdo. Nem 
todos os dados gerados possuem consistência dentro do contexto. É preciso 
destacar o que é rico e correto em conteúdo no meio de tanta informação. Ao 
garantir essa separação, que é possível fazer a partir do Big Data, o que sobra 
são conhecimentos importantes para compreender melhor a entidade analisada 
ou o negócio em questão. 
Valor. Para garantir que o trabalho dos outros Vs traga retorno, é preciso gerar 
valor para os resultados que retornam do Big Data. Assim, aparece o último V do 
conceito. 
Juntando todos os conceitos acima, chegamos a nossa resposta na alternativa D. 
Gabarito: D 
 
 
4. Ano: 2016 Banca: ESAF Órgão: ANAC Cargo: Analista de TI - 
QUESTÃO 70 
Para o processamento de grandes massas de dados, no contexto de Big Data, é 
muito utilizada uma plataforma de software em Java, de computação distribuída, 
voltada para clusters, inspirada no MapReduce e no GoogleFS. Esta plataforma é 
o(a) 
a) Yam Common. 
b) GoogleCrush. 
c) EMRx. 
d) Hadoop. 
e) MapFix 
Comentário: Questão inspirada na WIKIPEDIA: 
Hadoop é uma plataforma de software em Java de computação distribuída 
voltada para clusters e processamento de grandes massas de dados. Foi 
inspirada no MapReduce e no GoogleFS (GFS). Trata-se de um projeto da 
Apache de alto nível, que vem sendo construído por uma comunidade de 
colaboradores utilizando em sua maior parte a linguagem de programação Java, 
com algum código nativo em C e alguns utilitários de linha de comando escrito 
utilizando scripts shell. Assim podemos marcar nossa resposta na alternativa D. 
Gabarito: D 
 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 31 de 41 
 
5. ANO: 2015 BANCA: FCC ÓRGÃO: TRE-RR PROVA: ANALISTA 
JUDICIÁRIO - ANÁLISE DE SISTEMAS 
Os dados de sistemas OLAP se baseiam nas informações contidas nos diversos 
softwares utilizados pela empresa (ERPs, planilhas, arquivos texto, arquivos XML 
etc.). Estes sistemas possuem uma camada onde estão os dados originais e 
outra camada onde estão os dados tratados (um gigantesco repositório de dados 
sobre assuntos diversos preparados para serem consultados por um sistema 
OLAP), que chamamos de 
A Data Mining. 
B Online Transactional Database. 
C Data Mart. 
D Datawarehouse. 
E Big Data. 
Comentário: Essa questão aparece aqui apenas para verificar se você ainda 
lembra-se do conceito de Data Warehouse. 
Gabarito: D 
 
6. ANO: 2015 BANCA: FGV ÓRGÃO: TJ-SC PROVA: ANALISTA 
JUDICIÁRIO - ANALISTA DE SISTEMAS 
Os termos Business Intelligence (BI) e Big Data confundem-se em certos 
aspectos. Uma conhecida abordagem para identificação dos pontos críticos de 
cada paradigma é conhecida como 3V, e destaca: 
A variedade, visualização, volume; 
B velocidade, virtualização, volume; 
C variedade, velocidade, volume; 
D virtualização, visualização, volume; 
E variedade, visualização, virtualização. 
Comentário: Questão interessante! Trata dos 3 Vs que definem o primeiro 
conceito de Big Data. Sabemos que se trata da Variedade, Velocidade e Volume. 
O primeiro faz referência aos diferentes tipos de dados ou informações que deve 
ser processados. O segundo se preocupa com o tempo para o processamento e 
armazenamento de forma consistente e acessível das informações geradas. Por 
fim, o volume consiste na percepção de que a quantidade dados aumenta a cada 
dia em grandes proporções. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 32 de 41 
Gabarito: C 
 
7. ANO: 2015 BANCA: FCC ÓRGÃO: TRT - 3ª REGIÃO (MG) PROVA: 
TÉCNICO JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO 
Um técnico de TI precisa utilizar um subconjunto de dados de um Data 
Warehouse direcionado à área administrativa de um Tribunal. Esses dados serão 
armazenados em um banco de dado modelado multidimensionalmente, que será 
criado capturando-se dados diretamentede sistemas transacionais, buscando as 
informações relevantes para os processos de negócio da área administrativa. 
Esse banco de dados será um 
A Big Data. 
B Data Mart. 
C OLAP. 
D MOLAP. 
E Data Mining. 
Comentário: Mais uma questão para que você possa relembrar de um conceito 
visto anteriormente, em outra aula. Desta vez trata-se do conceito de Data Mart. 
Gabarito: B 
 
8. ANO: 2014 BANCA: CESPE ÓRGÃO: TJ-SE PROVA: ANALISTA 
JUDICIÁRIO - BANCO DE DADOS 
Julgue os itens que se seguem, no que se refere a Big Data. 
[1] 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 contexto de 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 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 33 de 41 
 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 
Gabarito: E 
 
9. ANO: 2014 BANCA: CESPE ÓRGÃO: TJ-SE PROVA: ANALISTA 
JUDICIÁRIO - BANCO DE DADOS 
Julgue os itens que se seguem, no que se refere a Big Data. 
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: As soluções de big data são, em sua maioria, dominadas por 
sistemas Hadoop e tecnologias baseadas em MapReduce, que são soluções 
simples de instalar para processamento e armazenamento distribuídos. No 
entanto, 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 (por exemplo, JSON) 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. 
Gabarito: C 
 
10. ANO: 2014 BANCA: CESPE ÓRGÃO: TJ-SE PROVA: ANALISTA 
JUDICIÁRIO - BANCO DE DADOS 
Julgue os itens que se seguem, no que se refere a Big Data. 
[1] 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. 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 34 de 41 
Comentário: Muito embora haja uma abstração quanto ao local do 
processamento, afinal, se contrata um serviço e pouco importa como e onde ele 
será prestado, essa escolha tem consequências. 
Muitos provedores de serviço na nuvem, como a Amazon, possuem tarifas 
diferenciadas com relação à localização de cada servidor. Cada país tem seus 
custos e suas especificidades. 
Além disso, quanto mais longe o servidor estiver do interessado, maior será o 
tempo de espera entre a requisição e a resposta. 
Gabarito: E 
 
11. ANO: 2015 BANCA: FGV ÓRGÃO: TJ-BA PROVA: TÉCNICO DO 
JUDICIÁRIO - TECNOLOGIA DA INFORMAÇÃO 
Analise as afirmativas a respeito da classe de gerenciadores de bancos de dados, 
surgida em anos recentes, conhecida como NoSQL. 
I. Mesmo sem suportar tabelas relacionais, baseiam-se em esquemas de dados 
previamente definidos; 
II. Suas estruturas não permitem o uso de linguagens do tipo do SQL para 
recuperação de dados; 
III. Garantem operações com as propriedades conhecidas pela sigla ACID; 
IV. Privilegiam a rapidez de acesso e a disponibilidade dos dados em detrimento 
das regras de consistência das transações. 
O número de afirmativas corretas é: 
A uma; 
B duas; 
C três; 
D quatro; 
E cinco. 
Comentário: Se voltarmos a parte da nossa aula teórica que trata de NoSQL 
veremos que a única alternativa correta é a presente na assertiva IV. 
Gabarito: A 
 
12. ANO: 2015 BANCA: CESPE ÓRGÃO: TCU PROVA: AUDITOR FEDERAL 
DE CONTROLE EXTERNO - TECNOLOGIA DA INFORMAÇÃO 
16712855225
Big Data e NoSQL 
Prof. Thiago Rodrigues Cavalcanti ʹ Aula xx 
Prof. Thiago Rodrigues Cavalcanti 
 www.estrategiaconcursos.com.br 35 de 41 
Julgue os itens subsecutivos, a respeito de sistemas de bancos de dados. 
Como forma de permitir as buscas em documentos semiestruturados, um banco 
de dados NoSQL do tipo orientado a documentos armazena objetos indexados 
por chaves utilizando tabelas de hash distribuída. 
Comentário: Quando tratamos de bases de dados NoSQL podemos classifica-las 
em quatro diferentes tipos, são eles: 
Chave/valor (Key/Value): conhecidos como tabelas de hash distribuídas. 
 Armazenam objetos indexados por chaves, e facilita a busca por esses objetos a 
partir de suas chaves. 
Orientados a Documentos: os documentos dos bancos são coleções de 
atributos e valores onde um atributo pode ser multivalorado. Em geral, os 
bancos de dados orientados a documento não possuem esquema, ou seja, os 
documentos armazenados não precisam possuir estrutura em comum. Essa 
característica faz deles boas opções para o armazenamento de dados 
semiestruturados. 
Colunar: Bancos relacionais normalmente guardam os registros das tabelas 
contiguamente no disco. Por exemplo, caso se queira guardar id, nome e 
endereço de usuários em um banco de dados relacional, os registros seriam: 
Id1, Nome1, Endereço1; 
Id2, Nome2, Endereço2. 
Essa estrutura torna a escrita muito rápida, pois todos os dados de um registro 
são colocados no disco com uma única escrita no banco. Também é eficiente 
caso se queira ler registros inteiros. Mas para situações onde se quer ler 
algumas poucas colunas de muitos registros, essa estrutura é pouco eficiente, 
pois muitos blocos do disco terão de ser lidos. 
Para esses casos onde se quer otimizar a leitura de dados estruturados, bancos 
de dados de famílias de colunas são mais interessantes, pois eles guardam os 
dados contiguamente por coluna. 
O exemplo anterior em um banco de dados dessa categoria ficaria: 
 Id1, Id2; Nome1, Nome2; Endereço1, Endereço2. 
Os bancos de dados de famílias de colunas são mais interessantes para 
processamento analítico online (OLAP). Bigtable é uma implementação da 
Google dessa categoria de bancos de dados. 
Orientado a Grafos: diferente de outros bancos de dados NoSQL, esse está 
diretamente relacionado a um modelo de dados estabelecido, o modelo de 
grafos. A ideia desse modelo é representar

Mais conteúdos dessa disciplina