Você está na página 1de 60

Instituto Federal da Bahia – IFBA

Campus Vitória da Conquista

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


2
Contextualização

Banco de Dados não Relacional


◼ Pode ser visto como um padrão de armazenamento alternativo ao modelo SQL (relacional),
podendo oferecer uma maior escalabilidade. Surgiram exatamente pela necessidade de se
ter uma melhor performance e alta escalabilidade, para dessa forma ter um maior e melhor
gerenciamento de dados.

◼ 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.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


3
Contextualização

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.

◼ As ferramentas de Big Data são de grande importância na definição de estratégias de


marketing. Com elas é possível, por exemplo, aumentar a produtividade, reduzir custos e
tomar decisões de negócios mais inteligentes.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


4
Introdução

O que é o Apache HBase?


◼ Um banco de dados não-relacional (NoSQL) que é executado em cima do Hadoop Distributed File
System (HDFS)
❑ Hadoop é uma estrutura de software open-source para armazenar dados e executar aplicações em

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.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


5
Introdução

O que é o Apache HBase?


◼ O Apache HBase é um banco de dados de código aberto NoSQL orientado a coluna, que fornece acesso de
leitura/gravação em tempo real a esses grandes conjuntos de dados.

◼ 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.

◼ Modelado a partir do Google BigTable e escrito em Java.


❑ O Bigtable é um sistema de armazenamento de dados proprietário compactado, de alto desempenho construído
no sistema do Google File e algumas outras tecnologias Google. Em 6 de maio de 2015, uma versão pública do
Bigtable foi disponibilizada.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


6
Motivação e Objetivo

◼ 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.

◼ As empresas usam o armazenamento de baixa latência do Apache HBase para cenários


que exigem análise em tempo real e dados tabulares para aplicativos de usuários finais.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


7
Motivação e Objetivo

◼ 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.

◼ Os programadores da empresa podem integrar as suas soluções de segurança com


HBase (para garantir que a proteção que eles fornecem acompanhe as mudanças em
tempo real na paisagem da ameaça).

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


8
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


9
Características e Funcionalidades

Possui diversas características, nas quais são voltadas


para 3 pontos:
◼ Rápido
◼ Utilizável
◼ Tolerância a falhas

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


10
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


11
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


12
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


13
Características e Funcionalidades

CAP
◼ Consistência
◼ Disponibilidade
◼ Tolerância de Partição

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


14
Características e Funcionalidades

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).

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


15
Características e Funcionalidades

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).

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


16
Características e Funcionalidades

Então os principais pontos da arquitetura são:


◼ HMaster
◼ ZooKeeper
◼ Region
◼ Regions Servers

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


17
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


18
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


19
Características e Funcionalidades

Arquitetura de um Region Server


◼ As tabelas nos servidores regionais são ordenados através de chave e valor,
sempre possuindo uma chave primária e uma chave final.
◼ Todo servidor regional possui 4 componentes importantes para que possam
funcionar, sendo eles:
❑ Memstore
❑ H File
❑ Block Cache
❑ WAL

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


20
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


21
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


22
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


23
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


24
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


25
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


26
Características e Funcionalidades

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


27
Características e Funcionalidades

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

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


28
SGBDs NoSQL Free e Proprietário

Free Proprietário
◼ Apache Cassandra ◼ Microsoft Azure Cosmos DB
◼ Apache Accumulo ◼ Datastax Enterprise
◼ ScyllaDB ◼ Microsoft Azure Table Storage

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


29
Modelo de Dados Relacional

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


30
Modelo de Dados Não Relacional

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


31
Estudo de Caso N° 1

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, …).

◼ A Plataforma de BigData da Globo.com surgiu dessa experiência.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


32
Estudo de Caso N° 1

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.

❑ Apache Kafka é uma plataforma distribuída de mensagens e streaming.


