SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hugo Rozestraten, Solutions Architect, AWS
Setembro de 2016, Rio de Janeiro
Melhores práticas de data warehouse no
Amazon Redshift
Arquitetura do Redshfit
Ingestão
• COPY
• Primary keys e
arquivos de Manifesto
• Higienização de Dados
• Novas features para
ingestão
• Restore para Tabelas
• Auto
Compressão/Compres
são por sort key
Features
• Novas Funções
• UDFs
• Interleaved sort keys
Dicas de Migração
Otimização de Ambientes
• Cargas de trabalho
• WLM
• Console
O que esperar desta Sessão
Rápido, Simples, data warehouse escalável a PB, por menos de $1,000/TB/ano
Amazon Redshift
Amazon Redshift entrega Performance
“[Amazon] Redshift is twenty times faster than Hive.” (5x–20x reduction in query times) link
“Queries that used to take hours came back in seconds. Our analysts are orders of magnitude
more productive.” (20x–40x reduction in query times) link
“…[Amazon Redshift] performance has blown away everyone here (we generally see 50–
100x speedup over Hive).” link
“Team played with [Amazon] Redshift today and concluded it is ****** awesome. Un-indexed
complex queries returning in < 10s.”
“Did I mention it's ridiculously fast? We'll be using it immediately to provide our analysts
an alternative to Hadoop.”
“We saw… 2x improvement in query times.”
Channel “We regularly process multibillion row datasets and we do that in a matter of hours.” link
Arquitetura do Amazon Redshift
10 GigE
(HPC)
Ingestão
Backup
Restore
JDBC/ODBC
Visão aprofundada na arquitetura dos Nós de
Computação (”Compute Nodes”)
Leader Node
Dense compute nodes
Large
• 2 slices/cores
• 15 GB RAM
• 160 GB SSD
8XL
• 32 slices/cores
• 244 GB RAM
• 2.56 TB SSD
Dense storage nodes
X-large
• 2 slices/4 cores
• 31 GB RAM
• 2 TB HDD
8XL
• 16 slices/ 36 cores
• 244 GB RAM
• 16 TB HDD
Ingestão
Uso de vários arquivos para maximizar a carga
Comando COPY
Cada ”slice” carrega um arquivo
por vez
Um arquivo único significa
apenas um ”slice” carregando
dados
Ao invés de 100 MB/sec,
você obtém somente 6.25
MB/sec
Uso de vários arquivos para maximizar a carga
Comando COPY
Você precisa de pelo menos o
mesmo número de arquivos do
que slices
Com 16 arquivos de entrada
todas as ”slices” estarão
trabalhando para maximizar a
carga
Obtenha 100 MB/sec por nó;
escale de maneira linear
”Primary keys” e arquivos de manifesto
Amazon Redshift não força a limitação da primary key
• Se carregar várias vezes o mesmo dado o Redshift não vai acusar
erro;
• Se declarar primary keys para DML, o otimizador vai entender que
os registros são únicos;
Use arquivos de manifesto para controlar exatamente o que é
carregado e o que fazer em caso de falta de arquivos
• Defina um manifesto JSON no Amazon S3;
• Assegura que o cluster carregue exatamente o que quer;
Higienização de Dados
Analize tabelas regularmente
• A cada carga para colunas populares
• Semanalmente para todas as colunas
• Veja a SVV_TABLE_INFO(stats_off) para dados
”stale”
• Veja stl_alert_event_log para falta de estatísticas
Realize Vacuum nas tabelas regularmente
• Semanalmente é um bom alvo
• Número de unsorted blocks como gatilho
• Veja SVV_TABLE_INFO(unsorted, empty)
• Transações ativas ou abertas podem impedir o
Vacuum. Veja na SVV_TRANSACTIONS
• Você pode executar o vacuum para um
”threshold PERCENT”
Novas Features – Ingestão
Opção de Backup no CREATE TABLE
• Para uso em Staging e carga de dados
• Tabela será excluída em um restore
Extensão de ”Sorted” Automatic COPY/INSERT
• Tabela é 100% ordenada e possui apenas uma sortkey (ex. date ou timtestamp)
• Você adiciona linhas na tabela toda (sempre após as existentes, distribuídas por
sortkey)
Alter Table Append
• Adiciona linhas em uma tabela movendo dados de uma tabela source existente
• Dados em uma tabela de origem são movimentados combinando com os dados na
destino.
• Não pode rodar ALTER TABLE APPEND dentro de um bloco de transações (BEGIN
... END)
Novas Features - Table Restore
aws redshift restore-table-from-cluster-snapshot --cluster-identifier mycluster-example
--new-table-name my-new-table
--snapshot-identifier my-snapshot-id
--source-database-name sample-database
--source-table-name my-source-table
Compressão automática (quase sempre positiva)
Melhor performance e diminui custo
Amostra de dados quando executado um comando COPY em tabela
vazia
• Amostra de até 100,000 rows e escolhe o melhor Encoding
Processo de ETL regular utilizando tabelas de staging ou temporárias:
Desligue a compressão automática
• Use análise de compressão para determinar o encoding correto
• Prepare seus DML (baked) com os encodings corretos
Tenha cuidado com suas sort keys
Zone maps grava min/max por bloco
Após sabermos quais blocos contém uma
sequência de dados, sabemos quais linhas não
buscarmos
Alta compressão significa muitas linhas por
bloco
Pode varrer mais blocos do que precisaria
Se sua sort keys comprime significativamente
suas colunas, você pode escolher não
comprimir sua sortkey column(s)
Veja a SVV_TABLE_INFO(skew_sortkey1)
COL1 COL2
Mantenha as colunas tão estreitas quanto
possível
• Buffers são alocados baseado na
declaração da largura das colunas;
• Colunas mais largas sem necessidade
desperdiçam memória;
• Menos linhas cabem na memória mais
probabilidade de gravação em disco
• Veja a
SVV_TABLE_INFO(max_varchar)
Outras Features recentes
Novas funções SQL
Nós adicionamos funções SQL regularmente para aumentar a capacidade de
execução de queries no Amazon Redshift
Adicionadas 25+ funções:
• LISTAGG
• [APPROXIMATE] COUNT
• DROP IF EXISTS, CREATE IF NOT EXISTS
• REGEXP_SUBSTR, _COUNT, _INSTR, _REPLACE
• PERCENTILE_CONT, _DISC, MEDIAN
• PERCENT_RANK, RATIO_TO_REPORT
Continuaremos realizado mas também queremos habilitar que escreva as suas
Funções definidas pelo usuário (UDFs)
Pode escrever UDFs usando Python 2.7
• Sintaxe idêntica a do PostgreSQL UDF
• Chamadas de sistema e rede UDFs não são permitidas
Vem com Pandas, NumPy, e SciPy pre-instalados
• Você pode importar sua biblioteca para funções mais
complexas
Exemplo de UDF
CREATE FUNCTION f_hostname (VARCHAR url)
RETURNS varchar
IMMUTABLE AS $$
import urlparse
return urlparse.urlparse(url).hostname
$$ LANGUAGE plpythonu;
Exemplo de UDF
http://www.looker.com/blog/amazon-redshift-
user-defined-functions
https://www.periscope.io/blog/redshift-user-
defined-functions-python.html
1-click deployment to launch, on
multiple regions around the world
Pay-as-you-go pricing with no long
term contracts required
Advanced Analytics Business IntelligenceData Integration
Interleaved sort keys (chaves
de ordenação intercaladas)
Chaves de ordenação compostas ( Compound sort keys )
Registros são armazenados
em blocos no Amazon
Redshift
Nesta ilustração assumimos
que 4 registros preenchem
um bloco
Registros para um dado
cust_id ficam em um bloco
Contudo, registros para um
dado prod_id ficam
espalhados em vários
blocos
1
1
1
1
2
3
4
1
4
4
4
2
3
4
4
1
3
3
3
2
3
4
3
1
2
2
2
2
3
4
2
1
1 [1,1] [1,2] [1,3] [1,4]
2 [2,1] [2,2] [2,3] [2,4]
3 [3,1] [3,2] [3,3] [3,4]
4 [4,1] [4,2] [4,3] [4,4]
1 2 3 4
prod_id
cust_id
cust_id prod_id other columns blocks
Select sum(amt)
From big_tab
Where cust_id = (1234);
Select sum(amt)
From big_tab
Where prod_id = (5678);
1 [1,1] [1,2] [1,3] [1,4]
2 [2,1] [2,2] [2,3] [2,4]
3 [3,1] [3,2] [3,3] [3,4]
4 [4,1] [4,2] [4,3] [4,4]
1 2 3 4
prod_id
cust_id
Chaves de ordenação intercaladas (Interleaved sort keys)
Registros para um dado
cust_id espalhados em
2 blocos
Registros para um dado
prod_id separados em 2
blocos
Dados são distribuidos
com pesos iguais para
ambos
1
1
2
2
2
1
2
3
3
4
4
4
3
4
3
1
3
4
4
2
1
2
3
3
1
2
2
4
3
4
1
1
cust_id prod_id other columns blocks
Uso
Nova palavra chave INTERLEAVED para Sortkeys
• Sintaxe anterior continua funcionando
• Pode escolher até 8 colunas para incluir e selecionar por qualquer uma
Não precisa mudar as queries
Só estamos iniciando
• Benefícios significantes; Carga pode ser penalizada
• Veja a SVV_INTERLEAVED_COLUMNS(interleaved_skew) para decidir sobre VACUUM REINDEX
• Um valor maior que 5 indica necessidade de VACUUM REINDEX
[[ COMPOUND | INTERLEAVED ] SORTKEY ( column_name [, ...] ) ]
Migrando cargas de trabalho
existentes
Forklift = BAD
Responda
Por que você faz isto hoje?
• Muitas vezes, usuários nem sabem
Qual a necessidade de negócio?
• Muitas vezes, não tem relação com o que faz na prática
• Talvez você se beneficie de outro serviço AWS
No Amazon Redshift
Updates são delete + insert da linha
• Deletes marcam para deleção
Blocos são imutáveis
• Espaço mínimo usado é um bloco por coluna, por slice
Commits são custosos
• 4 GB write na 8XL por nó
• Espelha o dicionário INTEIRO
• Serializado pelo tamanho do cluster
No Amazon Redshift
• Nem todas as agregações são criadas da mesma forma
• Pre-agregação pode ajudar
• Ordenação no grupo importa
• Concorrência deve ser baixa para maior throughput
• Camada de Cache para dashboards é recomendada
• WLM separa RAM para queries. Use múltiplos controles
para melhor performance.
Workload Management (WLM)
Concorrência e memória podem agora ser alteradas dinamicamente
Você pode ter valores distintos para tempo de leitura e tempo de carga
Use wlm_apex_hourly.sql para monitorar a pressão das filas
New Feature – WLM Queue Hopping
Obter meta-dados de resultados
Usando SQL ou JDBC, você pode obter os nomes das
colunas
ResultSet rs = stmt.executeQuery("SELECT * FROM emp");
ResultSetMetaData rsmd = rs.getMetaData();
String name = rsmd.getColumnName(1);
Descarga de Dados Por enquanto não provê metadados
• Use SELECT top 0…
• Ao invés de adicionar0=1 na sua cláusula WHERE
Ferramentas Open-source
https://github.com/awslabs/amazon-redshift-utils
Admin scripts
• Diagnóstico do cluster
Admin views
• Gerenciamento e geração de DDLs.
Column encoding utility
• Permite selecionar o melhor encoding
Analyze and vacuum utility
• Automatiza VACUUM e operações de ANALYZE
Unload and copy utility
• Ajuda a migrar entre Amazon Redshift e outros bancos de dados
Otimizações de cargas de trabalho
top_queries.sql
perf_alerts.sql
Usando a console para otimização de queries
Obrigado !

