SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Big Data e PostgreSQL
Euler Taveira
Brasília, 02/12/2017
Sobre este material
• esta apresentação está disponível em:
https://www.slideshare.net/eulerto
• 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
Apresentação
• Euler Taveira
• Desenvolvedor PostgreSQL
• Líder do PostgreSQL Brasil
• @eulerto
• http://eulerto.blogspot.com.br
• Timbira
• Diretor Técnico
• A empresa brasileira de PostgreSQL
• Consultoria
• Desenvolvimento
• Suporte 24x7
• Treinamento
Timbira - A empresa brasileira de PostgreSQL 1 / 40
Resumo
1 Introdução
2 Funcionalidades
3 Conclusão
Timbira - A empresa brasileira de PostgreSQL 2 / 40
Big Data: Introdução
• “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
• Veracidade: dados “limpos” (significativo ao problema)
• Validade: dados corretos e precisos
• Volatilidade: por quanto tempo os dados são válidos?
Unidades
1 ZB = 1024 EB = 1.048.576 PB = 1.073.741.824 TB
Timbira - A empresa brasileira de PostgreSQL 3 / 40
Big Data: Alguns números
• 5 exabytes (2003)
• 2,5 exabytes são criados por dia (2013)
• 2,72 zettabytes (2012)
• 4,4 zettabytes (2017)
• 44 zettabytes (2020 - previsão)
Timbira - A empresa brasileira de PostgreSQL 4 / 40
Big Data: Alguns números (2)
• Facebook: 2,7 bilhões likes e comentários / dia
• Youtube: são carregados 300 horas de vídeo / minuto
• Google: processa 20 PB / dia
• Twitter: 500 milhões tweets / dia
Timbira - A empresa brasileira de PostgreSQL 5 / 40
Big Data: Benefícios
• melhoria em marketing
• segmentação baseada no cliente
• descoberta de oportunidade de vendas
• descoberta de novos mercados
Timbira - A empresa brasileira de PostgreSQL 6 / 40
Big Data: Desafios
• 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 7 / 40
Big Data: Exemplos
• Varejo
• Governo
• Indústria
• Saúde
• Localização Pessoal
• Web
Timbira - A empresa brasileira de PostgreSQL 8 / 40
Big Data x PostgreSQL
• O PostgreSQL está preparado?
• Quais funcionalidades são importantes para Big Data?
Timbira - A empresa brasileira de PostgreSQL 9 / 40
Resumo
1 Introdução
2 Funcionalidades
3 Conclusão
Timbira - A empresa brasileira de PostgreSQL 10 / 40
Tipo de Dados
• hstore (8.2)
• extensão
• xml (8.3)
• json (9.2)
• jsonb (9.4)
Timbira - A empresa brasileira de PostgreSQL 11 / 40
Índices
• índice parcial (7.2)
• Gin (8.2)
• GiST (6.0)
• SP-GiST (9.2)
• BRIN (9.5)
Timbira - A empresa brasileira de PostgreSQL 12 / 40
Í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 13 / 40
Particionamento
• separar dados históricos de atuais
• consultas mais rápidas
• partições menores
• índices menores
• manutenção mais rápida
• expurgo
• VACUUM
• REINDEX
Timbira - A empresa brasileira de PostgreSQL 14 / 40
Particionamento: antes da 10
• 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 15 / 40
Particionamento: versão 10
• sintaxe declarativa
• roteamento de tuplas
• particionamento por
• list: uma coluna ou expressão
• range: múltiplas colunas ou expressão
• subpartições
• tabela particionada é vazia
Timbira - A empresa brasileira de PostgreSQL 16 / 40
Paralelismo de Consultas
• sequential scan (9.6)
• btree index scan (10)
• hash join (9.6)
• nested loop (9.6)
• merge join (10)
• bitmap heap scan (10)
• non-correlated subqueries (10)
Timbira - A empresa brasileira de PostgreSQL 17 / 40
Paralelismo de Consultas: parâmetros
• max_worker_processes (9.6)
• max_parallel_workers (10)
• max_parallel_workers_per_gather (9.6)
• min_parallel_relation_size (9.6)
• min_parallel_table_scan_size (10)
• min_parallel_index_scan_size (10)
Timbira - A empresa brasileira de PostgreSQL 18 / 40
Full Text Search
• 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 19 / 40
FTS x IR
Process Text
Search Index File
Retrieve Documents
Produce ranked
list of matches
Inverted File
Ranking Algorithm
Collection
Document
Timbira - A empresa brasileira de PostgreSQL 20 / 40
Window Functions
• 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 21 / 40
GROUPING SETS
• 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 22 / 40
ROLLUP
1 ROLLUP ( c1 , c2 , c3 )
2
3 GROUPING SETS (
4 ( c1 , c2 , c3 ) ,
5 ( c1 , c2 ) ,
6 ( c1 ) ,
7 () )
Timbira - A empresa brasileira de PostgreSQL 23 / 40
CUBE
1 CUBE ( c1 , c2 , c3 )
2
3 GROUPING SETS (
4 ( c1 , c2 , c3 ) ,
5 ( c1 , c2 ) ,
6 ( c1 , c3 ) ,
7 ( c1 ) ,
8 ( c2 , c3 ) ,
9 ( c2 ) ,
10 ( c3 ) ,
11 () )
Timbira - A empresa brasileira de PostgreSQL 24 / 40
TABLESAMPLE
• 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 25 / 40
Foreign Data Wrapper (FDW)
• 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
• join pushdown
• comandos
• CREATE FOREIGN DATA WRAPPER
• CREATE SERVER
• CREATE USER MAPPING
• CREATE FOREIGN TABLE
Timbira - A empresa brasileira de PostgreSQL 26 / 40
FDW: IMPORT FOREIGN SCHEMA
• 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 IMPORT FOREIGN SCHEMA f i n a n c e i r o FROM SERVER meupgsql
INTO empresa ;
2 IMPORT FOREIGN SCHEMA rh EXCEPT ( cargos , v a l e t r a n s p o r t e )
INTO empresa ;
3 IMPORT FOREIGN SCHEMA adm LIMIT TO ( usuarios , t e l e f o n e s )
INTO empresa ;
Timbira - A empresa brasileira de PostgreSQL 27 / 40
Tabelas Unlogged
• 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
• transformar tabelas regulares em unlogged e vice-versa
1 ALTER TABLE foo SET UNLOGGED;
2 ALTER TABLE bar SET LOGGED;
Timbira - A empresa brasileira de PostgreSQL 28 / 40
Visões Materializadas
• 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 29 / 40
Hot Standby
Hot Standby
principal
réplica
Timbira - A empresa brasileira de PostgreSQL 30 / 40
Hot Standby
• replica todo cluster
• cascateamento
• mesma plataforma (hardware, sistema operacional)
• mesmo caminho de tablespaces
• mesma versão do postgres
• consulta longa na réplica gera atraso na replicação
Timbira - A empresa brasileira de PostgreSQL 31 / 40
Replicação Lógica
nó A nó B
Timbira - A empresa brasileira de PostgreSQL 32 / 40
Replicação Lógica
• replica mudanças
• modelo publish-subscribe
• replicação transacional
• subscriber aplica dados na mesma ordem do que o publisher
• decodificação lógica do WAL
• sincronismo inicial
• cascateamento
Timbira - A empresa brasileira de PostgreSQL 33 / 40
Decodificação Lógica
• 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 34 / 40
Não podemos esquecer de ...
• 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 35 / 40
Resumo
1 Introdução
2 Funcionalidades
3 Conclusão
Timbira - A empresa brasileira de PostgreSQL 36 / 40
Big Data x PostgreSQL
• O PostgreSQL está preparado para Big Data?
• Está acompanhando a evolução das novas tecnologias
Timbira - A empresa brasileira de PostgreSQL 37 / 40
O que vem por aí...
• partição overflow
• particionamento por hash
• JIT em expressões
• decodificação lógica na réplica
• plugin wal2json
Timbira - A empresa brasileira de PostgreSQL 38 / 40
PGConf.Brasil 2018
• 03 e 04 agosto de 2018
• São Paulo, SP
• Inscrições Abertas
• Chamada de Trabalhos
• http://www.pgconf.com.br
Timbira - A empresa brasileira de PostgreSQL 39 / 40
Perguntas
?
Euler Taveira de Oliveira
euler@timbira.com.br
http://www.timbira.com.br
Timbira - A empresa brasileira de PostgreSQL 40 / 40