❑ O Apache ZooKeeper é um serviço centralizado para manter informações de configuração,
nomear, fornecer sincronização distribuída e oferecer serviços de grupo.
❑ Spark é um microframework baseado em Java para a criação de aplicações web, ele foi inspirado
no framework Sinatra que é escrito em Ruby.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


33
Estudo de Caso N° 1

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.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


34
Estudo de Caso N° 1

Recomendação
◼ Essa plataforma pode ser dividida em três partes:
❑ Recebimento de dados em tempo real.

❑ Processamento de algoritmos de recomendação.

❑ Consulta on-line com combinação de modelos.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


35
Estudo de Caso N° 1

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.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


36
Estudo de Caso N° 1

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


37
Estudo de Caso N° 2
Facebook - Hydrabase

◼ Premissa: Reformulação do Messenger em 2010: Integração de sms, e-mail, bate papo e mensagens
em uma caixa de entrada.

◼ Solução: Construção do produto no Apache HBase de código aberto, um armazenamento de dados


de valor-chave distribuído rodando no HDFS.

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).

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


38
Estudo de Caso N° 2

Falha no servidor: failover automático. Devido à natureza de como o failover é arquitetado no


HBase, isso envolve dividir e reproduzir o conteúdo do WAL associado a cada região, o que
aumenta o tempo de failover.

xx/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


39
Estudo de Caso N° 2

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.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


40
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


◼ CREATE TABLE medico ( ◼ CREATE ‘medico’, ‘cf’
cpf char(11) PRIMARY KEY, ◼ CREATE ‘medico’, ‘cf_dado_pessoal’,
nome varchar(20), ‘cf_dado_profissional’
areaAtuacao varchar(10),
CRM varchar(13))

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


41
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


◼ DROP TABLE medico ◼ DROP ‘medico’

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


42
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


INSERT INTO medico VALUES (‘12345678910’, ‘Maria

Eduarda’ ,’Pediatria’, ‘1234567890/BA’)
◼ PUT ‘medico’,’12345678910’,
cf_dado_pessoal:nome’,’Maria Eduarda’,
‘cf_dado_profissional:areaAtucao’, ‘Pediatria’,
‘cf_dado_profissional:CRM’,’1234567890/BA’

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


43
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


◼ SELECT * FROM medico; ◼ SCAN ‘medico’

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


44
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


◼ SELECT * ◼ GET ‘medico’,’12345678910’’
FROM medico
WHERE cpf = 12345678910;

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


45
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


◼ UPDATE medico SET nome= ‘Maria ◼ PUT ‘medico’,’12345678910’,
Eduarda’, areaAtuacao =’Cardiologia’, cf_dado_pessoal:nome’,’Maria Eduarda’,
‘1234567890/BA’) ‘cf_dado_profissional:areaAtucao’,
‘Cardiologia’,
‘cf_dado_profissional:CRM’,’1234567890/BA’

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


46
Consultas: SQL x BD Não Relacional

Modelo Relacional Modelo Não Relacional


◼ DELETE FROM medico WHERE cpf = ◼ DELETE ‘medico’, ’12345678910’,
‘12345678910’ cf_dado_pessoal:nome’,’Maria Eduarda’,
‘cf_dado_profissional:areaAtucao’,
‘Cardiologia’,
‘cf_dado_profissional:CRM’,’1234567890/BA’

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


47
Perguntas
◼ 1 - Qual a definição de CAP em banco de dados e quais duas características
o HBase proporciona?

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


48
Perguntas
◼ 1 - Qual a definição de CAP em banco de dados e quais duas características
o HBase proporciona?
❑ CAP significa Consistência, Disponibilidade e Tolerancia de partição. O

HBase consiste em consistência e tolerância de partição

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


49
Perguntas
◼ 2 - Qual a arquitetura principal do HBase e qual a funcionalidade de cada
um?

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


50
Perguntas
◼ 2 - Qual a arquitetura principal do HBase e qual a funcionalidade de cada
um?
❑ HMaster - Gerenciador principal dos servers regionais e por ele que é feito

as funções de criar e deletar tabelas.


