© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Daniel Bento, Arquiteto de Soluções – [email protected]
02 de Junho de 2016
Começando com Redshift
AWS Summit São Paulo 2016
Agenda
• Introdução
• Provisionamento
• Carga de Dados
• Fazendo Consultas
• Monitoramento de Queries
Introdução
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
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
Provisionamento
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)
Amazon Redshift é rápido
Menos I/O
Armazenamento em colunas
Compressão de dados
Zone maps
Direct-attached storage
Blocos de dados grandes (1 MB)
analyze compression listing;
Table | Column | Encoding
---------+----------------+----------
listing | listid | delta
listing | sellerid | delta32k
listing | eventid | delta32k
listing | dateid | bytedict
listing | numtickets | bytedict
listing | priceperticket | delta32k
listing | totalprice | mostly32
listing | listtime | raw
10 | 13 | 14 | 26 |…
… | 100 | 245 | 324
375 | 393 | 417…
… 512 | 549 | 623
637 | 712 | 809 …
… | 834 | 921 | 959
10
324
375
623
637
959
Redimensionamento em poucos cliques
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
Carga de dados
Dataset está armazenado em um bucket público do S3 (redshift-
demo localizado em us-east-1).
Vários arquivos .gz
Utilizará comando copy com múltiplos arquivos em paralelo
copy lineitem from 's3://redshift-demo/tpc-
h/100/lineitem/lineitem.tbl.' CREDENTIALS
'aws_access_key_id=XXXXX;aws_secret_access_key=YYYYYY' gzip delimiter
'|';
Carga de dados – Dataset público
Tabela #ArquivosTamanho
arquivo(MB)Total(MB) #Linhas
customer 150 5.7 855 15,000,000
lineitem 600 37.6 22560 600,037,902
nation 1 987bytes 987bytes 25
orders 150 32.8 4920 150,000,000
part 200 2.8 560 20,000,000
partsupp 80 34.3 2744 80,000,000
region 1 267bytes 987bytes 5
supplier 100 0.56 56 1,000,000
Total 31,695MB 866,037,932
30.95GB
Carga de dados – Dataset público
AWS CloudCorporate Data center
Amazon S3Amazon
Redshift
Flat files
Carga de dados
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
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ó; escalelinearmente conforme vocêadiciona nós
Use múltiplos arquivos de entrada para
maximizar o throughput
Fazendo Consultas
JDBC/ODBC
Amazon Redshift
Amazon Redshift funciona com suas
ferramentas atuais de análise
ODBC/JDBC
BI ClientsRedshift
Query que localiza qual fornecedor deve ser selecionada para fazer um
pedido para uma determinada parte de uma determinada região.
Fazendo consultas – Jasper Reports
Monitoramento de performance de query
performance
Visualize os planos de execução
Muito Obrigado!