Buscar

Aula 3 - Capturando e armazenando os dados

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 13 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 13 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 13 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

/
Big Data
Aula 3: Capturando e armazenando os dados
Apresentação
Na aula anterior, vimos os critérios e os fatores de sucesso e os principais riscos que ameaçam projetos de Big Data.
Durante a aula, foi enfatizado que, antes de iniciar um projeto desse tipo, deve-se realizar um levantamento dos dados que
podem ser utilizados e estabelecer quais perguntas se deseja responder com os dados.
Uma vez levantada as necessidades e as informações disponíveis, devem ser estabelecidas as infraestruturas
organizacional e de processos para capturar, armazenar, tratar, processar e analisar os dados. Nesta aula, vamos estudar
as formas de captura e armazenamento dos dados.
Objetivos
Identi�car formas de captura e armazenamento de dados, suas vantagens e limitações.
Estimar a forma de armazenamento adequada de acordo com o tipo de dado e as perguntas que se deseja
responder com os dados.
Introdução
Um dos grandes desa�os do Big Data consiste em identi�car, entre os dados disponíveis, quais devem ser efetivamente usados
para atender as suas necessidades de análise. Visando ajudar nessa etapa, mostraremos várias formas de armazenamento de
dados, suas vantagens e limitações. Para auxiliar na compreensão e na comparação, no decorrer da aula será simulado o uso
de dados de uma livraria com informações sobre seus clientes, suas obras e suas vendas.
/
 Fonte: Pexels
Captura e armazenamento dos dados
Pessoas, empresas e máquinas produzem dados utilizando diferentes ferramentas, em diferentes formatos com diferentes
propósitos. As características dos dados, sua aplicabilidade e para qual �nalidade serão utilizados devem ser considerados na
hora de decidir quais tipos de dados capturar e, consequentemente, estabelecer qual a melhor estratégia de armazená-los.
Os dados podem ser do tipo estruturado, semiestruturado ou não estruturado.
Estruturado
O tipo estruturado tem um formato �xo de acordo com uma
estrutura previamente de�nida. Geralmente em formato de
tabela com linhas e colunas, como nos bancos de dados
relacionais largamente utilizados em sistemas de informação
corporativos.
Semiestruturado
Em dados semiestruturados, cada registro tem uma
organização diferenciada e uma prévia análise dos dados
precisa ser feita para identi�cação da estrutura. Normalmente
são provenientes de formatos XML e JSON.
Não estruturado
Por �m, os dados não estruturados não possuem um formato
de�nido e para capturá-los precisa ser feito um pré-
processamento para análise. Exemplos típicos de dados não
estruturados são vídeos, imagens, e-mails, documentos de
texto de blogs e posts, dados gerados em redes sociais, como
mensagens do WhatsApp.
/
Com relação a estratégia de armazenamento, existem vários tipos de banco de dados e cada um foi desenvolvido para atender
necessidades especí�cas. Nas próximas seções, serão listadas as características, vantagens e desvantagens de vários tipos de
banco de dados.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Banco de dados relacional
No banco de dados relacional, os dados são armazenados como tabelas, que podem estar relacionadas com outras da mesma
base de dados. Cada tabela representa um tipo de entidade e cada instância �ca registrada em uma linha. As linhas possuem
colunas para representar as características da entidade, ou seja, seus atributos. Cada coluna tem um valor atômico de um tipo
simples. A tabela a seguir ilustra uma representação simples de uma tabela de Cliente.
 
 Dados do Clientes armazenados em banco de dados relacional. Fonte: Próprio autor
Para localização de cada registro, uma ou mais colunas são usadas para identi�cá-lo de forma única; essa coluna ou conjunto
de colunas denomina-se chave primária. O atributo ID é a chave primária da tabela Cliente.
O relacionamento entre entidades também é registrado através de uma coluna, nesse caso denominada de chave estrangeira.
Essa estrutura viabiliza a manipulação de qualquer combinação de linhas de quaisquer tabelas em uma única transação. Por
exemplo, supondo que a tabela Cliente registre os clientes de uma livraria virtual. E, além da tabela cliente, no banco de dado há
uma tabela livro, conforme ilustrado a seguir, e o registro dos livros comprados pelos clientes são armazenados em uma tabela
Venda usando somente as suas respectivas chaves das tabelas Cliente e Livro.
 
 Dados de Livros armazenados em banco de dados relacional. Fonte: Próprio autor