Mais conteúdo relacionado

Mais procurados

A tour of Amazon Redshift
A tour of Amazon RedshiftA tour of Amazon Redshift
A tour of Amazon RedshiftKel Graham
 
MySQL Features & Implementation
MySQL Features & ImplementationMySQL Features & Implementation
MySQL Features & ImplementationOSSCube
 
Powering Interactive BI Analytics with Presto and Delta Lake
Powering Interactive BI Analytics with Presto and Delta LakePowering Interactive BI Analytics with Presto and Delta Lake
Powering Interactive BI Analytics with Presto and Delta LakeDatabricks
 
Database index(sql server)
Database index(sql server)Database index(sql server)
Database index(sql server)Aaron King
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databasesArangoDB Database
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
JSLT: JSON querying and transformation
JSLT: JSON querying and transformationJSLT: JSON querying and transformation
JSLT: JSON querying and transformationLars Marius Garshol
 
Deep Dive Into Elasticsearch
Deep Dive Into ElasticsearchDeep Dive Into Elasticsearch
Deep Dive Into ElasticsearchKnoldus Inc.
 
Physical architecture of sql server
Physical architecture of sql serverPhysical architecture of sql server
Physical architecture of sql serverDivya Sharma
 
Spark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupSpark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupDatabricks
 
MySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesMySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesBernd Ocklin
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
Architecture of integration services
Architecture of integration servicesArchitecture of integration services
Architecture of integration servicesSlava Kokaev
 
Sql server performance tuning
Sql server performance tuningSql server performance tuning
Sql server performance tuningngupt28
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQLRTigger
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeMaking Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeDatabricks
 

Mais procurados (20)

A tour of Amazon Redshift
A tour of Amazon RedshiftA tour of Amazon Redshift
A tour of Amazon Redshift
 
MySQL Features & Implementation
MySQL Features & ImplementationMySQL Features & Implementation
MySQL Features & Implementation
 
Powering Interactive BI Analytics with Presto and Delta Lake
Powering Interactive BI Analytics with Presto and Delta LakePowering Interactive BI Analytics with Presto and Delta Lake
Powering Interactive BI Analytics with Presto and Delta Lake
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
Database index(sql server)
Database index(sql server)Database index(sql server)
Database index(sql server)
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databases
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
JSLT: JSON querying and transformation
JSLT: JSON querying and transformationJSLT: JSON querying and transformation
JSLT: JSON querying and transformation
 
Deep Dive Into Elasticsearch
Deep Dive Into ElasticsearchDeep Dive Into Elasticsearch
Deep Dive Into Elasticsearch
 
