SlideShare uma empresa Scribd logo
Arquitetando
Soluções de Dados
com PostgreSQL
Raul Oliveira
Especialista em Bancos de Dados
@rauldoliveira
raul.oliveira@tecnisys.com.br
raul.oliveira@msn.com
✓ Meetup Brasília DataGroup
http://www.meetup.com/pt-BR/Brasilia-DataGroup/
✓ SQLServerDF
http://groups.google.com/group/sqlserverdf
✓ MTAC
http://www.mtac.org.br
Agenda da Apresentação
• Cenário de Dados Atual
• Reflexão sobre a diversidade de
operação
• Principais argumentos usados para
ambientes com e sem open source
• Destaques do que podemos fazer
• Principais características de um
ambiente Open Source
• Ver as alternativas para gerar valor
para sua empresa com Open!
Arquitetura
Consiste na definição dos componentes, suas propriedades externas, e
seus relacionamentos com outros componentes. O termo também se
refere à documentação da arquitetura sistema.
Necessidade aquece mercados e tecnologias
Reações Comuns do Mercado Leigo ao Open
Source
• Licença de Software
• Banco de dados é produto X
O que mensurar ao aderir a novas tecnologias?
Necessidade do
cliente
Preço
Funcionalidade
Analítica
Conjunto de
Ferramentas
Requerimentos
de
Processamento
Tolerância à falha
Capacidade de
extensibilidade
Maturidade
Numero de
clientes
Performance
Opções de
Deploy
Latência
Feedback de
Clientes
Requerimentos
de Hardware
Batch / Real Time
/ Streaming /
Transacional
Tamanho da
comunidade
[não][semi]-
estruturado
Opções de
otimização
Portabilidade
Penetração de
mercado
Visibilidade
Disponibilidade
de Profissionais
Disponibilidade
de Empresas
Conhecimento
da Equipe
Material para
estudo
Documentação Integração Mobilidade
O que pode ser feito com o dado?
Extraído Exportado Importado Migrado Validado Editado
Atualizado Limpo Transformado Convertido Integrado Segregado
Agregado Referenciado Revisado Relatado Analisado Garimpado
Salvo Recuperado Arquivado Restaurado Eliminado Persistido
E o que fazemos*?
• Backup (para ambientes bem maduros).
• Restart.
Quais as preocupações em um ambiente de
dados?
Arquitetura
Desenvolvimento
Documentação
e Conteúdo
Dados /
Metadados /
Qualidade
Operações
Segurança
DW / BI /
Analytics
Competição eterna
Custo
PerformanceSegurança
E porque PostgreSQL?
• Robusto
• Estável
• Maduro
• Não é comercial! ☺
• Open Source*
• Comunidade forte
• Empresas de suporte
• Garantia de produto longevo
https://www.postgresql.org/download/linux/redhat/
yum install pgdg-centos11-11-2.noarch.rpm
yum install postgresql11 ou
yum install postgresql11-server
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
psql
=# ALTER USER postgres WITH ENCRYPTED PASSWORD '123456';
=# ALTER SYSTEM SET listen_addresses = '*';
echo "host all all 0.0.0.0/0 md5" >> $PGDATA/pg_hba.conf
systemctl restart postgresql-11
Engine
• WAL
• MVCC
• Paralelismo
• Particionamento
• TOAST
HADR
•Dump
•Backup
• Físico
• Offline
• Online
• Diferencial
• Lógico
HADR
•Replicação
• Física
• Streaming
• keep_segments
• Slot Replication
• Lógica
Linguagem
• SQL
• Excelente Query Optimizer
• plpgsql
• Python
• ...
https://www.sql-workbench.eu/dbms_comparison.html
Features
• JSONB
• EnterpriseDB (2016) :
Features
• JSONB
• GIN
• Generalized Inverted Index
• JSON
• Dados Multimensionais
• Arrays
Features
• JSONB
• GIN
• GIST
• Generalized Search Tree
• Tipos Geométricos
• Tipos Range
• hstore(key/value)
• Generalized (suporta proximidade)
• SP-Gist
SELECT opfname FROM pg_opfamily, pg_am
WHERE opfmethod = pg_am.oid AND amname = ’gist’
ORDER BY 1;
Features
• JSONB
• GIN
• GIST
• BRIN
Features
• JSONB
• GIN
• GIST
• BRIN
• FDW
FDW
• Suporte a herança
• Push-down Optimization
• Operator e Function
• Join
• Predicate
• Aggregate
• Triggers e CKs
• https://wiki.postgresql.org/wiki/Foreign_data_wrappers
Features
• JSONB
• GIN
• GIST
• BRIN
• FDW
yum install postgresql10-contrib.x86_64
-> Cria usuário no source
-> Cria tabelas
-> Grant no source
-> Modificar hba.conf no source
-> Cria extension fdw no target
=# CREATE EXTENSION postgres_fdw;
-> Grant no target
=# GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO app_user;
=# GRANT USAGE ON FOREIGN SERVER hr TO app_user;
-> Cria Server Definition
=> CREATE SERVER hr
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (dbname 'postgres', host 'serversource', port '5432');
-> Cria User Mapping
=> CREATE USER MAPPING for app_user
SERVER ServerSource
OPTIONS (user 'fdw_user', password '123456');
-> Cria Foreing Table
=> CREATE FOREIGN TABLE employee
(id int, name character varying(20), desc character varying(20))
SERVER serversource
OPTIONS (schema_name 'public', table_name 'employee');
Cenários - OLTP
• PGBouncer
• Bouncer
• PGPool
• Roteamento de Consultas
• Cache
Cenários - OLTP
• 3FN ?
• JSON
• XML
• Fato
Cenários - OLTP
• 3FN ?
• JSON
• XML
• Fato
• Distribuído
• Sharding
• Misto
• Hadoop
• MongoDB
Cenários - NoSQL
• JSONB
• MongoDB, CouchDB, Cassandra...
• Hstore (chave, valor)
• Redis, Dynamo, MemcacheDB
• GIN, GIST
• Json, FTS...
• Hash Index
• Baixa seletividade
• Programação Assíncrona-listen/notify
• RabbitMQ, ActiveMQ...
• Unlogged Tables
• Synchronous Commit = OFF
Cenários - OLAP
• Features:
• Paralelismo
• Modelagem
• Particionamento
• Shared Buffer
• Memória Local
Partição 1 Partição 2 Partição 3 Partição 4
Operador
Junção
Query
Tabela
Cenários - OLAP
• Features
• Citus
Cenários - OLAP
• Features
• Citus
• GreenPlum
Conclusão
• Pense macro o seu ambiente
• Open Source cuidará do seu ambiente!
• Explore as várias óticas do seu ambiente
• Pense no ciclo de vida do seu dado e de onde seu dado está.
Aplicações e Hardware que o tocam (Da visão de um DBA).
• Se você fala muito mal de um produto, há grandes chances de você
não conhecer ele bem. Estude.
@rauldoliveira
raul.oliveira@msn.com
Muito Obrigado!