/
 Dados de Vendas armazenados em banco de dados relacional. Fonte: Próprio autor
 Características
 Clique no botão acima.
/
Critérios
As transações são realizadas usando Structured Query Language (SQL) e tem a característica de manter a
atomicidade, consistência, isolamento e durabilidade (ACID) dos dados, oferecendo alta integridade aos dados
armazenados. A atomicidade garante que as transações sejam indivisíveis, ou seja, elas serão executadas totalmente
ou não serão executadas. Para tal, as manipulações devem atender a restrições de integridade para manter o banco
em um estado consistente e uma transação deve �car isolada de outras transações para não ocorrer atualizações
parciais. A propriedade de durabilidade garante que o que foi salvo ao �m de uma transação, não será mais perdido.
Essas características do modelo relacional nos permitem pensar em todas as operações, como atuar em linhas e
retornar linhas. Para criar bancos de dados no modelo relacional, surgiram diferentes sistemas gerenciadores de
banco de dados (SGBDs), tais como Oracle, PostgreSQL e MySQL. Eles revolucionaram a área de gerenciamento de
dados, oferecendo garantias de integridade e a possibilidade de gerar consultas complexas dos dados. Porém, o
grande volume e a grande variedade de dados gerados nos últimos anos, trouxeram limitações à adoção desse
modelo. Por exemplo, empresas que utilizavam um banco de dados relacional para armazenar dados de um e-
commerce começaram a ter problemas de indisponibilidade de serviço, demora para execução de consultas ao banco
e necessidade de muita manutenção para manter o banco de dados compatível com as mudanças do negócio.
Em geral, os desa�os enfrentados estão relacionados à escalabilidade, disponibilidade e �exibilidade. Os SGBDs
relacionais permitem a adição de mais recursos computacionais de infraestrutura no servidor que hospeda o banco de
dados, tais como processador, memória e disco. Essa escalabilidade vertical foi su�ciente para as soluções por muitos
anos. Entretanto, à medida que o volume de dados aumentou consideravelmente, esse modelo de expansão vertical
passou a ser inviabilizado, dado que o custo para adquirir servidores capazes de lidar com a quantidade massiva de
dados era alto e, em alguns casos, eles não ofereciam a capacidade e o desempenho necessários.
Ao executar transações, os bancos de dados relacionais tornam os dados envolvidos indisponíveis, para garantir a
integridade e a consistência. Essa garantia é muito útil em diversos cenários como, por exemplo, durante uma
transferência bancária entre duas contas. Contudo, existem casos nos quais manter o serviço disponível é mais
importante do que garantir todas as propriedades ACID. Por exemplo, em sistemas de e-commerce, é preferível que o
cliente consiga escolher um item para comprar que não tenha disponibilidade em estoque e, no momento do
fechamento do pedido seja informado da indisponibilidade do produto, do que a empresa perder a compra por
completo devido à indisponibilidade do sistema para atualização de dados do estoque.
A estrutura bem de�nida de tabelas, colunas, tipos de dados, chaves primárias e chaves estrangeiras facilita a consulta
aos dados, mas torna o banco de dados in�exível para armazenamento de informações fora desta estrutura. Com isso,
podemos perceber que os SGBDs relacionais não são ideais para aplicações e serviços que necessitam de
escalabilidade, alta disponibilidade e �exibilidade para gerenciar os dados. Para atender a esses requisitos, novas
alternativas foram desenvolvidas, nascendo assim o termo NoSQL./
Banco de dados NoSQL
Os novos modelos de armazenamento de dados, criados para atenderem às necessidades de �exibilidade, disponibilidade,
escalabilidade e desempenho usam tecnologia NoSQL (Not only SQL – não somente SQL). Sendo assim, NoSQL não diz
respeito a um modelo de dados especí�co e sim ao agrupamento de modelos de dados que não seguem os princípios do
modelo relacional. Eles precisam dar suporte a esquemas �exíveis ou ausentes, permitindo o armazenamento de dados
semiestruturados ou não estruturados.
Diferentemente do banco de dados relacional, em que o foco principal é voltado à integridade dos dados, os modelos
existentes em NoSQL tendem a sacri�car uma ou mais propriedades ACID, para assim oferecer maior desempenho e
escalabilidade às soluções que lidam com grande volume de dados. Não existe um modelo de armazenamento único que seja
adequado para todos os cenários de aplicações, uma vez que cada solução requer necessidades especí�cas. Atualmente,
existem 4 modelos principais: o modelo orientado a chave-valor, orientado a documentos, orientado a colunas e orientado a
grafos.
Banco de dados orientado a chave-valor
Dentre os sistemas de bancos de dados conhecidos como NoSQL, o modelo chave-valor é o que apresenta representação mais
simples. Sua estrutura constitui-se de uma lista de pares de elementos compostos por uma chave para identi�car as
informações gravadas em um campo valor. Esse modelo pode ser comparado à estrutura de dados chamada tabela Hash,
onde os valores são associados às chaves de busca que permitem um rápido acesso ao seu conteúdo.
Os bancos de dados orientandos a chave-valor não oferecem suporte a relacionamentos e integridade referencial. Tal
simplicidade diminui os tempos de resposta, permitindo que a capacidade de armazenamento de suas bases de dados seja
uma das maiores dos sistemas enquadrados na categoria NoSQL.
Saiba mais
Ele vem sendo utilizado tanto para persistir os dados em disco quanto para mantê-los em memória e assim agilizar o acesso às
informações.
Nesse segundo caso, é possível recuperar os valores em um banco de dados e armazená-los em um cache, criando uma chave
para cada valor armazenado. A tabela a seguir mostra um exemplo dessa estrutura, usando os dados de cadastro do cliente da
livraria, ilustrados anteriormente.
 Dados do Clientes armazenados em banco de dados orientado a chave-valor. Fonte: Próprio autor