Physical architecture of sql server
Physical architecture of sql serverPhysical architecture of sql server
Physical architecture of sql server
 
Spark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupSpark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark Meetup
 
MySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesMySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion Queries
 
NoSql
NoSqlNoSql
NoSql
 
Sql server basics
Sql server basicsSql server basics
Sql server basics
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
Architecture of integration services
Architecture of integration servicesArchitecture of integration services
Architecture of integration services
 
Sql server performance tuning
Sql server performance tuningSql server performance tuning
Sql server performance tuning
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeMaking Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
 

Destaque

Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataAmazon Web Services LATAM
 
Path to the future #2 - Internet das coisas com AWS IoT
Path to the future #2 - Internet das coisas com AWS IoTPath to the future #2 - Internet das coisas com AWS IoT
Path to the future #2 - Internet das coisas com AWS IoTAmazon Web Services LATAM
 
Creando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividad
Creando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividadCreando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividad
Creando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividadAmazon Web Services LATAM
 
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon AuroraRaising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon AuroraAmazon Web Services LATAM
 
Webinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónWebinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónAmazon Web Services LATAM
 
Raising the bar #3 - Construindo Apps Móveis com AWS Mobile Hub
Raising the bar #3 - Construindo Apps Móveis com AWS Mobile HubRaising the bar #3 - Construindo Apps Móveis com AWS Mobile Hub
Raising the bar #3 - Construindo Apps Móveis com AWS Mobile HubAmazon Web Services LATAM
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSAmazon Web Services LATAM
 
