Escolar Documentos
Profissional Documentos
Cultura Documentos
Integrantes:
Bruno Sacramento,
Rerbert Viana,
Vinicius O. Queiroz e
Werbert Viana
Agenda
◼ Contextualização ◼ Modelo de dados relacional e não
relacional
◼ Introdução
◼ Estudos de casos
◼ Motivação e Objetivo
◼ Consultas
◼ Características e funcionalidades
◼ Perguntas
◼ SGDB NoSQL Free e Proprietário
◼ Considerações finais
◼ Não se tem a necessidade de fazer todo o esquema antes de começar a utilizá-lo, até
porque todas as informações serão agrupadas em um registro, então não precisa que se
tenha relacionamentos entre várias tabelas para ser formada a informação, ela estará em
sua totalidade no mesmo registro.
Big Data
◼ Big Data é a análise e a interpretação de grandes volumes de dados de grande variedade.
Para isso são necessárias soluções específicas para Big Data que permitam a profissionais
de TI trabalhar com informações não-estruturadas a uma grande velocidade.
clusters de hardwares comuns. Ele fornece armazenamento massivo para qualquer tipo de dado,
grande poder de processamento e a capacidade de lidar quase ilimitadamente com tarefas e
trabalhos ocorrendo ao mesmo tempo.
◼ Foi originalmente criado para ser usado com o Hadoop. Na verdade, o HBase é um
subprojeto do projeto Hadoop do Apache.
◼ HBase escala linearmente para lidar com grandes conjuntos de dados com bilhões de linhas e milhões de colunas
e combina facilmente fontes de dados que utilizam uma grande variedade de estruturas e esquemas diferentes.
◼ Sua melhor aplicabilidade é quando temos uma quantidade de dados muito grande,
aproveitando assim o potencial do cluster Hadoop / HDFS.
◼ Com bases de dados que utilizem 5 nós ou mais o HBASE realmente mostra o seu
potencial.
◼ Uma empresa que fornece serviços de segurança na web mantém um sistema que aceita
bilhões de traços de eventos e registros de atividades dos desktops dos seus clientes
todos os dias.
Vantagens
◼ É um banco de dados em Hadoop
◼ Orientado a colunas dívidas em famílias de grupos para acesso, guardado
através de chave e valor
◼ HBase é um banco NoSQL (Not only SQL) com foco em consistência e
tolerância de partição
◼ Arquitetura Master/Slave
◼ Utilização do MapReduce
Rápido
◼ Pesquisas em tempo real
◼ Armazenamento na memória por meio de filtros de bloqueio e bloqueio de
blocos
◼ Processamento do lado do servidor via filtros e coprocessadores
Utilizável
◼ Modelo de dados acomoda ampla gama de casos de uso
◼ Exportações de métricas através de plugins de arquivo e ganglia
◼ Fácil Java API, bem como Thrift e REST gateway APIs
Tolerância a falhas
◼ Replicação em todo o centro de dados
◼ Operações atômicas e fortemente consistentes a nível de linha
◼ Alta disponibilidade através de failover automático
◼ Balanços automáticos de corte e carga de tabelas
CAP
◼ Consistência
◼ Disponibilidade
◼ Tolerância de Partição
Hadoop
◼ O Hadoop não é um tipo de banco de dados, mas um ecossistema de software que permite
computação paralela em massa. É um facilitador de certos tipos de bancos de dados
distribuídos NoSQL (como o HBase), que permite que os dados sejam espalhados por
milhares de servidores com pouca redução no desempenho. Um elemento básico do
ecossistema do Hadoop é o MapReduce, um modelo computacional que basicamente utiliza
processos de dados intensivos e espalha a computação por um número potencialmente
interminável de servidores (geralmente chamado de cluster Hadoop).
Arquitetura HBase
◼ Na arquitetura do HBase, funcionam como Master/Slave
◼ Existem servidores que trabalham como Master, mais conhecidos como
HMaster que tem como principal função administrativas, tais como: Criar e
deletar tabelas, assim como, dividir as regiões de acessos para dados.
◼ Já os servers regionais, funcionam como Slave, e sempre existe a
comunicação entre as servers regionais e o H Master, isso feito com o
NameNode (H Master) e o Data Node (Servers Regionais).
HBase x Hadoop
◼ O problema do Hadoop está no fato de não possui ZooKeepers e possui uma estrutura direta de
Master/Slave na qual, caso ocorra algum problema com o Master, todos os dados salvos no Slave,
serão inacessíveis
MapReduce
◼ É um modelo de programação, e framework introduzido pelo Google para suportar computações
paralelas em grandes coleções de dados em clusters de computadores.
◼ O MapReduce passa a ser considerado um novo modelo computacional distribuído, inspirado pelas
funções map e reduce usadas comumente em programação funcional.
◼ MapReduce é um “Data-Oriented” que processa dados em duas fases primárias: Map e Reduce
❑ Um leitor de entrada
❑ Uma função de Map
❑ Uma função de partição
❑ Uma função de comparação
❑ Uma função Reduce
❑ Um escritor de saída
Desvantagens
◼ Necessidade de quantidade gigantescas de dados para ter uma diferença
nas questões de operações (Terabytes, petabytes)
◼ Custo altíssimo para manutenção
Free Proprietário
◼ Apache Cassandra ◼ Microsoft Azure Cosmos DB
◼ Apache Accumulo ◼ Datastax Enterprise
◼ ScyllaDB ◼ Microsoft Azure Table Storage
Globo.com
◼ A Globo.com é a empresa de Internet do Grupo Globo e tem alguns dos maiores portais do Brasil (G1,
Globo Esporte e Gshow). São dezenas de milhões de acessos por dia aos portais com cerca de 10
milhões de visitantes únicos e uma produção massiva de conteúdo bastante variado em Jornalismo,
Esporte, Variedades e Vídeos (juntamente com TV Globo, Editora Globo e demais empresas do
Grupo).
◼ Com a proposta de personalizar o conteúdo da Globo.com nos diversos produtos que formam cada
portal, o time de Personalização recebeu o desafio de implementar um Sistema de Recomendação
que pudesse recomendar para milhões de usuários ativos milhares de itens variados (notícias, vídeos,
filmes, …).
Globo.com
◼ A Globo.com tem Data Center próprio e a instalação do cluster de BigData foi feito em
máquinas físicas.
◼ Esse cluster é composto por um conjunto maior de máquinas com Hadoop e HBase e outro
conjunto menor de máquinas com Kafka e ZooKeeper. O principal framework utilizado é o
Spark.
Recomendação
◼ O Sistema de Recomendação é projetado para coletar os sinais produzidos tanto pela dinâmica do usuário quanto
pela dinâmica do conteúdo e filtrar o que é relevante para o usuário no momento em que isso é importante.
◼ Nesse sistema, os dados coletados são processados e transformados em modelos de Usuário, Conteúdo e
Contexto.
◼ Esses modelos são usados para apresentar as melhores opções de acordo com parâmetros do Produto. A
interação do usuário com o conteúdo recomendado é avaliada através de testes usados para orientar constantes
mudanças em busca de melhorar a performance do sistema.
◼ A plataforma desenvolvida na Globo.com para recomendação personalizada de conteúdo é projetada para suportar
milhões de usuários ativos, milhares de itens variados em fluxo, diversos contextos de produtos.
Recomendação
◼ Essa plataforma pode ser dividida em três partes:
❑ Recebimento de dados em tempo real.
Consulta on-line
◼ A consulta on-line é a API que os desenvolvedores da Globo.com podem usar para recomendar
conteúdo personalizado. A API faz a combinação dos diversos modelos de recomendação e filtra o
conteúdo mais relevante para o usuário.
◼ A API permite criar testes A/B com combinações diferentes dos modelos permitindo avaliar a
performance de um algoritmo contra outro, ou o mesmo com parâmetros diferentes.
◼ Premissa: Reformulação do Messenger em 2010: Integração de sms, e-mail, bate papo e mensagens
em uma caixa de entrada.
Vantagens:
◼ Alto rendimento de gravação e baixa latência de leitura.
◼ Escalabilidade horizontal.
◼ Consistência forte e alta disponibilidade via failover automático.
◼ Expansão para cargas de trabalho de processamento de análises on-line, usando-a não apenas para
cargas de trabalho de processamento de transações on-line (mensagens).
Falha no servidor: Em vez de cada região ser atendida por um único servidor de região, no
HydraBase, cada região é hospedada por um conjunto de servidores de região. Quando um
servidor de região falha, há servidores de região em espera prontos para atender essas
regiões. Esses servidores da região de espera podem se espalhar por diferentes racks ou mesmo
data centers, fornecendo disponibilidade em diferentes domínios de falha.
não possui um valor definido, ele simplesmente não é gravado. Visto que
pode-se haver diferentes columns qualifiers em linhas distintas
❑ Consistência forte.
❑ Alta disponibilidade.
❑ Failover automático.