Dica
/
Por esse motivo, esse modelo de banco de dados pode ser uma solução ideal para resolver questões de lentidão para leitura e
escrita de dados em grande variedade e volume. Com sua estrutura simples, ele é capaz de otimizar o desempenho da consulta e
realizar operações com alta vazão.
Em contrapartida, esse modelo de banco de dados não costuma permitir que consultas sejam realizadas sobre os seus dados,
apenas sobre as chaves de busca. Assim, todo o acesso é feito por meio das chaves de busca e, somente através da chave é
possível ter acesso ao valor. O conteúdo do campo valor é “opaco”, não sendo possível fazer uma indexação com esse campo e
uma consulta mais complexa. Nos casos de necessidade de criação de consultas mais elaboradas no banco de dados, esse
modelo não é a melhor opção.
Porém, mesmo com essa limitação, bancos de dados orientados a chave-valor podem ser adequados para diversos cenários,
como o armazenamento de imagens e de documentos, criação de cache de objetos, armazenamento de dados de sessões do
usuário e rastreamento de atributos transientes, como no caso do carrinho de compras. Existem atualmente diversas opções
de banco de dados orientado a chave-valor. Embora cada um possua suas próprias características, todas as opções
disponíveis são criadas com foco em oferecer �exibilidade, desempenho e escalabilidade no gerenciamento dos dados.
Exemplos de banco de dados orientados a chave-valor são:
DynamoDB Redis
Riak Memcached
/
Banco de dados orientado a documentos
Assim como o banco de dados orientado a chave-valor, os bancos de dados orientados a documentos também fazem uso de
associações entre pares de chaves e valores. Os documentos são organizados em coleções de forma análoga a tabelas dos
bancos de dados relacionais. Um documento pode ser visto como linha de uma tabela e um conjunto de documentos como
sendo a tabela com todos os registros. Porém, essa estrutura tem a vantagem de que cada documento pode ter uma estrutura
diferente. Além disso, esse modelo oferece meios de criação de índices pelo campo chave e sobre os valores dos dados
armazenados, enriquecendo as possibilidades de consultas. A Figura ilustra um exemplo do cadastro de cliente usando essa
estrutura.
 
 Dados do Clientes armazenados em banco de dados orientado a documento. Fonte: Próprio autor
