1) O documento apresenta os principais benefícios do Amazon Redshift como um data warehouse na nuvem gerenciado totalmente pela AWS, incluindo ser rápido, barato e seguro.
2) Apresenta casos de uso comuns do Redshift como análise de grandes volumes de dados de redes sociais e mostra como ele pode ser uma opção de custo efetiva.
3) Fornece orientações sobre como começar com o Redshift, incluindo provisionamento, modelagem e carga de dados para obter o máximo de desempenho.
Boas práticas de programação com Object Calisthenics
Webinar: Data warehouse na nuvem da AWS
1. Data warehouse na nuvem da AWS - Redshift
Daniel Bento, Arquiteto de Soluções, AWS
31 de Maio de 2016
2. Agenda
• Introdução
• Benefícios
• Use case
• Começando com o Redshift
• Provisionamento
• Modelagem de Dados
• Carga de Dados
• Fazendo Consultas
• Perguntas e Respostas
3. AnalisarArmanezar
Amazon
Glacier
Amazon S3
Amazon
DynamoDB
Amazon RDS,
Amazon Aurora
AWS big data portfolio
AWS Data Pipeline
Amazon
CloudSearch
Amazon EMR Amazon EC2
Amazon
Redshift
Amazon
Machine
Learning
Amazon
Elasticsearch
Service
AWS Database
Migration Service
Amazon
QuickSight
Amazon
Kinesis
Firehose
AWS Import/Export
AWS Direct
Connect
Coletar
Amazon Kinesis
Streams
4. Data warehouse relacional
Processamento paralelo massivo – MPP
Escala de petabytes
Totalmente gerenciado
Plataformas em HDD e SSD
$1,000/TB/ano; comece com $0.25/hora
Amazon
Redshift
+ rápido
+ simples
+ barato
6. Arquitetura do Amazon Redshift - MPP
Leader node
Simple SQL endpoint
Armazenamento de metadados (nome de tabelas, colunas, objetos)
Otimização do plano de execução de queries
Coordenação da execução de queries
Compute nodes
Storage local por colunas
Execução paralela/distribuída de todas as queries, carga de dados,
backups, recuperação e redimensionamento
Comece com $0.25/hora, cresça até 2 PB
DC1: SSD; escala de 160 GB até 326 TB (Dense compute)
DS2: HDD; escala de 2 TB até 2 PB (Dense storage)
Ingestion/Backup
Backup
Restore
JDBC/ODBC
10 GigE
(HPC)
8. Benefício #1: Amazon Redshift é rápido
Paralelo e distribuído
Query
Cargas
Exportação de dados
Backup
Restauração
Redimensionamento
9. Benefício #1: Amazon Redshift é rápido
Hardware otimizado para workloads de IO intensivo, 4 GB/seg/nó
Rede aprimorada, mais de 1 milhão de pacotes/seg/nó
Escolha do tipo de armazenamento e tamanho da instância
Melhorias com patchs automáticos
10. Benefício #2: Amazon Redshift é barato
Ds2 (HDD)
Pre;co por hora pelo
single node DW1.XL
Preço efetivo anual por TB
compactado
On-demand $ 0.850 $ 3,725
1 ano de reserva $ 0.500 $ 2,190
3 anos de reserva $ 0.228 $ 999
Dc1 (SSD)
Preço por hora pelo
single node DW2.L
Preço efetivo anual por TB
compactado
On-demand $ 0.250 $ 13,690
1 ano de reserva $ 0.161 $ 8,795
3 anos de reserva $ 0.100 $ 5,500
Preço é simples
Número de nós x preço/hora
Sem cobranças pelo leader
node
Sem custos iniciais
Pague sob demanda
11. Benefício #3: Redshift é totalmente gerenciado
Backup contínuo/incremental
Múltiplas cópias dentro do cluster
Backups contínuos e incrementais
para o Amazon S3
Backups contínuos e incrementais
entre regiões
Streaming restore
Amazon S3
Amazon S3
Region 1
Region 2
12. Benefício #3: Redshift é totalmente gerenciado
Amazon S3
Amazon S3
Region 1
Region 2
Tolerância a falhas
Falhas de disco
Falhas do nó
Falhas de rede
Falhas da Zona de
disponibilidade/Região
13. Benefício #4: Segurança está embutida
• Carga criptografada a partir do S3
• SSL para segurança de dados em trânsito
• Isolamento de redes com a Amazon VPC
• Criptografia para segurança de dados em
repouso
• Todos os blocos no disco e no S3 critografados
• Block key, cluster key, master key (AES-256)
• Suporte para HSM on-premise & AWS
CloudHSM
• Log de auditoria e integração com o AWS
CloudTrail
• SOC 1/2/3, PCI-DSS, FedRAMP, BAA
10 GigE
(HPC)
Ingestion
Backup
Restore
Customer VPC
Internal
VPC
JDBC/ODBC
14. Benefício #5: Inovamos rapidamente
Mais de 100 novas features desde o lançamento
Releases a cada duas semanas
Aplicação automática de patchs
Service Launch (2/14)
PDX (4/2)
Temp Credentials (4/11)
DUB (4/25)
SOC1/2/3 (5/8)
Unload Encrypted Files
NRT (6/5)
JDBC Fetch Size (6/27)
Unload logs (7/5)
SHA1 Builtin (7/15)
4 byte UTF-8 (7/18)
Sharing snapshots (7/18)
Statement Timeout (7/22)
Timezone, Epoch, Autoformat (7/25)
WLM Timeout/Wildcards (8/1)
CRC32 Builtin, CSV, Restore Progress
(8/9)
Resource Level IAM (8/9)
PCI (8/22)
UTF-8 Substitution (8/29)
JSON, Regex, Cursors (9/10)
Split_part, Audit tables (10/3)
SIN/SYD (10/8)
HSM Support (11/11)
Kinesis EMR/HDFS/SSH copy,
Distributed Tables, Audit
Logging/CloudTrail, Concurrency, Resize
Perf., Approximate Count Distinct, SNS
Alerts, Cross Region Backup (11/13)
Distributed Tables, Single Node Cursor
Support, Maximum Connections to 500
(12/13)
EIP Support for VPC Clusters (12/28)
New query monitoring system tables and
diststyle all (1/13)
Redshift on DW2 (SSD) Nodes (1/23)
Compression for COPY from SSH, Fetch
size support for single node clusters, new
system tables with commit stats,
row_number(), strotol() and query
termination (2/13)
Resize progress indicator & Cluster
Version (3/21)
Regex_Substr, COPY from JSON (3/25)
50 slots, COPY from EMR, ECDHE
ciphers (4/22)
3 new regex features, Unload to single
file, FedRAMP(5/6)
Rename Cluster (6/2)
Copy from multiple regions,
percentile_cont, percentile_disc (6/30)
Free Trial (7/1)
pg_last_unload_count (9/15)
AES-128 S3 encryption (9/29)
UTF-16 support (9/29)
15. Benefício #6: Redshift é poderoso
• Approximate functions
• User defined functions (python)
• Integrado com Python Standard
Library, incluindo SciPy e
NumPy
• Machine learning
• Data science
16. Benefício #7: Amazon Redshift possui um
abrangente ecossistema
Data integration Systems integratorsBusiness intelligence
17. Benefício #8: Arquitetura orientada a serviço
DynamoDB
EMR
S3
EC2/SSH
RDS/Aurora
Amazon
Redshift
Amazon Kinesis
Amazon ML
Data Pipeline
CloudSearch
Amazon
Mobile
Analytics
28. Redimensionamento
• Redimensionamento com o cluster
online (somente leitura)
• Um novo cluster é provisionado em
background
• Cópia de dados ocorre em paralelo
nó a nó
• Somente é cobrado pelo cluster de
origem
32. Single Column
• Table is sorted by 1 column
Date Region Country
2-JUN-2015 Oceania New Zealand
2-JUN-2015 Asia Singapore
2-JUN-2015 Africa Zaire
2-JUN-2015 Asia Hong Kong
3-JUN-2015 Europe Germany
3-JUN-2015 Asia Korea
[ SORTKEY ( date ) ]
• Melhor para:
• Queries que usam a primeira coluna (i.e. date) como filtro
primário
• Pode acelerar joins e group bys
• Mais rápida para o VACUUM
33. Compound
• Tabela é ordenada pela primeira coluna, depois pela
segunda coluna e assim por diante.
Date Region Country
2-JUN-2015 Africa Zaire
2-JUN-2015 Asia Korea
2-JUN-2015 Asia Singapore
2-JUN-2015 Europe Germany
3-JUN-2015 Asia Hong Kong
[ SORTKEY COMPOUND ( date, region, country) ]
• Melhor para:
• Queries que usam a primeira coluna como filtro primário, e depois
outras colunas
• Pode acelerar joins e group bys
• Mais lenta para o VACUUM
34. Interleaved
• Peso igual para cada coluna
Date Region Country
2-JUN-2015 Africa Zaire
3-JUN-2015 Asia Singapore
2-JUN-2015 Asia Korea
2-JUN-2015 Europe Germany
3-JUN-2015 Asia Hong Kong
2-JUN-2015 Asia Korea
[ SORTKEY INTERLEAVED ( date, region, country) ]
• Melhor para:
• Queries que usam diferentes colunas como filtro
• Queries ficam mais rápidas quanto mais colunas são utilizadas
como filtro
• Mais lenta para o VACUUM
36. ID Gender Name
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M James White
306 F Lisa Green
2
3
4
ID Gender Name
101 M John Smith
306 F Lisa Green
ID Gender Name
292 F Jane Jones
209 M James White
ID Gender Name
139 M Peter Black
164 M Brian Snail
ID Gender Name
446 M Pat Partridge
658 F Sarah Cyan
Round
Robin
DISTSTYLE EVEN
37. ID Gender Name
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M James White
306 F Lisa Green
Hash
Function
ID Gender Name
101 M John Smith
306 F Lisa Green
ID Gender Name
292 F Jane Jones
209 M James White
ID Gender Name
139 M Peter Black
164 M Brian Snail
ID Gender Name
446 M Pat Partridge
658 F Sarah Cyan
DISTSTYLE KEY
38. ID Gender Name
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M James White
306 F Lisa Green
Hash
Function
ID Gender Name
101 M John Smith
139 M Peter Black
446 M Pat Partridge
164 M Brian Snail
209 M James White
ID Gender Name
292 F Jane Jones
658 F Sarah Cyan
306 F Lisa Green
DISTSTYLE KEY
39. ID Gender Name
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M James White
306 F Lisa Green
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M Lisa Green
306 F James White
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M Lisa Green
306 F James White
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M Lisa Green
306 F James White
101 M John Smith
292 F Jane Jones
139 M Peter Black
446 M Pat Partridge
658 F Sarah Cyan
164 M Brian Snail
209 M Lisa Green
306 F James White
ALL
DISTSTYLE ALL
40. • KEY
• Tabelas fato grandes
• Tabelas dimensão grandes
• ALL
• Tabelas dimensão de tamanho médio (1K – 2M)
• EVEN
• Tabelas sem joins ou group by
• Tabelas dimensão pequenas (<1000)
45. Use o comando COPY
Cada slice pode carregar um
arquivo por vez
Um único arquivo significa que
somente um slice está
carregando dados
Ao invés de 100MB/s, você
somente consegue 6.25MB/s
Use múltiplos arquivos de entrada para
maximizar o throughput
46. Use o comando COPY
Você precisa tantos arquivos
quanto o número de slices
Com 16 arquivos, todos os slides
estão trabalhando, assim você
maximiza o throughput
Consiga 100MB/s por nó; escale
linearmente conforme você
adiciona nós
Use múltiplos arquivos de entrada para
maximizar o throughput
53. Outros recursos
Daniel Bento | dbento@amazon.com |
Páginas de detalhes
• http://aws.amazon.com/redshift
• https://aws.amazon.com/marketplace/redshift/
Melhores Práticas
• http://docs.aws.amazon.com/redshift/latest/dg/c_loading-data-best-practices.html
• http://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html
• http://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html
AWS Summit São Paulo – 02 de Junho de 2016
• https://aws.amazon.com/pt/summits/sao-paulo/