Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 8
Quem sou eu?
2
Armazenamento de Dados
Introdução
Armazenamento de Dados
o https://db-engines.com/
o HDFS
o MongoDB
o Redis
o Elasticsearch
o Cassandra
o Neo4j
o HBase
o Kudu
4
Armazenamento Dados
o HDFS
• Filesystem
• Armazenamento Estático
o HBase
• Armazenamento em Real Time
• Construído sobre o HDFS ("StoreFiles“)
• Base de dados não relacional
5
Apache HBase
6
HBase História
o 2006 - Google publicou sobre um sistema de armazenamento distribuído para dados estruturados
o 2007 - Criação do Apache HBase
• Implementação open-source da arquitetura Bigtable
o 2008 – Tornou um subprojeto
do Hadoop
https://research.google.com/archive/bigtable.html
7
Arquitetura
HBase Funcionamento
9
HBase Componentes
o RegionServer
• Tabela são divididas por região
o HBase Master
• Gerenciar as RegionServer
o Zookeeper
• Monitoramento e Coordenação dos HBase Master
• Arquivos de Configurações
o HDFS
• Namenode/Standby Namenode
• Datanode
10
Estrutura do HDFS e HBase Nós Escravos
Nó Mestre Datanode
Namenode RegionServer
Zookeeper
Datanode
Hbase
Client Master RegionServer
Datanode
Put/Get
RegionServer
11
Estrutura dos Dados
Modelo Dados
o Tabela
• Organizar os dados
o Chave da linha
• Identificador da linha que armazena os dados
o Família da coluna
• Colunas são agrupadas em famílias
o Nome da coluna
• Identificador da coluna
o Versão
• valores em célula são controlados pelo número da versão (timestamp)
o Célula (Chave -> Valor)
• Id linha, família col., coluna e timestamp = valor
13
Comandos Básicos HBase
HBase Acesso
o HBase shell
• Script que auxilia a manipulação do HBase por linha de comando
• Inicializar
o $ hbase shell
15
Comandos Gerais
o status
• Status do HBase
o Número de servidores
o version
• Versão do HBase
o table_help
• Ajuda sobre comandos de tabelas
o whoami
• Informações sobre o usuário
o help “comando”
• Ajuda sobre o comando
16
Comandos Manipulação de Tabela
o create
o list
o disable
o is_disabled
o enable
o is_enabled
o describe
o alter
o exists
o drop
o drop_all
17
Comandos Manipulação dos dados da Tabela
o put
o get
o delete
o deleteall
o scan
o count
o truncate
18
Manipulação de Tabelas
Comandos Criação de Tabela
o Criar tabela
• Definir nome das famílias de coluna
• Sintaxe
o create ‘nomeTabela’,{NAME=>’família’},{NAME=>’família’}
o create ‘nomeTabela’, ’família’,’família’
• Ex.
hbase> create ‘clientes’, {NAME=>’endereco’, VERSIONS=>2}, {NAME=>’pedido’}
hbase> create ‘clientes’, ’endereco’, ’pedido’
20
Comandos Opções de Tabela
o Listar todas as tabelas
• hbase> list
o Estrutura da tabela
• describe ‘nomeTabela’
• Ex. hbase> describe ‘clientes’,
o Deletar tabela (precisa desabilitar)
• drop ‘nomeTabela’ ou drop_all ‘c.*’
• Ex. hbase> drop ‘clientes’
o Verificar se a tabela existe
• hbase> exists ‘nomeTabela’
o Verificar tabelas desabilitas
21
Comandos Habilitar e Excluir Tabela
o Desabilitar tabela
• hbase> disable ‘nomeTabela’
• hbase> scan ‘nomeTabela’ (erro)
• hbase> disable_all 'r.*'
o Verificar se uma tabela está desabilitada
• hbase> is_disabled ‘nomeTabela’
o Habilitar tabela
• hbase> enable ‘nomeTabela’
o Verificar se uma tabela está habilitada
• hbase> is_enable ‘nomeTabela’
o Desabilitar e recriar tabela
• hbase> truncate 'nomeTabela'
22
Inserção e Alteração de Dados
Inserção e Alteração de Dados
o Inserir dados
• put ‘nomeTabela’,’chave’,’família:coluna’,’valor’
• Ex.
hbase> put 'clientes', 'emiranda', 'endereco:cidade', 'BH'
hbase> put 'clientes', 'emiranda', 'endereco:estado', 'MG'
hbase> put 'clientes', 'emiranda', 'pedido:data', '2/2/2016'
hbase> put 'clientes', 'emiranda', 'pedido:nitem', '1234D'
o Alterar dados
hbase> put 'clientes', 'emiranda', 'pedido:nitem', '1234A'
24
Leitura de Dados
Leitura Dados
26
Consultar Registros da Tabela
28
Consultar Tabela
o Consultar todas as linhas da tabela pela versão de uma coluna
• scan ‘nomeTabela’,{COLUMNS=>[‘família:valor’]}
• Ex.
hbase> scan 'clientes', {COLUMNS=>['pedido:nitem'], VERSIONS=>5}
29
Deletar Dados
Deletar Dados
o Deletar Coluna
• delete ‘nomeTabela’,’chave’,’família:coluna’
• Ex.
hbase> delete 'clientes', 'emiranda', 'endereco:cidade'
o Deletar Família de coluna
• delete ‘nomeTabela’,’chave’,’família’
• Ex.
hbase> delete 'clientes', 'emiranda', 'endereco'
o Deletar uma chave
• deleteall ‘nomeTabela’,’chave’
• Ex.
hbase> deleteall 'clientes', 'emiranda'
31
Outras opções com Tabelas
Alterar Tabela
o Alterar a família de coluna da tabela
• alter ‘nomeTabela’, {NAME=>’família’, VERSIONS=>Nº}
• Ex.
• Armazenar mais versões
hbase> alter 'clientes’, {NAME=>'pedido', VERSIONS=>5}
o Alterar a tabela para deletar a família de coluna
• alter ‘nomeTabela’, ‘delete’=>’família’
• Ex.
hbase> alter 'employee','delete'=>'professional'
33
Contar Dados
34
Laboratório
Resolução de exercícios
Exercício HBase
1. Criar a tabela ‘controle’ com os dados
produto fornecedor
id
nome qtd nome estado
1 ram 100 TI Comp SP
2 hd 50 Peças PC MG
3 mouse 150 Inf Tec SP