Conforme ilustrado, esse modelo é uma ótima opção para armazenar atributos variados em cada registro. Os dados são
armazenados em forma desnormalizada, violando as formas normais do modelo relacional, oferecendo grande escalabilidade e
velocidade de leitura. Por esse motivo, um documento armazenado deve conter todas as informações relevantes para uma
consulta, sem necessitar da criação de junções. Tal fato viabiliza a replicação dos dados em um cluster e, assim, garantir que o
dado �cará disponível mesmo com a ocorrência de falha em um dos servidores.
/
Saiba mais
Esse modelo é indicado para realizar o armazenamento de conteúdo de páginas Web, na catalogação de documentos de uma
empresa e no gerenciamento de inventário de e-commerce, pois são aplicações que trabalham diretamente com coleções de
documentos e, portanto, podem se bene�ciar da �exibilidade que o armazenamento orientado a documentos oferece.
São exemplos de bancos de dados orientados a documentos:
Couchbase CouchDB
MarkLogic MongoDB
Banco de dados orientado a colunas
Esse modelo possui conceitos similares ao do modelo relacional, como a criação de linhas e colunas, porém, faz uma inversão
na organização de seus dados. No modelo relacional, cada registro da tabela �ca armazenado em uma linha, enquanto no
banco de dados orientado a colunas os registros passam a ser armazenados em colunas. Dessa forma, as linhas não mais
armazenam o registro de uma instância, mas sim um conjunto de valores do mesmo atributo, enquanto o conjunto de valores
de uma coluna contém a informação de uma instância por completo.
Essa forma de armazenamento tem algumas vantagens, tais como, o aumento da capacidade de compressão dos dados
comparado com banco de dados relacional.
Atenção
Quando os registros são armazenados em linha, em uma mesma linha há diferentes tipos de dados e o processo de compressão
�ca mais complicado. Já no banco de dados orientado a colunas, cada coluna contém o mesmo tipo de dado tornando mais
e�caz a compressão. Essa estrutura também permite que consultas de análises em subconjuntos de dados possam ser mais
e�cientes, porém a obtenção de instâncias inteiras passa a ser mais custosa. Essa diferença ocorre pelo esforço necessário para
se percorrer as colunas das informações.
/
Além disso, o modelo tem a �exibilidade de permitir o uso de famílias de colunas. Ao invés de de�nir antecipadamente as
colunas necessárias para armazenar um registro, o responsável pela modelagem de dados de�ne famílias de colunas. As
famílias de colunas são organizadas em grupos de itens de dados que são frequentemente usados em conjunto em uma
aplicação.
Em uma família de colunas, é possível a existência de atributos não atômicos, por meio da representação de listas de valores.
Além disso, nas famílias de colunas, as instâncias podem apresentar quantidades de atributos diferentes, não sendo
necessário reservar espaços de armazenamento para valores nulos. Para exempli�car esse tipo de estrutura, a Figura mostra o
cadastro de clientes representado através de famílias de colunas.
 
 Dados do Clientes armazenados em banco de dados orientado a coluna. Fonte: Próprio autor
A Figura mostra que clientes diferentes têm a �exibilidade de serem armazenados com mais ou menos atributos. Esse modelooferece �exibilidade para inclusão de campos dinamicamente, evitando o desperdício de espaço com campos nulos ou vazios,
sendo indicado para aplicações com volumes imensos de dados que necessitam de alto desempenho e de alta disponibilidade
na leitura e escrita dos dados.
Em contrapartida, podem ocorrer eventuais inconsistências. Tal modelo tem sido usado no serviço de mensagens do
Facebook. Os bancos de dados orientados a colunas, em sua maioria, são inspirados na solução BigTable da Google e, dentre
eles, destacam-se:
Accumulo Cassandra
HBase hypertable
/
Banco de dados orientado a grafos
O banco de dados orientado a grafos tem como principal objetivo evidenciar os relacionamentos que ocorrem entre entidades.
Com base na Teoria de Grafos, os bancos de dados que seguem essa abordagem possuem três tipos de elementos: nós,
arestas e propriedades. Cada nó corresponde a uma instância de uma entidade, as arestas representam os relacionamentos
entre as instâncias e as propriedades dizem respeito aos valores de dados contidos nas instâncias ou nas arestas. Uma aresta
possui um nó de entrada e um nó de saída. Diferentemente dos demais modelos, além de dar suporte a referências, também
garante a integridade referencial, assegurando que o nó de entrada sempre faça referência ao nó de saída.
 
 Relacionamento de compra representado em banco de dados orientado a grafo. Fonte: Próprio autor