Mais conteúdo relacionado

Mais procurados

planejamento pre-instalacao win server 2012
 planejamento pre-instalacao win server 2012 planejamento pre-instalacao win server 2012
planejamento pre-instalacao win server 2012
Yan Ferrari Ferreira
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
gsroma
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
LelyBarros
 
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureDBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
Franky Weber Faust
 
Replicação e escalabidade do ZODB com RelStorage
Replicação e escalabidade do ZODB com RelStorageReplicação e escalabidade do ZODB com RelStorage
Replicação e escalabidade do ZODB com RelStorage
Ruda Filgueiras
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
Zabbix BR
 
HTML5 - Web storage
HTML5 - Web storageHTML5 - Web storage
HTML5 - Web storage
Alexandre Porfírio
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
Daker Fernandes
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
Christiano Anderson
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
Eiti Kimura
 
Elasticsearch como gerenciar seus logs com logstash e kibana
Elasticsearch   como gerenciar seus logs com logstash e kibanaElasticsearch   como gerenciar seus logs com logstash e kibana
Elasticsearch como gerenciar seus logs com logstash e kibana
Luiz Henrique Zambom Santana
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
César Augusto Pessôa
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
Rodrigo Zaccara
 
Pgday campinas 2015
Pgday campinas 2015Pgday campinas 2015
Pgday campinas 2015
Anderson Abreu
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Zabbix BR
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDB
Thiago Avelino
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
Jefferson Martins de Andrade
 
Android forensics the hard work
Android forensics   the hard workAndroid forensics   the hard work
Android forensics the hard work
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
Vinícius Schmidt
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento
Marcos Thomaz
 

Mais procurados (20)

planejamento pre-instalacao win server 2012
 planejamento pre-instalacao win server 2012 planejamento pre-instalacao win server 2012
planejamento pre-instalacao win server 2012
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureDBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
 