Armazenamento para uma estratégia híbrida
 Armazenamento para uma estratégia híbrida Armazenamento para uma estratégia híbrida
Armazenamento para uma estratégia híbridaAmazon Web Services LATAM
 
Path to the future #4 - Ingestão, processamento e análise de dados em tempo real
Path to the future #4 - Ingestão, processamento e análise de dados em tempo realPath to the future #4 - Ingestão, processamento e análise de dados em tempo real
Path to the future #4 - Ingestão, processamento e análise de dados em tempo realAmazon Web Services LATAM
 
Quais são as opções de banco de dados gerenciados na AWS?
 Quais são as opções de banco de dados gerenciados na AWS? Quais são as opções de banco de dados gerenciados na AWS?
Quais são as opções de banco de dados gerenciados na AWS?Amazon Web Services LATAM
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemAmazon Web Services LATAM
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 

Destaque (14)

Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big Data
 
Path to the future #2 - Internet das coisas com AWS IoT
Path to the future #2 - Internet das coisas com AWS IoTPath to the future #2 - Internet das coisas com AWS IoT
Path to the future #2 - Internet das coisas com AWS IoT
 
Creando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividad
Creando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividadCreando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividad
Creando su Datacenter Virtual: Fundamentos de VPC y opciones de conectividad
 
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon AuroraRaising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
 
Webinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónWebinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la Información
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Raising the bar #3 - Construindo Apps Móveis com AWS Mobile Hub
Raising the bar #3 - Construindo Apps Móveis com AWS Mobile HubRaising the bar #3 - Construindo Apps Móveis com AWS Mobile Hub
Raising the bar #3 - Construindo Apps Móveis com AWS Mobile Hub
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
 
Armazenamento para uma estratégia híbrida
 Armazenamento para uma estratégia híbrida Armazenamento para uma estratégia híbrida
Armazenamento para uma estratégia híbrida
 
DevOps en AWS
DevOps en AWSDevOps en AWS
DevOps en AWS
 
Path to the future #4 - Ingestão, processamento e análise de dados em tempo real
Path to the future #4 - Ingestão, processamento e análise de dados em tempo realPath to the future #4 - Ingestão, processamento e análise de dados em tempo real
Path to the future #4 - Ingestão, processamento e análise de dados em tempo real
 
Quais são as opções de banco de dados gerenciados na AWS?
 Quais são as opções de banco de dados gerenciados na AWS? Quais são as opções de banco de dados gerenciados na AWS?
Quais são as opções de banco de dados gerenciados na AWS?
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 

Semelhante a Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift

Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Amazon Web Services LATAM
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift PrimerMateus Aubin
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift PrimerMateus Aubin
 
Alto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLAlto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLJonas Silveira
 
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...Amazon Web Services LATAM
 
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.0Marcos 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.0Marcos William Valentini
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSAmazon Web Services LATAM
 
Amazon emr cluster hadoop pronto para usar na nuvem aws
Amazon emr   cluster hadoop pronto para usar na nuvem awsAmazon emr   cluster hadoop pronto para usar na nuvem aws
Amazon emr cluster hadoop pronto para usar na nuvem awsAmazon Web Services LATAM
 
Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSAmazon Web Services LATAM
 
Explorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraExplorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraAmazon Web Services LATAM
 
Escalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosEscalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosAmazon Web Services LATAM
 
AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?Pedro Pisa
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 

Semelhante a Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift (20)

Introducao ao Amazon Redshift
Introducao ao Amazon RedshiftIntroducao ao Amazon Redshift
Introducao ao Amazon Redshift
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift Primer
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift Primer
 
Alto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLAlto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQL
 
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
 
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
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
 
Começando com Amazon Redshift
Começando com Amazon RedshiftComeçando com Amazon Redshift
Começando com Amazon Redshift
 
Amazon emr cluster hadoop pronto para usar na nuvem aws
Amazon emr   cluster hadoop pronto para usar na nuvem awsAmazon emr   cluster hadoop pronto para usar na nuvem aws
Amazon emr cluster hadoop pronto para usar na nuvem aws
 
Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWS
 
Bancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWSBancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWS
 
Explorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraExplorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon Aurora
 
Escalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosEscalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuarios
 
AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 

Mais de Amazon Web Services LATAM

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAmazon Web Services LATAM
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSAmazon Web Services LATAM
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSAmazon Web Services LATAM
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAmazon Web Services LATAM
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAmazon Web Services LATAM
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosAmazon Web Services LATAM
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSAmazon Web Services LATAM
 

Mais de Amazon Web Services LATAM (20)

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 

Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hugo Rozestraten, Solutions Architect, AWS Setembro de 2016, Rio de Janeiro Melhores práticas de data warehouse no Amazon Redshift
  • 2. Arquitetura do Redshfit Ingestão • COPY • Primary keys e arquivos de Manifesto • Higienização de Dados • Novas features para ingestão • Restore para Tabelas • Auto Compressão/Compres são por sort key Features • Novas Funções • UDFs • Interleaved sort keys Dicas de Migração Otimização de Ambientes • Cargas de trabalho • WLM • Console O que esperar desta Sessão
  • 3. Rápido, Simples, data warehouse escalável a PB, por menos de $1,000/TB/ano Amazon Redshift
  • 4. Amazon Redshift entrega Performance “[Amazon] Redshift is twenty times faster than Hive.” (5x–20x reduction in query times) link “Queries that used to take hours came back in seconds. Our analysts are orders of magnitude more productive.” (20x–40x reduction in query times) link “…[Amazon Redshift] performance has blown away everyone here (we generally see 50– 100x speedup over Hive).” link “Team played with [Amazon] Redshift today and concluded it is ****** awesome. Un-indexed complex queries returning in < 10s.” “Did I mention it's ridiculously fast? We'll be using it immediately to provide our analysts an alternative to Hadoop.” “We saw… 2x improvement in query times.” Channel “We regularly process multibillion row datasets and we do that in a matter of hours.” link
  • 5. Arquitetura do Amazon Redshift 10 GigE (HPC) Ingestão Backup Restore JDBC/ODBC
  • 6. Visão aprofundada na arquitetura dos Nós de Computação (”Compute Nodes”) Leader Node Dense compute nodes Large • 2 slices/cores • 15 GB RAM • 160 GB SSD 8XL • 32 slices/cores • 244 GB RAM • 2.56 TB SSD Dense storage nodes X-large • 2 slices/4 cores • 31 GB RAM • 2 TB HDD 8XL • 16 slices/ 36 cores • 244 GB RAM • 16 TB HDD
  • 8. Uso de vários arquivos para maximizar a carga Comando COPY Cada ”slice” carrega um arquivo por vez Um arquivo único significa apenas um ”slice” carregando dados Ao invés de 100 MB/sec, você obtém somente 6.25 MB/sec
  • 9. Uso de vários arquivos para maximizar a carga Comando COPY Você precisa de pelo menos o mesmo número de arquivos do que slices Com 16 arquivos de entrada todas as ”slices” estarão trabalhando para maximizar a carga Obtenha 100 MB/sec por nó; escale de maneira linear
  • 10. ”Primary keys” e arquivos de manifesto Amazon Redshift não força a limitação da primary key • Se carregar várias vezes o mesmo dado o Redshift não vai acusar erro; • Se declarar primary keys para DML, o otimizador vai entender que os registros são únicos; Use arquivos de manifesto para controlar exatamente o que é carregado e o que fazer em caso de falta de arquivos • Defina um manifesto JSON no Amazon S3; • Assegura que o cluster carregue exatamente o que quer;
  • 11. Higienização de Dados Analize tabelas regularmente • A cada carga para colunas populares • Semanalmente para todas as colunas • Veja a SVV_TABLE_INFO(stats_off) para dados ”stale” • Veja stl_alert_event_log para falta de estatísticas Realize Vacuum nas tabelas regularmente • Semanalmente é um bom alvo • Número de unsorted blocks como gatilho • Veja SVV_TABLE_INFO(unsorted, empty) • Transações ativas ou abertas podem impedir o Vacuum. Veja na SVV_TRANSACTIONS • Você pode executar o vacuum para um ”threshold PERCENT”
  • 12. Novas Features – Ingestão Opção de Backup no CREATE TABLE • Para uso em Staging e carga de dados • Tabela será excluída em um restore Extensão de ”Sorted” Automatic COPY/INSERT • Tabela é 100% ordenada e possui apenas uma sortkey (ex. date ou timtestamp) • Você adiciona linhas na tabela toda (sempre após as existentes, distribuídas por sortkey) Alter Table Append • Adiciona linhas em uma tabela movendo dados de uma tabela source existente • Dados em uma tabela de origem são movimentados combinando com os dados na destino. • Não pode rodar ALTER TABLE APPEND dentro de um bloco de transações (BEGIN ... END)
  • 13. Novas Features - Table Restore aws redshift restore-table-from-cluster-snapshot --cluster-identifier mycluster-example --new-table-name my-new-table --snapshot-identifier my-snapshot-id --source-database-name sample-database --source-table-name my-source-table
  • 14. Compressão automática (quase sempre positiva) Melhor performance e diminui custo Amostra de dados quando executado um comando COPY em tabela vazia • Amostra de até 100,000 rows e escolhe o melhor Encoding Processo de ETL regular utilizando tabelas de staging ou temporárias: Desligue a compressão automática • Use análise de compressão para determinar o encoding correto • Prepare seus DML (baked) com os encodings corretos
  • 15. Tenha cuidado com suas sort keys Zone maps grava min/max por bloco Após sabermos quais blocos contém uma sequência de dados, sabemos quais linhas não buscarmos Alta compressão significa muitas linhas por bloco Pode varrer mais blocos do que precisaria Se sua sort keys comprime significativamente suas colunas, você pode escolher não comprimir sua sortkey column(s) Veja a SVV_TABLE_INFO(skew_sortkey1) COL1 COL2
  • 16. Mantenha as colunas tão estreitas quanto possível • Buffers são alocados baseado na declaração da largura das colunas; • Colunas mais largas sem necessidade desperdiçam memória; • Menos linhas cabem na memória mais probabilidade de gravação em disco • Veja a SVV_TABLE_INFO(max_varchar)
  • 18. Novas funções SQL Nós adicionamos funções SQL regularmente para aumentar a capacidade de execução de queries no Amazon Redshift Adicionadas 25+ funções: • LISTAGG • [APPROXIMATE] COUNT • DROP IF EXISTS, CREATE IF NOT EXISTS • REGEXP_SUBSTR, _COUNT, _INSTR, _REPLACE • PERCENTILE_CONT, _DISC, MEDIAN • PERCENT_RANK, RATIO_TO_REPORT Continuaremos realizado mas também queremos habilitar que escreva as suas
  • 19. Funções definidas pelo usuário (UDFs) Pode escrever UDFs usando Python 2.7 • Sintaxe idêntica a do PostgreSQL UDF • Chamadas de sistema e rede UDFs não são permitidas Vem com Pandas, NumPy, e SciPy pre-instalados • Você pode importar sua biblioteca para funções mais complexas
  • 20. Exemplo de UDF CREATE FUNCTION f_hostname (VARCHAR url) RETURNS varchar IMMUTABLE AS $$ import urlparse return urlparse.urlparse(url).hostname $$ LANGUAGE plpythonu;
  • 22. 1-click deployment to launch, on multiple regions around the world Pay-as-you-go pricing with no long term contracts required Advanced Analytics Business IntelligenceData Integration
  • 23. Interleaved sort keys (chaves de ordenação intercaladas)
  • 24. Chaves de ordenação compostas ( Compound sort keys ) Registros são armazenados em blocos no Amazon Redshift Nesta ilustração assumimos que 4 registros preenchem um bloco Registros para um dado cust_id ficam em um bloco Contudo, registros para um dado prod_id ficam espalhados em vários blocos 1 1 1 1 2 3 4 1 4 4 4 2 3 4 4 1 3 3 3 2 3 4 3 1 2 2 2 2 3 4 2 1 1 [1,1] [1,2] [1,3] [1,4] 2 [2,1] [2,2] [2,3] [2,4] 3 [3,1] [3,2] [3,3] [3,4] 4 [4,1] [4,2] [4,3] [4,4] 1 2 3 4 prod_id cust_id cust_id prod_id other columns blocks Select sum(amt) From big_tab Where cust_id = (1234); Select sum(amt) From big_tab Where prod_id = (5678);
  • 25. 1 [1,1] [1,2] [1,3] [1,4] 2 [2,1] [2,2] [2,3] [2,4] 3 [3,1] [3,2] [3,3] [3,4] 4 [4,1] [4,2] [4,3] [4,4] 1 2 3 4 prod_id cust_id Chaves de ordenação intercaladas (Interleaved sort keys) Registros para um dado cust_id espalhados em 2 blocos Registros para um dado prod_id separados em 2 blocos Dados são distribuidos com pesos iguais para ambos 1 1 2 2 2 1 2 3 3 4 4 4 3 4 3 1 3 4 4 2 1 2 3 3 1 2 2 4 3 4 1 1 cust_id prod_id other columns blocks
  • 26. Uso Nova palavra chave INTERLEAVED para Sortkeys • Sintaxe anterior continua funcionando • Pode escolher até 8 colunas para incluir e selecionar por qualquer uma Não precisa mudar as queries Só estamos iniciando • Benefícios significantes; Carga pode ser penalizada • Veja a SVV_INTERLEAVED_COLUMNS(interleaved_skew) para decidir sobre VACUUM REINDEX • Um valor maior que 5 indica necessidade de VACUUM REINDEX [[ COMPOUND | INTERLEAVED ] SORTKEY ( column_name [, ...] ) ]
  • 27. Migrando cargas de trabalho existentes
  • 29. Responda Por que você faz isto hoje? • Muitas vezes, usuários nem sabem Qual a necessidade de negócio? • Muitas vezes, não tem relação com o que faz na prática • Talvez você se beneficie de outro serviço AWS
  • 30. No Amazon Redshift Updates são delete + insert da linha • Deletes marcam para deleção Blocos são imutáveis • Espaço mínimo usado é um bloco por coluna, por slice Commits são custosos • 4 GB write na 8XL por nó • Espelha o dicionário INTEIRO • Serializado pelo tamanho do cluster
  • 31. No Amazon Redshift • Nem todas as agregações são criadas da mesma forma • Pre-agregação pode ajudar • Ordenação no grupo importa • Concorrência deve ser baixa para maior throughput • Camada de Cache para dashboards é recomendada • WLM separa RAM para queries. Use múltiplos controles para melhor performance.
  • 32. Workload Management (WLM) Concorrência e memória podem agora ser alteradas dinamicamente Você pode ter valores distintos para tempo de leitura e tempo de carga Use wlm_apex_hourly.sql para monitorar a pressão das filas
  • 33. New Feature – WLM Queue Hopping
  • 34. Obter meta-dados de resultados Usando SQL ou JDBC, você pode obter os nomes das colunas ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); ResultSetMetaData rsmd = rs.getMetaData(); String name = rsmd.getColumnName(1); Descarga de Dados Por enquanto não provê metadados • Use SELECT top 0… • Ao invés de adicionar0=1 na sua cláusula WHERE
  • 35. Ferramentas Open-source https://github.com/awslabs/amazon-redshift-utils Admin scripts • Diagnóstico do cluster Admin views • Gerenciamento e geração de DDLs. Column encoding utility • Permite selecionar o melhor encoding Analyze and vacuum utility • Automatiza VACUUM e operações de ANALYZE Unload and copy utility • Ajuda a migrar entre Amazon Redshift e outros bancos de dados
  • 36. Otimizações de cargas de trabalho top_queries.sql perf_alerts.sql
  • 37. Usando a console para otimização de queries