Mais conteúdo relacionado

Mais procurados

Concepção de língua e linguagem, signo e fala..ppt
Concepção de língua e linguagem, signo e fala..pptConcepção de língua e linguagem, signo e fala..ppt
Concepção de língua e linguagem, signo e fala..pptRosiane Candido
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoJessyka Lage
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresRegis Magalhães
 
Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...
Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...
Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...Antonio Rocha de Sousa
 
Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04thomasdacosta
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
introdução a língua de sinais LIBRAS
introdução a língua de sinais LIBRASintrodução a língua de sinais LIBRAS
introdução a língua de sinais LIBRASSuenia Souza
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
 
Adaptação curricular - Aluno Surdo
Adaptação curricular - Aluno SurdoAdaptação curricular - Aluno Surdo
Adaptação curricular - Aluno Surdoivanildesobral
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulárioCentro Paula Souza
 

Mais procurados (20)

Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Apostilia orientações para as instrutoras
Apostilia orientações para as instrutorasApostilia orientações para as instrutoras
Apostilia orientações para as instrutoras
 
Concepção de língua e linguagem, signo e fala..ppt
Concepção de língua e linguagem, signo e fala..pptConcepção de língua e linguagem, signo e fala..ppt
Concepção de língua e linguagem, signo e fala..ppt
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 
Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...
Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...
Projeto de lei de criação da secretaria municipal de cultura, esporte, lazer ...
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04
 