Replicação e escalabidade do ZODB com RelStorage
Replicação e escalabidade do ZODB com RelStorageReplicação e escalabidade do ZODB com RelStorage
Replicação e escalabidade do ZODB com RelStorage
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
 
HTML5 - Web storage
HTML5 - Web storageHTML5 - Web storage
HTML5 - Web storage
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
Elasticsearch como gerenciar seus logs com logstash e kibana
Elasticsearch   como gerenciar seus logs com logstash e kibanaElasticsearch   como gerenciar seus logs com logstash e kibana
Elasticsearch como gerenciar seus logs com logstash e kibana
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Pgday campinas 2015
Pgday campinas 2015Pgday campinas 2015
Pgday campinas 2015
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDB
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
 
Android forensics the hard work
Android forensics   the hard workAndroid forensics   the hard work
Android forensics the hard work
 
pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento
 

Semelhante a Arquitetando Soluções de Dados com PostgreSQL

Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
Kinn Julião
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
Ari Stopassola Junior
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
Marcus Vinicius Miguel Pedro
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Marcos William Valentini
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Marcos William Valentini
 
Sql proficiente
Sql proficienteSql proficiente
Sql proficiente
Leonardo Cezar
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
Pedro Fernandes Vieira
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Thiago Cifani
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
MySQL Brasil
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
Marcus Vinicius Miguel Pedro
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
Alessandro Binhara
 
Quick Form DataBase (QFDB)
Quick Form DataBase (QFDB)Quick Form DataBase (QFDB)
Quick Form DataBase (QFDB)
Everaldo Wanderlei Uavniczak
 
Pgquarrel
PgquarrelPgquarrel
Pgquarrel
Euler Taveira
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandes
joanio trade
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
Paulo Victor Gomes
 
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosSQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
Dirceu Resende
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
Fabrízio Mello
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Comunidade NetPonto
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
Edgar Silva
 
Monitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BIMonitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BI
Sulamita Dantas
 

Semelhante a Arquitetando Soluções de Dados com PostgreSQL (20)

Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Sql proficiente
Sql proficienteSql proficiente
Sql proficiente
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Quick Form DataBase (QFDB)
Quick Form DataBase (QFDB)Quick Form DataBase (QFDB)
Quick Form DataBase (QFDB)
 
Pgquarrel
PgquarrelPgquarrel
Pgquarrel
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandes
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosSQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo Costa
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Monitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BIMonitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BI
 

