Big Data e PostgreSQL
timbira
A empresa brasileira de PostgreSQL
19/11/2015
timbira
Apresentação
• Euler Taveira
• Desenvolvedor PostgreSQL
• Líder do PostgreSQL Brasil
• @eulerto
• http://eulerto.blogspot.com
• Timbira
• Diretor Técnico
• A empresa brasileira de PostgreSQL
• Consultoria
• Desenvolvimento
• Suporte 24x7
• Treinamento
Timbira - A empresa brasileira de PostgreSQL
2 / 37
timbira
Sobre este material
• esta apresentação está disponível em:
http://www.timbira.com.br/material
• esta apresentação está sob licença Creative Commons
Atribuição-Não Comercial 3.0 Brasil:
http://creativecommons.org/licenses/by-nc/3.0/br
c
b
n
timbira
Resumo
1 Introdução
2 Antes da 9.5
3 9.5
4 Conclusão
Timbira - A empresa brasileira de PostgreSQL
1 / 37
Big Data: Introdução
timbira
• “Big Data e sua análise é o centro da ciência moderna e dos
negócios”
• Componentes
• Variedade: estruturado, semi-estruturado, sem estrutura
• Velocidade: streams, tempo real, tempo quase real, batch
• Volume: TB, PB, EB, ZB
Unidades
1 ZB = 1024 EB = 1.048.576 PB = 1.073.741.824 TB
Timbira - A empresa brasileira de PostgreSQL
2 / 37
Big Data: Alguns números
timbira
• 5 exabytes (2003)
• 2,5 exabytes são criados por dia (2013)
• 2,72 zettabytes (2012)
• 8 zettabytes (2015 - previsão)
Timbira - A empresa brasileira de PostgreSQL
3 / 37
Big Data: Alguns números (2)
timbira
• Facebook: 2,7 bilhões likes e comentários / dia
• Youtube: são carregados 48 horas de vídeo / minuto
• Google: processa 20 PB / dia
• Twitter: 1 bilhão tweets a cada 72 horas
Timbira - A empresa brasileira de PostgreSQL
4 / 37
Big Data: Benefícios
timbira
• melhoria em marketing
• segmentação baseada no cliente
• descoberta de oportunidade de vendas
• descoberta de novos mercados
Timbira - A empresa brasileira de PostgreSQL
5 / 37
Big Data: Desafios
timbira
• espaço em disco
• carga de dados é lenta
• plataforma analítica avançada
• centenas de servidores executando em paralelo
Timbira - A empresa brasileira de PostgreSQL
6 / 37
Big Data: Exemplos
timbira
• Varejo
• Governo
• Indústria
• Saúde
• Localização Pessoal
• Web
Timbira - A empresa brasileira de PostgreSQL
7 / 37
Big Data x PostgreSQL
timbira
• O PostgreSQL está preparado?
Timbira - A empresa brasileira de PostgreSQL
8 / 37
timbira
Resumo
1 Introdução
2 Antes da 9.5
3 9.5
4 Conclusão
Timbira - A empresa brasileira de PostgreSQL
9 / 37
Tipo de Dados
timbira
• hstore (8.2)
• extensão
• xml (8.3)
• json (9.2)
• jsonb (9.4)
Timbira - A empresa brasileira de PostgreSQL
10 / 37
timbira
Índices
• índice parcial (7.2)
• Gin (8.2)
• GiST (6.0)
• SP-GiST (9.2)
Timbira - A empresa brasileira de PostgreSQL
11 / 37
Particionamento
timbira
• adicionado na 8.1
• parâmetro constraint_exclusion
• herança + restrição CHECK
• exclui do plano tabelas que não satisfazem restrição CHECK
• regras ou gatilhos fazem o roteamento de dados inseridos,
atualizados ou removidos
• não há sintaxe para criação e gerenciamento de partições
Timbira - A empresa brasileira de PostgreSQL
12 / 37
Full Text Search
timbira
• módulo adicional desde 7.2
• integrado na versão 8.3
• busca em documentos
• produzir tokens a partir de documentos
• converter tokens em lexemas
• armazenar lexemas no índice
• controle de lexemas indexados pode ser feito com dicionários
• tipos de dados tsvector e tsquery
• suporte a índices GiST e Gin
Timbira - A empresa brasileira de PostgreSQL
13 / 37
timbira
FTS x IR
Process Text
Search Index File
Inverted File
Retrieve Documents
Document
Collection
Produce ranked
list of matches
Ranking Algorithm
Timbira - A empresa brasileira de PostgreSQL
14 / 37
Window Functions
timbira
• adicionado na versão 8.4
• executa função em um conjunto de registros que estão
relacionada ao registro atual
• não provocam o agrupamento de registro em um único
registro de saída
• cláusula OVER
• PARTITION BY
• ORDER BY
• cláusulas frame (subconjunto da partição)
Timbira - A empresa brasileira de PostgreSQL
15 / 37
timbira
Hot Standby
Hot Standby
principal
réplica
Timbira - A empresa brasileira de PostgreSQL
16 / 37
Foreign Data Wrapper (FDW)
timbira
• funcionalidade do SQL/MED (Management of External Data)
• bancos de dados federados
• dados são acessíveis ao SGBD mas não são gerenciados por ele
• CREATE FOREIGN DATA WRAPPER
• CREATE SERVER
• CREATE USER MAPPING
• CREATE FOREIGN TABLE
Timbira - A empresa brasileira de PostgreSQL
17 / 37
Tabelas Unlogged
timbira
• dados não são escritos no WAL
• não há garantia contra queda
• mais rápidas do que tabelas regulares
• índices também são unlogged
• em caso de queda ou desligamento abrupto, tabelas unlogged
são truncadas
• tabelas unlogged não são replicadas
Timbira - A empresa brasileira de PostgreSQL
18 / 37
Visões Materializadas
timbira
• similar a CREATE TABLE AS
• “guarda” consulta que gerou visão materializada
• comando REFRESH descarta dados antigos e popula com
novos dados
• possui a opção de criar visão materializada sem dados
Timbira - A empresa brasileira de PostgreSQL
19 / 37
timbira
Decodificação Lógica
nó A
nó B
• gera modificações feitas via SQL para consumidores externos
• modificações são enviadas em fluxo a slots
• o formato no qual as modificações são enviadas é determinado
pelo plugin de saída
• plugin tem acesso a registros produzidos por INSERT e
UPDATE
• ... e também versões antigas do UPDATE / DELETE
(REPLICA IDENTITY)
• casos de uso: replicação e auditoria
• tabelas unlogged e temporárias não são decodificadas
Timbira - A empresa brasileira de PostgreSQL
20 / 37
Não podemos esquecer de ...
timbira
• COPY
• diversidade de PLs
• diversidade de funções estatísticas
• paralelismo de operações de cópia e restauração
Timbira - A empresa brasileira de PostgreSQL
21 / 37
timbira
Resumo
1 Introdução
2 Antes da 9.5
3 9.5
4 Conclusão
Timbira - A empresa brasileira de PostgreSQL
22 / 37
timbira
Índice BRIN
• Block Range Index
• armazena somente os valores limites de um grupo de páginas
• configura quantas páginas do datafile contribuem para
entrada no índice
• criação e atualização rápida
• tamanho reduzido
• mais lento do que BTree
• casos de uso
• dados estáticos e ordenados pelo índice (CLUSTER)
• tabelas somente INSERT (tabelas de log)
Timbira - A empresa brasileira de PostgreSQL
23 / 37
GROUPING SETS
timbira
• agregação de dados com diferentes cláusulas GROUP BY
unidas
• emulado realizando a união de todas as possibilidades
• ROLLUP e CUBE são notações abreviadas do GROUPING
SETS
Timbira - A empresa brasileira de PostgreSQL
24 / 37
timbira
ROLLUP
1
ROLLUP (c1 , c2 , c3)
2
3
4
5
6
7
GROUPING SETS (
(c1 , c2 , c3),
(c1 , c2),
(c1),
())
Timbira - A empresa brasileira de PostgreSQL
25 / 37
timbira
CUBE
1
CUBE (c1 , c2 , c3)
2
3
4
5
6
7
8
9
10
11
GROUPING SETS (
(c1 , c2 , c3),
(c1 , c2),
(c1 , c3),
(c1),
(c2 , c3),
(c2),
(c3),
())
Timbira - A empresa brasileira de PostgreSQL
26 / 37
TABLESAMPLE
timbira
• cláusula TABLESAMPLE do SELECT
• obtém um subconjunto dos registros
• aplicado antes da cláusula WHERE
• 2 métodos de amostragem
• BERNOULLI: amostragem por registro
• SYSTEM: amostragem por bloco
1
SELECT a, b, c FROM foo TABLESAMPLE BERNOULLI (0.01)
WHERE d > 50;
Timbira - A empresa brasileira de PostgreSQL
27 / 37
timbira
Ordenação
• acelerar ordenação dos tipos
• VARCHAR
• TEXT
• NUMERIC
• uso de chaves abreviadas
• mecanismo de cache das chaves abreviadas
Timbira - A empresa brasileira de PostgreSQL
28 / 37
FDW: junção no servidor externo
timbira
• também chamado de join pushdown
• antes: executar duas buscas em servidores externos e fazer a
junção local
• depois: executar a junção remota
Timbira - A empresa brasileira de PostgreSQL
29 / 37
FDW: IMPORT FOREIGN SCHEMA
timbira
• cria tabelas externas que representam tabelas em um servidor
externo
• tabelas e visões do servidor externo são importadas
• conformidade com padrão SQL
• cláusulas LIMIT TO e EXCEPT podem ser utilizadas para
restringir o conjunto de objetos
• o esquema local deve existir
1
2
3
IMPORT FOREIGN SCHEMA financeiro FROM SERVER
meupgsql INTO empresa ;
IMPORT FOREIGN SCHEMA rh EXCEPT (cargos ,
valetransporte ) INTO empresa ;
IMPORT FOREIGN SCHEMA adm LIMIT TO (usuarios ,
telefones ) INTO empresa ;
Timbira - A empresa brasileira de PostgreSQL
30 / 37
Unlogged Tables: transformação
timbira
• transformar tabelas regulares em unlogged e vice-versa
• implementado pelo Fabrízio Mello
1
2
ALTER TABLE foo SET UNLOGGED ;
ALTER TABLE bar SET LOGGED ;
Timbira - A empresa brasileira de PostgreSQL
31 / 37
timbira
Resumo
1 Introdução
2 Antes da 9.5
3 9.5
4 Conclusão
Timbira - A empresa brasileira de PostgreSQL
32 / 37
Big Data x PostgreSQL
timbira
• O PostgreSQL está preparado para Big Data?
• Está acompanhando a evolução das novas tecnologias
Timbira - A empresa brasileira de PostgreSQL
33 / 37
O que vem por aí...
timbira
• melhorias na decodificação lógica (replicação bidirecional)
• suporte a paralelismo de consultas
• busca sequencial
Timbira - A empresa brasileira de PostgreSQL
34 / 37
A Timbira no PGBR 2015
timbira
• Como posso colaborar com o PostgreSQL? (Fabrizio Mello)
• PostgreSQL Rock Star (Fabio Telles)
• Big Data e PostgreSQL (Euler Taveira)
• Curiosidades sobre o PostgreSQL que você (talvez) não sabia
e se sabia vale a pena lembrar (Dickson Guedes)
• Caiu a lista do PostgreSQL Brasil! E agora? (Fernando Ike)
Timbira - A empresa brasileira de PostgreSQL
35 / 37
timbira
Perguntas
?
Euler Taveira de Oliveira
[email protected]
http://www.timbira.com.br
Timbira - A empresa brasileira de PostgreSQL
36 / 37
timbira
Referências
• pgsql-announce: PostgreSQL Weekly News
• http://www.postgresql.org/docs/current/
Timbira - A empresa brasileira de PostgreSQL
37 / 37
Download

Big Data e PostgreSQL