Existem casos em que a descoberta de como os dados estão relacionados é mais importante do que os dados em si. Em
situações como essa, com foco no relacionamento dos dados, o banco de dados orientado a grafos é recomendado, como, por
exemplo, em aplicações que precisam identi�car como um conjunto de pessoas está conectado em uma rede, ou descobrir a
melhor rota para se chegar a um local em menor tempo. São exemplos de bancos de dados orientados a grafos:
AllegroGraph ArangoDB
InfoGrid Neo4J
Titan
Nesta aula, estudamos as formas de captura e armazenamento de dados, destacando o papel dos diferentes tipos de bancos
de dados, desde o tradicional banco de dados relacional aos quatro principais modelos de banco de dados não relacionais,
denominados NoSQL. Um ranking de popularidade dos bancos de dados, por modelo de dados, é mantido atualizado no link do
DB-Engines.
/
Atividade Objetiva
1. (IBFC – 2019 – Emdec – Analista de Tecnologia da Informação Jr) Os Sistemas Gerenciadores de Banco de Dados: Oracle,
PostgreSQL, MySQL são todos considerados, tecnicamente, como sendo um modelo de dados _____. Assinale a alternativa que
preencha corretamente a lacuna.
a) Hierárquico
b) Em Rede
c) Tabular
d) Relacional
e) NoSQL
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
2. Os bancos de dados NoSQL foram criados para atender às necessidades de �exibilidade, disponibilidade, escalabilidade e
desempenho no gerenciamento de dados. Porém, cada solução tem enfoque em suprir necessidades especí�cas. Marque a
opção que apresenta o tipo de banco de dados cujas consultas são realizadas somente sobre a chave e tem um bom tempo de
resposta, sendo indicado para resolver questões de lentidão para leitura e escrita de dados em grande variedade e volume.
a) Relacional.
b) Chave-valor.
c) Coluna.
d) Documento.
e) Grafo.
3. Marque a opção que tem sido usada como uma alternativa aos bancos de dados relacionais para dar suporte aos sistemas que
possuem muita interconectividade.
a) Rede.
b) Chave-valor.
c) Coluna.
d) Documento.
e) Grafo.
Notas
Título modal 1
/
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ�ca e de impressos.
Título modal 1
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ�ca e de impressos.
Referências
MARQUESONE, Rosangela. Big Data: Técnicas e tecnologias para extração de valor dos dados. Editora Casa do Código, 2016.
RIBEIRO NETO, Jose Antonio. Big Data para Executivos e Pro�ssionais de Mercado - Segunda Edição.
TAURION, Cezar. Big data. Editora Brasport, 2013.
Próxima aula
As tecnologias usadas para obter processamento escalável de grande volume de dados;
Os benefícios da computação em nuvem;
O funcionamento do processamento em tempo real.
Explore mais
Exercite a captura e armazenamento de dados usando o tutorial “2.5 Praticando: armazenando tweets com mongodb” que
se encontra na página 62 do livro MARQUESONE, Rosangela. Big Data: Técnicas e tecnologias para extração de valor dos
dados. Editora Casa do Código, 2016.
Reportagem do site da Revista Super Interessante de 22/07/2019: Metade do planeta está nas redes sociais – que já
somam 3,5 bilhões de usuárioshttps://super.abril.com.br/tecnologia/metade-do-planeta-esta-nas-redes-sociais-que-ja-
somam-35-bilhoes-de-usuarios/.
javascript:void(0);

Continue navegando