Arquitetando Soluções de Dados com PostgreSQL

  • 2. Raul Oliveira Especialista em Bancos de Dados @rauldoliveira raul.oliveira@tecnisys.com.br raul.oliveira@msn.com ✓ Meetup Brasília DataGroup http://www.meetup.com/pt-BR/Brasilia-DataGroup/ ✓ SQLServerDF http://groups.google.com/group/sqlserverdf ✓ MTAC http://www.mtac.org.br
  • 3.
  • 4. Agenda da Apresentação • Cenário de Dados Atual • Reflexão sobre a diversidade de operação • Principais argumentos usados para ambientes com e sem open source • Destaques do que podemos fazer • Principais características de um ambiente Open Source • Ver as alternativas para gerar valor para sua empresa com Open!
  • 5. Arquitetura Consiste na definição dos componentes, suas propriedades externas, e seus relacionamentos com outros componentes. O termo também se refere à documentação da arquitetura sistema.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Reações Comuns do Mercado Leigo ao Open Source • Licença de Software • Banco de dados é produto X
  • 12. O que mensurar ao aderir a novas tecnologias? Necessidade do cliente Preço Funcionalidade Analítica Conjunto de Ferramentas Requerimentos de Processamento Tolerância à falha Capacidade de extensibilidade Maturidade Numero de clientes Performance Opções de Deploy Latência Feedback de Clientes Requerimentos de Hardware Batch / Real Time / Streaming / Transacional Tamanho da comunidade [não][semi]- estruturado Opções de otimização Portabilidade Penetração de mercado Visibilidade Disponibilidade de Profissionais Disponibilidade de Empresas Conhecimento da Equipe Material para estudo Documentação Integração Mobilidade
  • 13. O que pode ser feito com o dado? Extraído Exportado Importado Migrado Validado Editado Atualizado Limpo Transformado Convertido Integrado Segregado Agregado Referenciado Revisado Relatado Analisado Garimpado Salvo Recuperado Arquivado Restaurado Eliminado Persistido
  • 14. E o que fazemos*? • Backup (para ambientes bem maduros). • Restart.
  • 15. Quais as preocupações em um ambiente de dados? Arquitetura Desenvolvimento Documentação e Conteúdo Dados / Metadados / Qualidade Operações Segurança DW / BI / Analytics
  • 17. E porque PostgreSQL? • Robusto • Estável • Maduro • Não é comercial! ☺ • Open Source* • Comunidade forte • Empresas de suporte • Garantia de produto longevo https://www.postgresql.org/download/linux/redhat/ yum install pgdg-centos11-11-2.noarch.rpm yum install postgresql11 ou yum install postgresql11-server /usr/pgsql-11/bin/postgresql-11-setup initdb systemctl enable postgresql-11 systemctl start postgresql-11 psql =# ALTER USER postgres WITH ENCRYPTED PASSWORD '123456'; =# ALTER SYSTEM SET listen_addresses = '*'; echo "host all all 0.0.0.0/0 md5" >> $PGDATA/pg_hba.conf systemctl restart postgresql-11
  • 18. Engine • WAL • MVCC • Paralelismo • Particionamento • TOAST
  • 19. HADR •Dump •Backup • Físico • Offline • Online • Diferencial • Lógico
  • 20. HADR •Replicação • Física • Streaming • keep_segments • Slot Replication • Lógica
  • 21. Linguagem • SQL • Excelente Query Optimizer • plpgsql • Python • ... https://www.sql-workbench.eu/dbms_comparison.html
  • 23. Features • JSONB • GIN • Generalized Inverted Index • JSON • Dados Multimensionais • Arrays
  • 24. Features • JSONB • GIN • GIST • Generalized Search Tree • Tipos Geométricos • Tipos Range • hstore(key/value) • Generalized (suporta proximidade) • SP-Gist SELECT opfname FROM pg_opfamily, pg_am WHERE opfmethod = pg_am.oid AND amname = ’gist’ ORDER BY 1;
  • 26. Features • JSONB • GIN • GIST • BRIN • FDW FDW • Suporte a herança • Push-down Optimization • Operator e Function • Join • Predicate • Aggregate • Triggers e CKs • https://wiki.postgresql.org/wiki/Foreign_data_wrappers
  • 27. Features • JSONB • GIN • GIST • BRIN • FDW yum install postgresql10-contrib.x86_64 -> Cria usuário no source -> Cria tabelas -> Grant no source -> Modificar hba.conf no source -> Cria extension fdw no target =# CREATE EXTENSION postgres_fdw; -> Grant no target =# GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO app_user; =# GRANT USAGE ON FOREIGN SERVER hr TO app_user; -> Cria Server Definition => CREATE SERVER hr FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname 'postgres', host 'serversource', port '5432'); -> Cria User Mapping => CREATE USER MAPPING for app_user SERVER ServerSource OPTIONS (user 'fdw_user', password '123456'); -> Cria Foreing Table => CREATE FOREIGN TABLE employee (id int, name character varying(20), desc character varying(20)) SERVER serversource OPTIONS (schema_name 'public', table_name 'employee');
  • 28. Cenários - OLTP • PGBouncer • Bouncer • PGPool • Roteamento de Consultas • Cache
  • 29. Cenários - OLTP • 3FN ? • JSON • XML • Fato
  • 30. Cenários - OLTP • 3FN ? • JSON • XML • Fato • Distribuído • Sharding • Misto • Hadoop • MongoDB
  • 31. Cenários - NoSQL • JSONB • MongoDB, CouchDB, Cassandra... • Hstore (chave, valor) • Redis, Dynamo, MemcacheDB • GIN, GIST • Json, FTS... • Hash Index • Baixa seletividade • Programação Assíncrona-listen/notify • RabbitMQ, ActiveMQ... • Unlogged Tables • Synchronous Commit = OFF
  • 32. Cenários - OLAP • Features: • Paralelismo • Modelagem • Particionamento • Shared Buffer • Memória Local Partição 1 Partição 2 Partição 3 Partição 4 Operador Junção Query Tabela
  • 33. Cenários - OLAP • Features • Citus
  • 34. Cenários - OLAP • Features • Citus • GreenPlum
  • 35. Conclusão • Pense macro o seu ambiente • Open Source cuidará do seu ambiente! • Explore as várias óticas do seu ambiente • Pense no ciclo de vida do seu dado e de onde seu dado está. Aplicações e Hardware que o tocam (Da visão de um DBA). • Se você fala muito mal de um produto, há grandes chances de você não conhecer ele bem. Estude.