BD Bigdata Nosql
BD Bigdata Nosql
INICIAR
1 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
introdução
Introdução
Se você desenvolveu aplicativos para web nos últimos anos, provavelmente, já
utilizou um banco de dados relacional como armazenamento de dados
primários. Se você está familiarizado com Structured Query Language (SQL),
pode apreciar a utilidade de um modelo de dados bem normalizado, a
necessidade de transações e as garantias fornecidas por um mecanismo de
armazenamento durável. Simpli�cando, o banco de dados relacional é
maduro e bem conhecido. Quando os desenvolvedores começam a defender
alternativas para armazenamento de dados, questões sobre a viabilidade e a
utilidade dessas novas tecnologias começam a surgir. Esses novos tipos de
armazenamento são substituições de sistemas de banco de dados relacionais?
Quem os está utilizando na produção, e por quê? Quais compensações estão
envolvidas na mudança para um banco de dados não relacional? As respostas
a essas perguntas dependem da resposta a esta: por que os desenvolvedores
estão interessados nos bancos de dados não relacionais? Um banco de dados
não relacional é um sistema de gerenciamento de banco de dados projetado
para desenvolver, rapidamente, aplicativos da web e infraestrutura de
internet.
2 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Bancos de Dados
não Relacionais e
sua Utilização em
Aplicações de Big
Data
A história dos bancos de dados não relacionais é breve, mas vale a pena ser
contada, principalmente do ponto de vista do seu mais ilustre representante:
o MongoDB, pois ele nasceu de um projeto mais ambicioso (BANKER et al .,
2016).
3 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Desde então, a 10gen mudou seu nome para MongoDB, Inc. e continua a
patrocinar o desenvolvimento do banco de dados como um projeto de código
aberto. O código está disponível publicamente e é livre para ser modi�cado e
usado (sujeito aos termos de sua licença), e a comunidade em geral é
encorajada a arquivar relatórios de bugs e enviar correções. Ainda assim, a
maior parte do núcleo do MongoDB foi feita pelos desenvolvedores, que são
fundadores ou funcionários da empresa, e o código do projeto continua a ser
determinado pelas necessidades de sua comunidade de usuários e pelo
objetivo abrangente de criar um banco de dados que combina os melhores
recursos dos bancos de dados relacionais e os armazenamentos dos pares
distribuídos. Assim, o modelo de negócios da MongoDB, Inc. não é contrário
ao de outras empresas de código aberto bem conhecidas: apoiar o
desenvolvimento de um produto de código aberto e fornecer serviços de
assinatura para usuários �nais (BANKER et al., 2016).
A ciência de dados e o big data são usados em quase todos os lugares, tanto
4 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
5 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
6 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Análises de pessoas
e mineração de
texto para selecionar
Big data e candidatos,
Recursos
aprendizado monitorar o humor Linkedin
humanos
de máquina de funcionários e
estudar redes
informais entre
colegas de trabalho.
Obter informações
Organizações Big data e dos cidadãos e suas
Data.gov
governamentais sensores interações com
câmeras etc.
Usam para
Organizações
arrecadar dinheiro e
não Big data WWF
defender suas
governamentais
causas.
Usam ciência de
dados em suas
Big data e pesquisas e também Coursera,
Universidades bancos não para aprimorar a Udacity e
relacionais experiência de edX
estudo de seus
7 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
alunos.
Quadro 1.1 - Resumo das aplicações de big data e bancos não relacionais
Fonte: Elaborado pelo autor.
Conhecimento
Teste seus Conhecimentos
(Atividade não pontuada)
Big data é um termo genérico para qualquer coleção de conjuntos de dados tão
grandes ou complexos que se torna difícil processá-los usando técnicas tradicionais
de gerenciamento de dados. Algumas das dimensões que não podem ser facilmente
processadas envolvem velocidade, volume e volatilidade.
CIELEN, D.; MEYSMAN, A. D. B.; ALI, A. Introducing data science . Big data, machine
learning, and more, using Python tools. New York: Manning Publications Co., 2016.
8 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
a) MongoDB.
b) Bancos de dados NoSQL.
c) Apache Hadoop.
d) RDBMS.
e) MOOC.
9 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Casos de Uso
Visando Direcionar
os Cenários de
Utilização dos
Bancos de Dados
não Relacionais
10 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
_id: 10,
username: 'everton',
email: 'evertongomede@gmail.com'
_id: 10,
username: everton,
email: [
'evertongomede@gmail.com',
'gomede@gmail.com'
11 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Por exemplo, suponha que você esteja modelando produtos para um site de
comércio eletrônico. Com um modelo de dados relacional totalmente
normalizado, as informações de qualquer produto podem ser divididas em
dezenas de tabelas. Se você deseja obter uma representação de produto do
banco de dados, você precisará escrever uma consulta SQL cheia de junções.
12 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
_id: ObjectID('5bd9e8e1acefdaa2212108aa961b'),
title: 'MongoDB',
url: 'http://mongodb.com/',
13 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
author: 'everton',
vote_count: 20,
(2) image: {
url: 'http://mongodb/db.jpg',
type: 'jpg',
size: 85181,
data: 'Binary'
},
(3) comments: [
user: 'everton',
text: 'Artigo'
},
user: 'everton',
text: 'Artigo'
14 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
15 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
16 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Conhecimento
Teste seus Conhecimentos
(Atividade não pontuada)
17 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
18 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Princípios de
Design
Comparando-os
com os Bancos de
Dados Relacionais
19 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
20 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
O que você viu foi uma parte de um modelo de dados para uma estrutura de
21 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Consultas ad hoc
Dizer que um sistema suporta consultas ad hoc é dizer que não é necessário
de�nir, de forma antecipada, quais tipos de consultas o sistema aceitará.
Bancos de dados relacionais têm essa propriedade; eles executarão �elmente
qualquer consulta SQL bem formada, com qualquer número de condições.
Consultas ad hoc são fáceis de utilizar se os únicos bancos de dados que você
já tem usado são relacionais. Mas nem todos os bancos de dados oferecem
suporte a consultas dinâmicas. Por exemplo, armazenamentos de valores-
chave podem ser consultados em apenas um eixo: a chave do valor. Como
muitos outros sistemas, armazenamentos de valores-chave sacri�cam o rico
poder de consulta em troca de um simples modelo de escalabilidade. Um dos
objetivos de design do MongoDB é preservar a maior parte da consulta; poder
este que é tão fundamental para o mundo do banco de dados relacional. Para
ver como a linguagem de consulta do MongoDB funciona, vamos apresentar
um exemplo simples envolvendo postagens e comentários. Suponha que você
queira encontrar todas as postagens marcadas com o termo “política” tendo
mais de 10 votos. Uma consulta SQL seria assim:
22 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Índices
Um elemento crítico das consultas ad hoc é que elas procuram valores que
você ainda não conhece quando cria o banco de dados. Conforme você
adiciona mais e mais documentos ao seu banco de dados, a busca por um
valor se torna cada vez mais cara; é uma agulha em um palheiro, em
constante expansão. Portanto, você precisa de uma maneira e�ciente de
pesquisar seus dados. A solução para isso é um índice.
23 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
saiba
mais
Saiba mais
Indexação é um assunto relevante para
qualquer tipo de tecnologia que recupere
informações. Nesse caso, vale a pena saber
mais sobre tais recursos e como utilizá-los
para melhorar a velocidade de recuperação
de dados. Uma das melhores referências
para o MongoDB é sua documentação o�cial.
Saiba mais, ao acessar o link a seguir.
ACESSAR
A maioria dos bancos de dados dá, a cada documento ou linha, uma chave
primária, um identi�cador único para esse dado. A chave primária é
geralmente indexada automaticamente, para que cada dado possa ser
acessado de forma e�ciente, usando sua chave exclusiva, e o MongoDB não é
diferente. Mas cada banco de dados permite que você também indexe os
dados dentro dessa linha ou desse documento. Tais índices são chamados de
24 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
praticar
Vamos Praticar
Vimos que a construção de junções e a complexidade de um código para
recuperação de informações pode reduzir, drasticamente, ao se utilizar um banco
de dados não relacional. Isso pode ser de grande importância no dia a dia e facilitar
o desenvolvimento de aplicações para big data . A partir do que foi apresentado,
elabore um código de programação para recuperar a seguinte informação,
baseando-se no modelo não relacional:
25 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
26 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Pontos Adicionais
do Modelo não
Relacional
Uma visão inicial dos bancos de dados NoSQL, em especial, o MongoDB, pode
ser resumida, de maneira a destacar os elementos fundamentais desse tipo
de tecnologia. O infográ�co a seguir apresenta tais informações.
NoSQL
27 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Big data
Conjunto de ferramentas, princípios
e técnicas utilizadas para gerenciar
um volume de dados muito grande.
28 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Replicação
O MongoDB fornece replicação de banco de dados por meio de uma topologia
conhecida como conjunto de réplicas. Conjuntos de réplicas distribuem dados
em duas ou mais máquinas, para redundância e para automatizar failover , em
caso de falhas no servidor e na rede. Além disso, a replicação é usada para
dimensionar leituras de banco de dados. Se você tiver um aplicativo de leitura
intensiva, como costuma ser o caso da web, é possível espalhar leituras de
bancos de dados entre máquinas no cluster (BANKER et al., 2016).
29 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Conjuntos de Réplicas
Os conjuntos de réplicas consistem em muitos servidores MongoDB,
geralmente, com cada servidor em uma máquina física separada; vamos
chamá-los de nós. A qualquer momento, um nó serve como o nó primário do
conjunto de réplicas, e um ou mais nós servem como secundários. Assim
como a replicação primary/secondary (primária/secundária), com a qual você já
deve estar familiarizado em outros bancos de dados, o nó primário de um
conjunto de réplicas pode aceitar ambos, leitura e escrita, mas os nós
secundários são somente para leitura. O que torna os conjuntos de réplicas
únicos é seu suporte para failover automatizado: se o nó primário falhar, o
cluster irá escolher um nó secundário e, automaticamente, promovê-lo ao
primário. Quando o antigo primário voltar on-line , fará isso como um
secundário. Uma ilustração desse processo é apresentada na Figura 1.3.
30 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Velocidade e Durabilidade
Para entender a abordagem do MongoDB para durabilidade, deve-se,
primeiramente, considerar algumas ideias. Nos sistemas de bancos de dados,
existe uma relação inversa entre velocidade de gravação e durabilidade.
31 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
A maioria dos bancos de dados permite durabilidade por padrão, então, você
estará seguro se isso acontecer. Para algumas aplicações, como o
armazenamento de linhas de registro, pode fazer mais sentido ter gravações
mais rápidas, mesmo se houver risco de perda de dados. O problema é que
gravar em um disco rígido magnético é muitas vezes mais lento do que gravar
em RAM. Certos bancos de dados, como o Memcached, gravam
exclusivamente na RAM, o que os torna extremamente rápidos, mas
completamente voláteis. Por outro lado, poucos bancos de dados gravam
exclusivamente para o disco, porque o baixo desempenho de tal operação é
inaceitável. Portanto, os designers de banco de dados, muitas vezes, precisam
fazer concessões para fornecer o melhor equilíbrio entre velocidade e
durabilidade.
reflita
Re�ita
O mundo da tecnologia atual exige
uma velocidade de resposta muito
signi�cativa. Por exemplo, imagine que
você esteja assistindo a um vídeo e
lendo os comentários enquanto isso.
Caso esses comentários sejam
carregados de forma lenta, sua
experiência será ruim. Os bancos
NoSQL tentam resolver essa questão
privilegiando muito mais as leituras do
que as escritas, para que a experiência
32 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
Dimensionamento
A maneira mais fácil de dimensionar a maioria dos bancos de dados é
atualizar o hardware. Se seu aplicativo está sendo executado em um único nó,
geralmente, é possível adicionar alguma combinação de discos, mais memória
e uma CPU mais robusta, para aliviar quaisquer gargalos de banco de dados. A
técnica de aumentar o hardware de um único nó para escala é conhecida
como escala vertical ou scaling up (BANKER et al ., 2016).
A escala vertical tem como vantagens ser simples, con�ável e econômica, até
certo ponto, mas, eventualmente, você chega a um ponto em que não é mais
viável mudar para uma máquina melhor. Então, faz sentido considerar o
dimensionamento horizontal ou horizontal (consulte a Figura 1.4). Em vez de
aumentar um único nó, escalar horizontalmente signi�ca distribuir o banco de
dados em várias máquinas. Uma arquitetura em escala horizontal pode ser
executada em muitas máquinas menores e mais baratas, geralmente,
reduzindo seus custos de hospedagem. Além disso, a distribuição de dados
33 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
34 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
praticar
Vamos Praticar
Escalonamento ou dimensionamento é uma tarefa comum em ambientes de big
data. Para isso, há duas possibilidades para realizar tal operação. Nesse caso, o
escalonamento vertical exige um aumento de hardware, em termos de capacidade.
Por outro lado, o escalonamento horizontal pode ser feito com hardwares
heterogêneos e de menor capacidade.
35 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
36 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
indicações
Material
Complementar
FILME
Moneyball
Ano : 2011
TRAILER
37 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
LIVRO
Big Data
Editora : Elsevier
38 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
conclusão
Conclusão
Vimos como a demanda por dados tem crescido e como eles estão disponíveis
diariamente, para que todos possam criar soluções úteis em diversos
cenários. Uma dessas soluções refere-se ao conceito de NoSQL ou, em outras
palavras, bancos de dados não relacionais. Um dos grandes representantes
desse tipo de tecnologia é o banco de dados MongoDB. Ele permite criar
soluções para cenários de big data de forma escalonável. Além disso, vimos
como tais soluções exigem tecnologias complementares aos bancos de dados
relacionais, como os bancos de dados não relacionais. Tais tecnologias devem
ser encaradas não como uma melhoria dos bancos relacionais, mas, sim,
como algo que deve ser utilizado em conjunto, para suprir a demanda por
informações.
referências
Referências
Bibliográ�cas
BANKER, K. et al . MongoDB in action . 2. ed. New York: Manning Publications
Co., 2016.
39 of 40 17/03/2022 14:20
Ead.br https://codely-fmu-content.s3.amazonaws.com/Moodle...
CIELEN, D.; MEYSMAN, A. D. B.; ALI, A. Introducing data science . Big data,
machine learning, and more, using Python tools. New York: Manning
Publications Co., 2016.
MONEYBALL (2011) Movie Trailer – HD – Brad Pitt. 2010. 1 vídeo (2 min 30s).
Publicado pelo canal Movieclips Trailers. Disponível em:
https://www.youtube.com/watch?v=-4QPVo0UIzc . Acesso em: 24 nov. 2020.
40 of 40 17/03/2022 14:20