Tabela Hash
Tabela HashTabela Hash
Tabela Hash
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Recibo
ReciboRecibo
Recibo
 
introdução a língua de sinais LIBRAS
introdução a língua de sinais LIBRASintrodução a língua de sinais LIBRAS
introdução a língua de sinais LIBRAS
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
Adaptação curricular - Aluno Surdo
Adaptação curricular - Aluno SurdoAdaptação curricular - Aluno Surdo
Adaptação curricular - Aluno Surdo
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 

Semelhante a Big Data PostgreSQL Funcionalidades

Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Euler Taveira
 
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)Fabrízio Mello
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)Fabrízio Mello
 
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) Fabrízio Mello
 
SQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceSQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceLuis Borges Gouveia
 
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosPROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosFabrízio Mello
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleFlávio Farias
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosFabrízio Mello
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLEuler Taveira
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016Roberto Fonseca
 

Semelhante a Big Data PostgreSQL Funcionalidades (20)

Pgquarrel
PgquarrelPgquarrel
Pgquarrel
 
Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10Replicação Lógica no PostgreSQL 10
Replicação Lógica no PostgreSQL 10
 
KrahoDB
KrahoDBKrahoDB
KrahoDB
 
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
NoSQL + SQL = PostgreSQL (TDC2014 - Porto Alegre/RS)
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
 
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP) NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
NoSQL + SQL = PostgreSQL (DBA Brasil 1.0 - São Paulo/SP)
 
SQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceSQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open source
 
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de DadosPROCERGS 2015-03-25: Bad Smells em Bancos de Dados
PROCERGS 2015-03-25: Bad Smells em Bancos de Dados
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Aula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLiteAula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLite
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x Oracle
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de Dados
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Otimizando a performance com in-memory no SQL 2016
Otimizando a performance com in-memory no SQL 2016Otimizando a performance com in-memory no SQL 2016
Otimizando a performance com in-memory no SQL 2016
 
Bad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de DadosBad Smells (mal cheiros) em Bancos de Dados
Bad Smells (mal cheiros) em Bancos de Dados
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQL
 
Data WareHOuse
Data WareHOuseData WareHOuse
Data WareHOuse
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016
 