❑ ZooKeeper - Responsável pelas coordenadas de onde são salvos os

dados e também informar quando determinado erro relacionado as


tabelas ocorrem.
❑ Region Server - Servidos nos quais armazenam as regiões, possuindo
sempre uma chave primária e chave final.
❑ Region - É onde são armazenadas as tabelas (Table, RowKey, Family,
Column, Timestamp) -> Value.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


51
Perguntas
◼ 3. Há a representação de um registro nulo hbase, de forma similar ao
esquema relacional?

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


52
Perguntas
◼ 3. Há a representação de um registro nulo hbase, de forma similar ao
esquema relacional?
❑ Não. Devido ao esquema flexível, dentro da Column Family, se o registro

não possui um valor definido, ele simplesmente não é gravado. Visto que
pode-se haver diferentes columns qualifiers em linhas distintas

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


53
Perguntas
◼ 4. O que é o Apache HBase? E qual a sua melhor aplicabilidade?

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


54
Perguntas
◼ 4. O que é o Apache HBase? E qual a sua melhor aplicabilidade?
❑ O Apache HBase é um banco de dados de código aberto NoSQL
orientado a coluna, que fornece acesso de leitura/gravação em tempo real
a esses grandes conjuntos de dados.
❑ Sua melhor aplicabilidade é quando temos uma quantidade de dados

muito grande, aproveitando assim o potencial do cluster Hadoop / HDFS.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


55
Perguntas
◼ 5. Quais as vantagens de usar Hbase no contexto de Big Data?

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


56
Perguntas
◼ 5. Quais as vantagens de usar Hbase no contexto de Big Data?
❑ Suporte para grande carga de dados.

❑ Consistência forte.

❑ Alta disponibilidade.

❑ Failover automático.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


57
Considerações Finais

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


58
Material Consultado
◼ Apache HBase ™ Reference Guide. Apache Hbase Disponível em
<https://hbase.apache.org/book.html>. Acesso às 19:00, 06/11/2019
◼ Os Bancos de dados NoSQL: Uma olhada no Hbase. iMasters. Disponível
em:<https://imasters.com.br/banco-de-dados/os-bancos-de-dados-nosql-uma-olhada-no-
hbase>. Acesso às 19:00, 06/11/2019
◼ Apache HBase – Base de dados NoSQL do ecossistema Hadoop. Pplware. Disponível
em<https://pplware.sapo.pt/informacao/apache-hbase-not-only-sql-nosql/>. Acesso às
19:00, 09/11/2019
◼ What is Apache Hadoop?. Mapr. Disponível em: <https://mapr.com/products/apache-
hadoop/>. Acesso às 19:00, 09/11/2019

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


59
Material Consultado
◼ SANTOS, L. A. Hbase trabalho final. UEMA - IFMA. 2014. Disponível em:
<https://pt.slideshare.net/Lanylldo/hbase-trabalho-final>. Acesso às 19:00, 10/11/2019
◼ ACADGILD. HBase Tutorial | Introduction to HBase | What is HBase? | HBase Tutorial
for Beginners. 2017. (7m27s). Disponível em: <https://youtu.be/VRD775iqAko>. Acesso
em: 10 nov. 2019.
◼ Tech Primers. What is HBase? How is it different from Hadoop? | HDFS and HBase
Architecture. (15m02s). Disponível em: <https://youtu.be/hs8QnQvwyCM>. Acesso em: 10
nov. 2019.
◼ BIGDATA na Globo.com. Site, 27 ago. 2015. Disponível em:
https://cirocavani.github.io/post/bigdata-na-globocom/. Acesso em: 18 nov. 2019.
◼ FONG, Zelaine. HydraBase – The evolution of HBase@Facebook. Site, 5 jun. 2014.
Disponível em: https://engineering.fb.com/core-data/hydrabase-the-evolution-of-hbase-
facebook/. Acesso em: 18 nov. 2019.

20/11/2019 Modelo de Apresentação - Projeto de Banco de Dados


60

Você também pode gostar