Big Data PostgreSQL Funcionalidades

  • 1. Big Data e PostgreSQL Euler Taveira Brasília, 02/12/2017
  • 2. Sobre este material • esta apresentação está disponível em: https://www.slideshare.net/eulerto • 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
  • 3. Apresentação • Euler Taveira • Desenvolvedor PostgreSQL • Líder do PostgreSQL Brasil • @eulerto • http://eulerto.blogspot.com.br • Timbira • Diretor Técnico • A empresa brasileira de PostgreSQL • Consultoria • Desenvolvimento • Suporte 24x7 • Treinamento Timbira - A empresa brasileira de PostgreSQL 1 / 40
  • 4. Resumo 1 Introdução 2 Funcionalidades 3 Conclusão Timbira - A empresa brasileira de PostgreSQL 2 / 40
  • 5. Big Data: Introdução • “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 • Veracidade: dados “limpos” (significativo ao problema) • Validade: dados corretos e precisos • Volatilidade: por quanto tempo os dados são válidos? Unidades 1 ZB = 1024 EB = 1.048.576 PB = 1.073.741.824 TB Timbira - A empresa brasileira de PostgreSQL 3 / 40
  • 6. Big Data: Alguns números • 5 exabytes (2003) • 2,5 exabytes são criados por dia (2013) • 2,72 zettabytes (2012) • 4,4 zettabytes (2017) • 44 zettabytes (2020 - previsão) Timbira - A empresa brasileira de PostgreSQL 4 / 40
  • 7. Big Data: Alguns números (2) • Facebook: 2,7 bilhões likes e comentários / dia • Youtube: são carregados 300 horas de vídeo / minuto • Google: processa 20 PB / dia • Twitter: 500 milhões tweets / dia Timbira - A empresa brasileira de PostgreSQL 5 / 40
  • 8. Big Data: Benefícios • melhoria em marketing • segmentação baseada no cliente • descoberta de oportunidade de vendas • descoberta de novos mercados Timbira - A empresa brasileira de PostgreSQL 6 / 40
  • 9. Big Data: Desafios • 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 7 / 40
  • 10. Big Data: Exemplos • Varejo • Governo • Indústria • Saúde • Localização Pessoal • Web Timbira - A empresa brasileira de PostgreSQL 8 / 40
  • 11. Big Data x PostgreSQL • O PostgreSQL está preparado? • Quais funcionalidades são importantes para Big Data? Timbira - A empresa brasileira de PostgreSQL 9 / 40
  • 12. Resumo 1 Introdução 2 Funcionalidades 3 Conclusão Timbira - A empresa brasileira de PostgreSQL 10 / 40
  • 13. Tipo de Dados • hstore (8.2) • extensão • xml (8.3) • json (9.2) • jsonb (9.4) Timbira - A empresa brasileira de PostgreSQL 11 / 40
  • 14. Índices • índice parcial (7.2) • Gin (8.2) • GiST (6.0) • SP-GiST (9.2) • BRIN (9.5) Timbira - A empresa brasileira de PostgreSQL 12 / 40
  • 15. Í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 13 / 40
  • 16. Particionamento • separar dados históricos de atuais • consultas mais rápidas • partições menores • índices menores • manutenção mais rápida • expurgo • VACUUM • REINDEX Timbira - A empresa brasileira de PostgreSQL 14 / 40
  • 17. Particionamento: antes da 10 • 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 15 / 40
  • 18. Particionamento: versão 10 • sintaxe declarativa • roteamento de tuplas • particionamento por • list: uma coluna ou expressão • range: múltiplas colunas ou expressão • subpartições • tabela particionada é vazia Timbira - A empresa brasileira de PostgreSQL 16 / 40
  • 19. Paralelismo de Consultas • sequential scan (9.6) • btree index scan (10) • hash join (9.6) • nested loop (9.6) • merge join (10) • bitmap heap scan (10) • non-correlated subqueries (10) Timbira - A empresa brasileira de PostgreSQL 17 / 40
  • 20. Paralelismo de Consultas: parâmetros • max_worker_processes (9.6) • max_parallel_workers (10) • max_parallel_workers_per_gather (9.6) • min_parallel_relation_size (9.6) • min_parallel_table_scan_size (10) • min_parallel_index_scan_size (10) Timbira - A empresa brasileira de PostgreSQL 18 / 40
  • 21. Full Text Search • 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 19 / 40
  • 22. FTS x IR Process Text Search Index File Retrieve Documents Produce ranked list of matches Inverted File Ranking Algorithm Collection Document Timbira - A empresa brasileira de PostgreSQL 20 / 40
  • 23. Window Functions • 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 21 / 40
  • 24. GROUPING SETS • 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 22 / 40
  • 25. ROLLUP 1 ROLLUP ( c1 , c2 , c3 ) 2 3 GROUPING SETS ( 4 ( c1 , c2 , c3 ) , 5 ( c1 , c2 ) , 6 ( c1 ) , 7 () ) Timbira - A empresa brasileira de PostgreSQL 23 / 40
  • 26. CUBE 1 CUBE ( c1 , c2 , c3 ) 2 3 GROUPING SETS ( 4 ( c1 , c2 , c3 ) , 5 ( c1 , c2 ) , 6 ( c1 , c3 ) , 7 ( c1 ) , 8 ( c2 , c3 ) , 9 ( c2 ) , 10 ( c3 ) , 11 () ) Timbira - A empresa brasileira de PostgreSQL 24 / 40
  • 27. TABLESAMPLE • 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 25 / 40
  • 28. Foreign Data Wrapper (FDW) • 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 • join pushdown • comandos • CREATE FOREIGN DATA WRAPPER • CREATE SERVER • CREATE USER MAPPING • CREATE FOREIGN TABLE Timbira - A empresa brasileira de PostgreSQL 26 / 40
  • 29. FDW: IMPORT FOREIGN SCHEMA • 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 IMPORT FOREIGN SCHEMA f i n a n c e i r o FROM SERVER meupgsql INTO empresa ; 2 IMPORT FOREIGN SCHEMA rh EXCEPT ( cargos , v a l e t r a n s p o r t e ) INTO empresa ; 3 IMPORT FOREIGN SCHEMA adm LIMIT TO ( usuarios , t e l e f o n e s ) INTO empresa ; Timbira - A empresa brasileira de PostgreSQL 27 / 40
  • 30. Tabelas Unlogged • 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 • transformar tabelas regulares em unlogged e vice-versa 1 ALTER TABLE foo SET UNLOGGED; 2 ALTER TABLE bar SET LOGGED; Timbira - A empresa brasileira de PostgreSQL 28 / 40
  • 31. Visões Materializadas • 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 29 / 40
  • 32. Hot Standby Hot Standby principal réplica Timbira - A empresa brasileira de PostgreSQL 30 / 40
  • 33. Hot Standby • replica todo cluster • cascateamento • mesma plataforma (hardware, sistema operacional) • mesmo caminho de tablespaces • mesma versão do postgres • consulta longa na réplica gera atraso na replicação Timbira - A empresa brasileira de PostgreSQL 31 / 40
  • 34. Replicação Lógica nó A nó B Timbira - A empresa brasileira de PostgreSQL 32 / 40
  • 35. Replicação Lógica • replica mudanças • modelo publish-subscribe • replicação transacional • subscriber aplica dados na mesma ordem do que o publisher • decodificação lógica do WAL • sincronismo inicial • cascateamento Timbira - A empresa brasileira de PostgreSQL 33 / 40
  • 36. Decodificação Lógica • 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 34 / 40
  • 37. Não podemos esquecer de ... • 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 35 / 40
  • 38. Resumo 1 Introdução 2 Funcionalidades 3 Conclusão Timbira - A empresa brasileira de PostgreSQL 36 / 40
  • 39. Big Data x PostgreSQL • O PostgreSQL está preparado para Big Data? • Está acompanhando a evolução das novas tecnologias Timbira - A empresa brasileira de PostgreSQL 37 / 40
  • 40. O que vem por aí... • partição overflow • particionamento por hash • JIT em expressões • decodificação lógica na réplica • plugin wal2json Timbira - A empresa brasileira de PostgreSQL 38 / 40
  • 41. PGConf.Brasil 2018 • 03 e 04 agosto de 2018 • São Paulo, SP • Inscrições Abertas • Chamada de Trabalhos • http://www.pgconf.com.br Timbira - A empresa brasileira de PostgreSQL 39 / 40
  • 42. Perguntas ? Euler Taveira de Oliveira euler@timbira.com.br http://www.timbira.com.br Timbira - A empresa brasileira de PostgreSQL 40 / 40