Amazon Redshift - Guia do desenvolvedor de banco de dados · Amazon Redshift Guia do desenvolvedor...

1039
Amazon Redshift Guia do desenvolvedor de banco de dados Versão da API 2012-12-01

Transcript of Amazon Redshift - Guia do desenvolvedor de banco de dados · Amazon Redshift Guia do desenvolvedor...

  • Amazon RedshiftGuia do desenvolvedor de banco de dados

    Verso da API 2012-12-01

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Amazon Redshift: Guia do desenvolvedor de banco de dadosCopyright 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

    Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Table of ContentsBem-vindo ......................................................................................................................................... 1

    Voc est usando o Amazon Redshift pela primeira vez? ................................................................. 1Voc um desenvolvedor de bancos de dados? ............................................................................. 2Pr-requisitos ............................................................................................................................. 3

    Viso geral do sistema do Amazon Redshift ........................................................................................... 4Arquitetura de sistema do data warehouse ..................................................................................... 4Desempenho .............................................................................................................................. 7

    Processamento paralelo em massa ....................................................................................... 7Armazenamento fsico de dados colunar ................................................................................ 7Compactao de dados ....................................................................................................... 7Otimizador de consultas ...................................................................................................... 8Armazenamento em cache dos resultados ............................................................................ 8Cdigo compilado ............................................................................................................... 9

    Armazenamento colunar .............................................................................................................. 9Arquitetura interna e operao do sistema .................................................................................... 11Gerenciamento da carga de trabalho ........................................................................................... 11Usar o Amazon Redshift com outros servios ............................................................................... 12

    Mover dados entre o Amazon Redshift e o Amazon S3 .......................................................... 12Uso do Amazon Redshift com o Amazon DynamoDB ............................................................. 12Importar dados de hosts remotos via SSH ............................................................................ 12Automatizar cargas de dados usando o AWS Data Pipeline ..................................................... 13Migrao de dados por meio do AWS Database Migration Service (AWS DMS) .......................... 13

    Conceitos bsicos do uso de bancos de dados ..................................................................................... 14Etapa 1: Criar um banco de dados .............................................................................................. 14Etapa 2: Criar um usurio de banco de dados .............................................................................. 15

    Excluir um usurio de banco de dados ................................................................................ 15Etapa 3: Criar uma tabela de banco de dados .............................................................................. 15

    Inserir linhas de dados em uma tabela ................................................................................. 16Selecionar dados de uma tabela ......................................................................................... 16

    Etapa 4: Carregar dados de exemplo .......................................................................................... 17Etapa 5: Consultar tabelas do sistema ......................................................................................... 17

    Visualizao de uma lista de nomes de tabelas ..................................................................... 18Visualizao dos usurios de banco de dados ...................................................................... 18Visualizao de consultas recentes ..................................................................................... 19Como determinar o ID do processo de uma consulta em execuo ........................................... 19

    Etapa 6: Cancelar uma consulta ................................................................................................. 19Cancelar uma consulta de outra sesso ............................................................................... 21Cancelar uma consulta usando a fila de superusurios ........................................................... 21

    Etapa 7: Limpar os recursos ....................................................................................................... 21Manual de prova de conceito ............................................................................................................. 23

    Identificar os objetivos da prova de conceito ................................................................................. 23Configurar a prova de conceito ................................................................................................... 23

    Projetar e configurar o cluster ............................................................................................. 24Converter seu esquema e configurar os conjuntos de dados ................................................... 24

    Consideraes de projeto do cluster ............................................................................................ 24Lista de verificao de avaliao do Amazon Redshift .................................................................... 25Comparar a avaliao do Amazon Redshift .................................................................................. 26Recursos adicionais .................................................................................................................. 27

    Melhores prticas do Amazon Redshift ................................................................................................ 28Melhores prticas para projetar tabelas ........................................................................................ 28

    Faa o tutorial de ajuste do design de tabelas ...................................................................... 29Escolha a melhor chave de classificao .............................................................................. 29Escolha o melhor estilo de distribuio ................................................................................ 29Use a compactao automtica .......................................................................................... 30

    Verso da API 2012-12-01iii

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Defina as limitaes .......................................................................................................... 30Use o menor tamanho possvel de coluna ............................................................................ 31Utilizao de tipos de dados de data/hora para colunas de data ............................................... 31

    Melhores prticas para carregamento de dados ............................................................................. 31Faa o tutorial de carregamento de dados ............................................................................ 32Faa o tutorial de ajuste do design de tabelas ...................................................................... 32Use um comando COPY para carregar dados ....................................................................... 32Use um nico comando COPY ........................................................................................... 32Divida seus dados de carregamento em vrios arquivos ......................................................... 32Compacte seus arquivos de dados ...................................................................................... 32Use um arquivo manifesto .................................................................................................. 33Verifique arquivos de dados antes de depois de um carregamento ........................................... 33Use uma insero de mltiplas linhas .................................................................................. 33Use uma insero em massa ............................................................................................. 33Carregue dados por ordem de chave de classificao ............................................................ 34Carregue dados em blocos sequenciais ............................................................................... 34Use tabelas de sries temporais ......................................................................................... 34Use uma tabela de preparao para executar uma mesclagem ................................................ 35Agendamento em torno de janelas de manuteno ................................................................ 35

    Melhores prticas para projetar consultas ..................................................................................... 35Trabalhar com o Advisor ............................................................................................................ 37

    Acessar o advisor ............................................................................................................. 38Recomendaes ............................................................................................................... 39

    Tutorial: Ajustar projeto da tabela ........................................................................................................ 48Pr-requisitos ........................................................................................................................... 48Etapas ..................................................................................................................................... 48Etapa 1: Criar um conjunto de dados de teste ............................................................................... 48

    Para criar um conjunto de dados de teste ............................................................................ 49Prxima etapa .................................................................................................................. 52

    Etapa 2: Estabelecer uma linha de base ...................................................................................... 52Para testar o desempenho do sistema para estabelecer uma linha de base ................................ 53Prxima etapa .................................................................................................................. 55

    Etapa 3: Selecionar chaves de classificao ................................................................................. 56Para selecionar chaves de classificao ............................................................................... 56Prxima etapa .................................................................................................................. 57

    Etapa 4: Selecionar estilos de distribuio .................................................................................... 57Estilos de distribuio ........................................................................................................ 57Para selecionar estilos de distribuio .................................................................................. 58Prxima etapa .................................................................................................................. 60

    Etapa 5: Examinar codificaes de compactao ........................................................................... 60Para examinar codificaes de compactao ........................................................................ 60Prxima etapa .................................................................................................................. 63

    Etapa 6: Recriar o conjunto de dados de teste .............................................................................. 63Para recriar o conjunto de dados de teste ............................................................................ 63Prxima etapa .................................................................................................................. 66

    Etapa 7: Testar novamente o desempenho do sistema depois do ajuste ............................................ 66Para testar novamente o desempenho do sistema depois do ajuste .......................................... 66Prxima etapa .................................................................................................................. 70

    Etapa 8: Avaliar os resultados .................................................................................................... 70Prxima etapa .................................................................................................................. 71

    Etapa 9: Limpar os recursos ....................................................................................................... 71Prxima etapa .................................................................................................................. 72

    Resumo ................................................................................................................................... 72Prxima etapa .................................................................................................................. 72

    Tutorial: Carregar dados do Amazon S3 ............................................................................................... 73Pr-requisitos ........................................................................................................................... 73Viso geral .............................................................................................................................. 73

    Verso da API 2012-12-01iv

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Etapas ..................................................................................................................................... 74Etapa 1: ativar um cluster .......................................................................................................... 74

    Prxima etapa .................................................................................................................. 75Etapa 2: Fazer download dos arquivos de dados ........................................................................... 75

    Prxima etapa .................................................................................................................. 76Etapa 3: Fazer upload dos arquivos para um bucket do Amazon S3 ................................................. 76

    ...................................................................................................................................... 76Prxima etapa .................................................................................................................. 77

    Etapa 4: Criar as tabelas de exemplo .......................................................................................... 77Prxima etapa .................................................................................................................. 79

    Etapa 5: Executar os comandos COPY ........................................................................................ 80Sintaxe do comando COPY ................................................................................................ 80Carregar as tabelas SSB ................................................................................................... 81

    Etapa 6: Limpar e analisar o banco de dados ............................................................................... 91Prxima etapa .................................................................................................................. 92

    Etapa 7: Limpar os recursos ....................................................................................................... 92Prximo ........................................................................................................................... 92

    Resumo ................................................................................................................................... 92Prxima etapa .................................................................................................................. 93

    Tutorial: Configurar filas do WLM para melhorar o processamento de consultas .......................................... 94Viso geral .............................................................................................................................. 94

    Pr-requisitos ................................................................................................................... 94Sees ............................................................................................................................ 94

    Seo 1: Compreender o comportamento do processamento de filas padro ...................................... 95Etapa 1: Criar a visualizao WLM_QUEUE_STATE_VW ........................................................ 95Etapa 2: Criar a visualizao WLM_QUERY_STATE_VW ........................................................ 96Etapa 3: Executar consultas de teste ................................................................................... 97

    Seo 2: Modificar a configurao da fila de consultas do WLM ....................................................... 99Etapa 1: Criar um parameter group ..................................................................................... 99Etapa 2: Configurar o WLM ................................................................................................ 99Etapa 3: Associar o parameter group ao cluster ................................................................... 101

    Seo 3: Rotear consultas para filas com base em grupos de usurios e grupos de consultas .............. 102Etapa 1: Visualizar configurao da fila no banco de dados ................................................... 103Etapa 2: Executar uma consulta usando a fila de grupos de consultas ..................................... 103Etapa 3: Criar um usurio de banco de dados e grupo ......................................................... 104Etapa 4: Executar uma consulta usando a fila de grupos de usurios ...................................... 105

    Seo 4: Usar wlm_query_slot_count para substituir temporariamente o nvel de simultaneidade emuma fila ................................................................................................................................. 106

    Etapa 1: Substituir o nvel de simultaneidade usando wlm_query_slot_count ............................. 106Etapa 2: Executar consultas em sesses diferentes .............................................................. 107

    Seo 5: Liberar os recursos .................................................................................................... 108Tutorial: Consultando dados aninhados com Amazon Redshift Spectrum ................................................. 109

    Viso geral ............................................................................................................................. 109Pr-requisitos ................................................................................................................. 109

    Etapa 1: Crie uma tabela externa que contm dados aninhados ..................................................... 110Etapa 2: Consulte seus dados aninhados no Amazon S3 com extenses SQL .................................. 110

    Extenso 1: Acesso a colunas de estruturas ....................................................................... 111Extenso 2: Agrupamento sobre arrays em clusula FROM ................................................... 111Extenso 3: Acessando um array de escalares usando diretamente um alias ............................ 113Extenso 4: Elementos de acesso de mapas ...................................................................... 113

    Casos de uso de dados aninhados ............................................................................................ 114Ingerindo dados aninhados ............................................................................................... 114Agregando dados aninhados com subconsultas ................................................................... 114Adicionar Amazon Redshift e dados aninhados ................................................................... 115

    Limitaes aninhadas de dados ................................................................................................ 116Gerenciar segurana do banco de dados ............................................................................................ 118

    Viso geral de segurana do Amazon Redshift ............................................................................ 118

    Verso da API 2012-12-01v

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Privilgios do usurio do banco de dados padro ........................................................................ 119Superusurios ......................................................................................................................... 119Usurios ................................................................................................................................ 120

    Criar, alterar e excluir usurios ......................................................................................... 120Grupos .................................................................................................................................. 121

    Criar, alterar e excluir grupos ............................................................................................ 121Esquemas .............................................................................................................................. 121

    Criar, alterar e excluir esquemas ....................................................................................... 122Caminho de pesquisa ...................................................................................................... 122Privilgios baseados em esquema ..................................................................................... 122

    Exemplo para controlar acesso de usurio e grupo ...................................................................... 123Projeo de tabelas ......................................................................................................................... 125

    Escolha de um tipo de compactao de colunas .......................................................................... 125Codificaes de compactao ........................................................................................... 126Como testar codificaes de compactao .......................................................................... 132Exemplo: Escolha de codificaes de compactao para a tabela CUSTOMER ......................... 135

    Escolha de um estilo de distribuio de dados ............................................................................ 137Conceitos de distribuio de dados .................................................................................... 137Estilos de distribuio ...................................................................................................... 138Visualizao dos estilos de distribuio .............................................................................. 138Avaliao dos padres de consulta .................................................................................... 139Designao de estilos de distribuio ................................................................................. 139Avaliao do plano de consulta ......................................................................................... 140Exemplo de plano de consulta .......................................................................................... 142Exemplos de distribuio .................................................................................................. 146

    Escolha de chaves de classificao ........................................................................................... 148Chave de classificao composta ...................................................................................... 149Chave de classificao intercalada .................................................................................... 149Comparao de estilos do classificao .............................................................................. 150

    Definio de restries ............................................................................................................. 153Anlise do design de tabelas .................................................................................................... 154

    Utilizao do Amazon Redshift Spectrum para consultar dados externos ................................................. 156Viso geral do Amazon Redshift Spectrum ................................................................................. 156

    Regies do Amazon Redshift Spectrum .............................................................................. 157Consideraes sobre o Amazon Redshift Spectrum .............................................................. 157

    Conceitos bsicos sobre o Amazon Redshift Spectrum ................................................................. 158Pr-requisitos ................................................................................................................. 158Etapas ........................................................................................................................... 158Etapa 1. Criar uma funo do IAM .................................................................................... 159Etapa 2: Associar uma funo do IAM ao cluster ................................................................. 160Etapa 3: Criar um esquema e uma tabela externos .............................................................. 160Etapa 4: Consultar os dados no Amazon S3 ....................................................................... 161

    Polticas do IAM para o Amazon Redshift Spectrum ..................................................................... 163Permisses do Amazon S3 .............................................................................................. 163Permisses entre contas do Amazon S3 ............................................................................ 164Conceder ou restringir acesso usando o Redshift Spectrum ................................................... 164Permisses mnimas ........................................................................................................ 165Encadeamento de funes do IAM .................................................................................... 166Poltica para operaes de partio ................................................................................... 167

    Criao de arquivos de dados para consultas no Amazon Redshift Spectrum ................................... 169Criao de esquemas externos ................................................................................................. 170

    Trabalhar com catlogos externos ..................................................................................... 172Criao de tabelas externas ..................................................................................................... 176

    Pseudocolunas ............................................................................................................... 178Particionamento das tabelas externas do Redshift Spectrum .................................................. 178Mapeamento para colunas do ORC ................................................................................... 182

    Melhorias no desempenho de consulta do Amazon Redshift Spectrum ............................................ 184

    Verso da API 2012-12-01vi

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Monitoramento de mtricas ....................................................................................................... 187Soluo de problemas de consultas ........................................................................................... 187

    Nmero de tentativas excedido ......................................................................................... 188Nenhuma linha foi retornada para uma tabela particionada .................................................... 188Erro de falta de autorizao .............................................................................................. 188Formatos de dados incompatveis ...................................................................................... 188Erro de sintaxe ao usar a DDL do Hive no Amazon Redshift .................................................. 189Permisso para criar tabelas temporrias ........................................................................... 189

    Carregamento de dados ................................................................................................................... 190Uso de COPY para carregar dados ........................................................................................... 190

    Credenciais e permisses de acesso ................................................................................. 191Preparao de seus dados de entrada ............................................................................... 193Carregamento de dados a partir do Amazon S3 .................................................................. 193Carregamento de dados a partir do Amazon EMR ............................................................... 203Carregamento de dados de hosts remotos .......................................................................... 207Carregar do Amazon DynamoDB ....................................................................................... 213Como verificar se os dados foram carregados corretamente .................................................. 215Validao de dados de entrada ......................................................................................... 216Compactao automtica ................................................................................................. 216Otimizao para tabelas estreitas ...................................................................................... 218Valores padro ............................................................................................................... 218Soluo de problemas ..................................................................................................... 219

    Atualizao com DML .............................................................................................................. 223Atualizao e insero ............................................................................................................. 224

    Mtodo de mesclagem 1: Substituio de linhas existentes .................................................... 224Mtodo de mesclagem 2: Especificao de uma lista de colunas ............................................ 225Criao de uma tabela de preparao temporria ................................................................ 225Execuo de uma operao de mesclagem com a substituio de linhas existentes ................... 226Execuo de uma operao de mesclagem atravs da especificao de uma lista de colunas ...... 226Exemplos de mesclagem .................................................................................................. 228

    Execuo de uma cpia profunda .............................................................................................. 230Anlise de tabelas ................................................................................................................... 231

    Histrico do comando ANALYZE ....................................................................................... 235Anlise automtica .......................................................................................................... 236

    Limpeza de tabelas ................................................................................................................. 236Frequncia de VACUUM .................................................................................................. 237Estgio do classificao e estgio de mesclagem ................................................................ 237Limite de vacuum ............................................................................................................ 238Tipos de vacuum ............................................................................................................ 238Gerenciamento dos tempos de limpeza .............................................................................. 238Erro de limite de limpeza da coluna excedido ...................................................................... 245

    Gerenciamento de operaes de gravao simultneas ................................................................ 247Isolamento serializvel ..................................................................................................... 247Operaes de gravao e de leitura e gravao .................................................................. 249Exemplos de gravao simultnea ..................................................................................... 250

    Descarregamento de dados .............................................................................................................. 252Descarregamento de dados para o Amazon S3 ........................................................................... 252Descarregamento de arquivos de dados criptografados ................................................................. 255Descarregamento de dados em formato delimitado ou de largura fixa .............................................. 256Recarregamento de dados descarregados .................................................................................. 257

    Criao de funes definidas pelo usurio .......................................................................................... 259Segurana e privilgios de UDF ................................................................................................ 259Criao de uma UDF SQL escalar ............................................................................................ 260

    Exemplo de funo SQL escalar ....................................................................................... 260Criao de uma UDF Python escalar ......................................................................................... 260

    Exemplo de UDF Python escalar ....................................................................................... 261Tipos de dados da UDF Python ........................................................................................ 261

    Verso da API 2012-12-01vii

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Tipo de dado ANYELEMENT ............................................................................................ 262Compatibilidade com a linguagem Python ........................................................................... 262Restries de UDF .......................................................................................................... 265

    Nomeao de UDFs ................................................................................................................ 266Sobrecarga de nomes de funo ....................................................................................... 266Como evitar conflitos na nomeao da UDF ........................................................................ 266

    Log de erros e alertas ............................................................................................................. 266Ajuste de desempenho da consulta ................................................................................................... 268

    Processamento de consulta ...................................................................................................... 268Planejamento de consulta e fluxo de trabalho de execuo ................................................... 268Reviso das etapas do plano de consulta ........................................................................... 270Plano de consulta ........................................................................................................... 271Fatores que afetam o desempenho da consulta ................................................................... 277

    Anlise e melhoria de consultas ................................................................................................ 278Fluxo de trabalho da anlise de consulta ............................................................................ 279Reviso de alertas da consulta ......................................................................................... 279Anlise do plano de consulta ............................................................................................ 281Anlise do resumo da consulta ......................................................................................... 282Melhoria do desempenho da consulta ................................................................................ 287Consultas diagnsticas para ajuste da consulta ................................................................... 290

    Soluo de problemas de consultas ........................................................................................... 293Falhas na conexo .......................................................................................................... 293Consultas travadas .......................................................................................................... 294A consulta leva muito tempo ............................................................................................. 295Falha do carregamento .................................................................................................... 295O carregamento leva muito tempo ..................................................................................... 296Os dados de carregamento esto incorretos ....................................................................... 296Configurao do parmetro JDBC para o tamanho da busca ................................................. 296

    Implementar gerenciamento de carga de trabalho ................................................................................ 298Definir filas de consultas .......................................................................................................... 298

    Nvel de simultaneidade ................................................................................................... 299Grupos de usurios ......................................................................................................... 300Grupos de consultas ........................................................................................................ 300Curingas ........................................................................................................................ 301Porcentagem de memria do WLM a ser usada .................................................................. 301Tempo limite do WLM ...................................................................................................... 301Regras de monitoramento de consulta ............................................................................... 302

    Salto na fila de consultas do WLM ............................................................................................ 302Salto na fila de tempo limite do WLM ................................................................................. 302Consultas reatribudas e reiniciadas devido ao tempo limite do WLM ....................................... 302Salto de fila da ao de salto do QMR ............................................................................... 303Consultas reatribudas e reiniciadas devido ao de salto do QMR ....................................... 303Resumo do salto na fila de consultas do WLM .................................................................... 304

    Acelerao de consulta breve ................................................................................................... 305Tempo mximo de execuo da SQA ................................................................................ 306Monitoramento da SQA .................................................................................................... 306

    Modificar a configurao do WLM .............................................................................................. 307Regras de atribuio de fila do WLM ......................................................................................... 307

    Exemplo das atribuies de fila ......................................................................................... 309Atribuir consultas a filas ........................................................................................................... 310

    Atribuir consultas a filas com base em grupos de usurios .................................................... 310Atribuir uma consulta a um grupo de consultas .................................................................... 310Atribuir consultas fila de superusurios ............................................................................ 311

    Propriedades dinmicas e estticas ........................................................................................... 311Alocao de memria dinmica do WLM ............................................................................ 312Exemplo do WLM dinmico .............................................................................................. 312

    Regras de monitoramento de consulta ....................................................................................... 314

    Verso da API 2012-12-01viii

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Definir uma regra do monitor de consulta ........................................................................... 314Mtricas de monitoramento da consulta .............................................................................. 315Modelos de regras de monitoramento de consulta ................................................................ 317Tabelas de sistema e exibies para regras de monitoramento de consultas ............................. 318

    Tabelas de sistema e exibies do WLM .................................................................................... 318Referncia SQL .............................................................................................................................. 321

    SQL do Amazon Redshift ......................................................................................................... 321Funes SQL compatveis no n de liderana ..................................................................... 321Amazon Redshift e PostgreSQL ........................................................................................ 322

    Uso de SQL ........................................................................................................................... 328Convenes de referncia do SQL .................................................................................... 328Elementos bsicos .......................................................................................................... 328Expresses .................................................................................................................... 353Condies ...................................................................................................................... 356

    Comandos SQL ...................................................................................................................... 374ABORT .......................................................................................................................... 375ALTER DATABASE ......................................................................................................... 377ALTER DEFAULT PRIVILEGES ........................................................................................ 378ALTER GROUP .............................................................................................................. 380ALTER SCHEMA ............................................................................................................ 381ALTER TABLE ................................................................................................................ 382ALTER TABLE APPEND .................................................................................................. 391ALTER USER ................................................................................................................. 394ANALYZE ...................................................................................................................... 398ANALYZE COMPRESSION .............................................................................................. 400BEGIN ........................................................................................................................... 402CANCEL ........................................................................................................................ 403CLOSE .......................................................................................................................... 405COMMENT ..................................................................................................................... 405COMMIT ........................................................................................................................ 407COPY ............................................................................................................................ 407CREATE DATABASE ...................................................................................................... 468CREATE EXTERNAL SCHEMA ........................................................................................ 469CREATE EXTERNAL TABLE ............................................................................................ 472CREATE FUNCTION ....................................................................................................... 483CREATE GROUP ............................................................................................................ 487CREATE LIBRARY .......................................................................................................... 488CREATE SCHEMA .......................................................................................................... 490CREATE TABLE ............................................................................................................. 492CREATE TABLE AS ........................................................................................................ 504CREATE USER .............................................................................................................. 512CREATE VIEW ............................................................................................................... 515DEALLOCATE ................................................................................................................ 518DECLARE ...................................................................................................................... 518DELETE ........................................................................................................................ 521DROP DATABASE .......................................................................................................... 523DROP FUNCTION ........................................................................................................... 523DROP GROUP ............................................................................................................... 524DROP LIBRARY ............................................................................................................. 525DROP SCHEMA ............................................................................................................. 525DROP TABLE ................................................................................................................. 526DROP USER .................................................................................................................. 529DROP VIEW .................................................................................................................. 530END .............................................................................................................................. 531EXECUTE ...................................................................................................................... 532EXPLAIN ....................................................................................................................... 533FETCH .......................................................................................................................... 537

    Verso da API 2012-12-01ix

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    GRANT .......................................................................................................................... 539INSERT ......................................................................................................................... 543LOCK ............................................................................................................................ 547PREPARE ...................................................................................................................... 548RESET .......................................................................................................................... 550REVOKE ........................................................................................................................ 550ROLLBACK .................................................................................................................... 554SELECT ........................................................................................................................ 555SELECT INTO ................................................................................................................ 584SET .............................................................................................................................. 585SET SESSION AUTHORIZATION ...................................................................................... 588SET SESSION CHARACTERISTICS .................................................................................. 588SHOW ........................................................................................................................... 588START TRANSACTION ................................................................................................... 589TRUNCATE .................................................................................................................... 589UNLOAD ........................................................................................................................ 590UPDATE ........................................................................................................................ 603VACUUM ....................................................................................................................... 608

    Referncia de funes SQL ...................................................................................................... 611N de liderana Funes exclusivas ................................................................................ 612Funes apenas de ns de computao ............................................................................. 613Funes agregadas ......................................................................................................... 613Funes agregadas bit-wise ............................................................................................. 629Funes de janela ........................................................................................................... 634Expresses condicionais .................................................................................................. 679Funes de data e hora ................................................................................................... 688Funes matemticas ...................................................................................................... 724Funes de string ........................................................................................................... 748Funes JSON ............................................................................................................... 785Funes de formatao de tipo de dados ........................................................................... 791Funes de administrao do sistema ................................................................................ 801Funes de informao do sistema .................................................................................... 805

    Palavras reservadas ................................................................................................................ 819Referncia de tabelas do sistema ...................................................................................................... 822

    Tabelas e visualizaes de sistema ........................................................................................... 822Tipos de tabelas e visualizaes de sistema ............................................................................... 822Visibilidade de dados em tabelas e visualizaes de sistema ......................................................... 823

    Filtrar consultas geradas pelo sistema ................................................................................ 823Tabelas STL de log ................................................................................................................. 824

    STL_AGGR .................................................................................................................... 825STL_ALERT_EVENT_LOG ................................................................................................ 827STL_ANALYZE ............................................................................................................... 829STL_BCAST ................................................................................................................... 830STL_COMMIT_STATS ..................................................................................................... 831STL_CONNECTION_LOG ................................................................................................. 832STL_DDLTEXT ............................................................................................................... 834STL_DELETE ................................................................................................................. 835STL_DISK_FULL_DIAG .................................................................................................... 837STL_DIST ...................................................................................................................... 838STL_ERROR .................................................................................................................. 839STL_EXPLAIN ................................................................................................................ 840STL_FILE_SCAN ............................................................................................................. 842STL_HASH ..................................................................................................................... 843STL_HASHJOIN .............................................................................................................. 845STL_INSERT .................................................................................................................. 846STL_LIMIT ..................................................................................................................... 847STL_LOAD_COMMITS ..................................................................................................... 849

    Verso da API 2012-12-01x

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    STL_LOAD_ERRORS ...................................................................................................... 851STL_LOADERROR_DETAIL .............................................................................................. 853STL_MERGE .................................................................................................................. 855STL_MERGEJOIN ........................................................................................................... 856STL_NESTLOOP ............................................................................................................. 857STL_PARSE ................................................................................................................... 859STL_PLAN_INFO ............................................................................................................ 860STL_PROJECT ............................................................................................................... 862STL_QUERY .................................................................................................................. 863STL_QUERY_METRICS ................................................................................................... 865STL_QUERYTEXT ........................................................................................................... 868STL_REPLACEMENTS .................................................................................................... 869STL_RESTARTED_SESSIONS ......................................................................................... 870STL_RETURN ................................................................................................................ 871STL_S3CLIENT ............................................................................................................... 872STL_S3CLIENT_ERROR .................................................................................................. 874STL_SAVE ..................................................................................................................... 875STL_SCAN ..................................................................................................................... 876STL_SESSIONS .............................................................................................................. 879STL_SORT ..................................................................................................................... 880STL_SSHCLIENT_ERROR ............................................................................................... 881STL_STREAM_SEGS ...................................................................................................... 882STL_TR_CONFLICT ........................................................................................................ 883STL_UNDONE ................................................................................................................ 883STL_UNIQUE ................................................................................................................. 884STL_UNLOAD_LOG ........................................................................................................ 886STL_USERLOG .............................................................................................................. 887STL_UTILITYTEXT .......................................................................................................... 888STL_VACUUM ................................................................................................................ 890STL_WINDOW ................................................................................................................ 892STL_WLM_ERROR ......................................................................................................... 893STL_WLM_RULE_ACTION ............................................................................................... 894STL_WLM_QUERY .......................................................................................................... 895

    Tabelas STV para dados de snapshot ........................................................................................ 897STV_ACTIVE_CURSORS ................................................................................................. 897STV_BLOCKLIST ............................................................................................................ 898STV_CURSOR_CONFIGURATION .................................................................................... 901STV_EXEC_STATE ......................................................................................................... 901STV_INFLIGHT ............................................................................................................... 902STV_LOAD_STATE ......................................................................................................... 904STV_LOCKS ................................................................................................................... 905STV_PARTITIONS ........................................................................................................... 906STV_QUERY_METRICS ................................................................................................... 908STV_RECENTS .............................................................................................................. 911STV_SESSIONS ............................................................................................................. 913STV_SLICES .................................................................................................................. 914STV_STARTUP_RECOVERY_STATE ................................................................................ 914STV_TBL_PERM ............................................................................................................. 915STV_TBL_TRANS ........................................................................................................... 917STV_WLM_QMR_CONFIG ................................................................................................ 918STV_WLM_CLASSIFICATION_CONFIG .............................................................................. 919STV_WLM_QUERY_QUEUE_STATE ................................................................................. 920STV_WLM_QUERY_STATE .............................................................................................. 921STV_WLM_QUERY_TASK_STATE .................................................................................... 922STV_WLM_SERVICE_CLASS_CONFIG .............................................................................. 923STV_WLM_SERVICE_CLASS_STATE ................................................................................ 925

    Exibies do sistema ............................................................................................................... 926

    Verso da API 2012-12-01xi

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    SVV_COLUMNS ............................................................................................................. 927SVL_COMPILE ............................................................................................................... 928SVV_DISKUSAGE ........................................................................................................... 930SVV_EXTERNAL_COLUMNS ............................................................................................ 932SVV_EXTERNAL_DATABASES ......................................................................................... 932SVV_EXTERNAL_PARTITIONS ......................................................................................... 933SVV_EXTERNAL_SCHEMAS ............................................................................................ 933SVV_EXTERNAL_TABLES ............................................................................................... 934SVV_INTERLEAVED_COLUMNS ....................................................................................... 935SVL_QERROR ................................................................................................................ 936SVL_QLOG .................................................................................................................... 936SVV_QUERY_INFLIGHT .................................................................................................. 937SVL_QUERY_QUEUE_INFO ............................................................................................. 938SVL_QUERY_METRICS ................................................................................................... 939SVL_QUERY_METRICS_SUMMARY .................................................................................. 941SVL_QUERY_REPORT .................................................................................................... 942SVV_QUERY_STATE ...................................................................................................... 944SVL_QUERY_SUMMARY ................................................................................................. 946SVL_S3LOG ................................................................................................................... 948SVL_S3PARTITION ......................................................................................................... 949SVL_S3QUERY .............................................................................................................. 950SVL_S3QUERY_SUMMARY ............................................................................................. 952SVL_S3RETRIES ............................................................................................................ 955SVL_STATEMENTTEXT ................................................................................................... 956SVV_TABLES ................................................................................................................. 957SVV_TABLE_INFO .......................................................................................................... 957SVV_TRANSACTIONS ..................................................................................................... 959SVL_USER_INFO ............................................................................................................ 961SVL_UDF_LOG ............................................................................................................... 962SVV_VACUUM_PROGRESS ............................................................................................. 963SVV_VACUUM_SUMMARY .............................................................................................. 965SVL_VACUUM_PERCENTAGE ......................................................................................... 966

    Tabelas de catlogo do sistema ................................................................................................ 967PG_DEFAULT_ACL ......................................................................................................... 967PG_EXTERNAL_SCHEMA ................................................................................................ 969PG_LIBRARY ................................................................................................................. 969PG_STATISTIC_INDICATOR ............................................................................................ 970PG_TABLE_DEF ............................................................................................................. 971Consultar as tabelas de catlogo ....................................................................................... 973

    Referncia da configurao .............................................................................................................. 978Modificar a configurao do servidor .......................................................................................... 978analyze_threshold_percent ........................................................................................................ 979

    Valores (padro em negrito) ............................................................................................. 979Descrio ....................................................................................................................... 979Exemplos ....................................................................................................................... 979

    datestyle ................................................................................................................................ 979Valores (padro em negrito) ............................................................................................. 979Descrio ....................................................................................................................... 979Exemplo ........................................................................................................................ 979

    describe_field_name_in_uppercase ............................................................................................. 980Valores (padro em negrito) ............................................................................................. 980Descrio ....................................................................................................................... 979Exemplo ........................................................................................................................ 979

    enable_result_cache_for_session ............................................................................................... 980Valores (padro em negrito) ............................................................................................. 980Descrio ....................................................................................................................... 979

    extra_float_digits ...................................................................................................................... 980

    Verso da API 2012-12-01xii

  • Amazon Redshift Guia do desenvolvedor de banco de dados

    Valores (padro em negrito) ............................................................................................. 980Descrio ....................................................................................................................... 981

    max_cursor_result_set_size ....................................................................................................... 981Valores (padro em negrito) ............................................................................................. 981Descrio ....................................................................................................................... 981

    query_group ........................................................................................................................... 981Valores (padro em negrito) ............................................................................................. 981Descrio ....................................................................................................................... 981

    search_path ............................................................................................................................ 982Valores (padro em negrito) ............................................................................................. 982Descrio ....................................................................................................................... 982Exemplo ........................................................................................................................ 982

    statement_timeout ................................................................................................................... 983Valores (padro em negrito) ............................................................................................. 983Descrio ....................................................................................................................... 983Exemplo ........................................................................................................................ 983

    timezone ................................................................................................................................ 984Valores (padro em negrito) ............................................................................................. 984Sintaxe .......................................................................................................................... 984Descrio ....................................................................................................................... 984Formatos de fuso horrio ................................................................................................. 984Exemplos ....................................................................................................................... 986

    wlm_query_slot_count .............................................................................................................. 986Valores (padro em negrito) ............................................................................................. 986Descrio ....................................................................................................................... 986Exemplos ....................................................................................................................... 987

    Banco de dados de exemplo ............................................................................................................ 988Tabela CATEGORY ................................................................................................................. 989Tabela DATE .......................................................................................................................... 989Tabela EVENT ........................................................................................................................ 990Tabela VENUE ....................................................................................................................... 990Tabela USERS ....................................................................................................................... 991Tabela LISTING ...................................................................................................................... 991Tabela SALES ........................................................................................................................ 992

    Nomes e abreviaes de fuso horrio ................................................................................................ 993Nomes de fuso horrio ............................................................................................................ 993Abreviaes de fuso horrio .................................................................................................... 1002

    Histrico do documento .................................................................................................................. 1006Atualizaes anteriores .......................................................................................................... 1007

    Verso da API 2012-12-01xiii

  • Amazon Redshift Guia do desenvolvedor de banco de dadosVoc est usando o Amazon Redshift pela primeira vez?

    Bem-vindoTpicos

    Voc est usando o Amazon Redshift pela primeira vez? (p. 1) Voc um desenvolvedor de bancos de dados? (p. 2) Pr-requisitos (p. 3)

    Esse o Amazon Redshift Database Developer Guide.

    O Amazon Redshift um servio de armazenamento de dados em escala de petabytes em nvel denegcios totalmente gerenciado.

    Este guia se concentra no uso do Amazon Redshift para criar e gerenciar um data warehouse. Se voctrabalha com bancos de dados como uma designer, desenvolvedor de software ou administrador, elefornece as informaes que voc precisa para projetar, construir, consultar e manter seu data warehouse.

    Voc est usando o Amazon Redshift pela primeiravez?

    Se voc est usando o Amazon Redshift pela primeira vez, recomendamos que leia as sees a seguirpara comear.

    Destaques e definio de preo do servio A pgina de detalhes do produto fornece a proposio devalor Amazon Redshift, destaques de servio e preo.

    Conceitos bsicos Conceitos bsicos do Amazon Redshift inclui um exemplo que apresenta voc aoprocesso de criao de um cluster de date warehouse, de criao de tabelas de banco de dados, deupload de dados e de teste das consultas do Amazon Redshift.

    Aps a concluso do guia de conceitos bsicos, recomendamos que voc explore um dos seguintes guias:

    Amazon Redshift Cluster Management Guide O guia de gerenciamento de cluster mostra como criar egerenciar clusters do Amazon Redshift.

    Se voc um desenvolvedor de aplicativos, voc pode usar a API de consulta do Amazon Redshift paragerenciar clusters programaticamente. Alm disso, as bibliotecas de SDK da AWS que envolvem a APIsubjacente do Amazon Redshift podem ajudar a simplificar suas tarefas de programao. Se preferiruma maneira mais interativa de gerenciar clusters, voc poder usar o console do Amazon Redshift e ainterface de linha de comando da AWS (CLI da AWS). Para obter informaes sobre a API e CLI, acesseos seguintes manuais: API Reference Referncia de ILC

    Amazon Redshift Database Developer Guide (este documento) Se voc um desenvolvedor de bancode dados, o guia do desenvolvedor de banco de dados explica como projetar, construir, consultar emanter os bancos de dados que compem seu data warehouse.

    Se voc est em transio para o Amazon Redshift a partir de outro sistema de banco de dados relacionalou aplicativo de data warehouse, voc deve estar ciente das importantes diferenas de como o Amazon

    Verso da API 2012-12-011

    redshift/https://docs.aws.amazon.com/redshift/latest/gsg/https://docs.aws.amazon.com/redshift/latest/mgmt/

  • Amazon Redshift Guia do desenvolvedor de banco de dadosVoc um desenvolvedor de bancos de dados?

    Redshift implementado. Para um resumo das consideraes mais importantes para projeo de tabelase dados de carregamento, consulte Melhores prticas do Amazon Redshift para projetar tabelas (p. 28)e Melhores prticas para carregamento de dados (p. 31). Amazon Redshift baseado no PostgreSQL8.0.2. Para obter uma lista detalhada das diferenas entre Amazon Redshift e PostgreSQL, consulteAmazon Redshift e PostgreSQL (p. 322).

    Voc um desenvolvedor de bancos de dados?Se voc um usurio de banco de dados, designer de bancos de dados, desenvolvedor de bancos dedados ou administrador de bancos de dados, a tabela a seguir o ajudar a encontrar o que voc estprocurando.

    Se voc deseja... Recomendamos

    Comece a usar oAmazon Redshiftrapidamente

    Comece seguindo as etapas em Conceitos bsicos do Amazon Redshiftpara implantar rapidamente um cluster, conectar-se a um banco de dados eexperimentar algumas consultas.

    Quando estiver pronto para criar seu banco de dados, carregar dados emtabelas e gravar consultas para manipular dados no data warehouse, voltepara o guia do desenvolvedor de bancos de dados.

    Saiba mais sobrearquitetura interna dodata warehouse doAmazon Redshift.

    A Viso geral do sistema do Amazon Redshift (p. 4) fornece uma visogeral de alto nvel da arquitetura interna do Amazon Redshift.

    Caso queira uma viso geral mais abrangente do servio da web do AmazonRedshift, acesse a pgina de detalhes do produto do Amazon Redshift.

    Crie bancos de dados,tabelas, usurios eoutros objetos debancos de dados.

    Conceitos bsicos do uso de bancos de dados (p. 14) uma introduorpida aos princpios de desenvolvimento SQL.

    O SQL do Amazon Redshift (p. 321) possui a sintaxe e exemplos decomandos funes SQL e outros elementos SQL do Amazon Redshift.

    Melhores prticas do Amazon Redshift para projetar tabelas (p. 28) forneceum resumo das recomendaes para escolha de chaves de classificao,chaves de distribuio e codificaes de compactao.

    Saiba como projetartabelas paradesempenho ideal.

    Projeo de tabelas (p. 125) detalha as consideraes para aplicao decompactao dos dados em colunas de tabelas e escolha de chaves dedistribuio e classificao.

    Carregar dados. Carregamento de dados (p. 190) explica os procedimentos paracarregamento de grandes conjuntos de dados de tabelas do AmazonDynamoDB ou de arquivos de tabelas ou de arquivos simples armazenadosem buckets do Amazon S3.

    Melhores prticas para carregamento de dados (p. 31) fornece dicas parao carregamento seus dados de forma rpida e eficaz.

    Gerenciar usurios,grupos e segurana dobanco de dados.

    Gerenciar segurana do banco de dados (p. 118) aborda tpicos desegurana do banco de dados.

    Monitorar e otimizaro desempenho dosistema.

    O Referncia de tabelas do sistema (p. 822) detalha as tabelas de sistemae exibies que voc pode consultar quanto ao status do banco de dados emonitorar consultas e processos.

    Verso da API 2012-12-012

    https://docs.aws.amazon.com/redshift/latest/gsg/redshift/

  • Amazon Redshift Guia do desenvolvedor de banco de dadosPr-requisitos

    Se voc deseja... RecomendamosVoc tambm deve consultar Amazon Redshift Cluster Management Guidepara saber como usar o Console de Gerenciamento da AWS para verificar asade do sistema, monitorar mtricas e fazer backup e restaurar clusters.

    Analisar e relatarinformaes deconjuntos de dadosmuito grandes.

    Vrios fornecedores populares de software esto certificando o AmazonRedshift com suas ofertas para permitir que voc continue utilizando asferramentas que voc usa hoje. Para obter mais informaes, consulte apgina do parceiro Amazon Redshift.

    O Referncia SQL (p. 321) possui todos os detalhes para expresses,comandos, e funes SQL compatveis com o Amazon Redshift.

    Pr-requisitosAntes de usar este guia, voc deve completar estas tarefas.

    Instalar um cliente SQL. Iniciar um cluster do Amazon Redshift Conectar seu cliente SQL ao banco de dados principal do cluster.

    Para obter instrues detalhadas, consulte Conceitos bsicos do Amazon Redshift.

    Voc tambm saber como usar seu cliente SQL e deve ter uma compreenso fundamentalmente doidioma SQL.

    Verso da API 2012-12-013

    https://docs.aws.amazon.com/redshift/latest/mgmt/redshift/partners/https://docs.aws.amazon.com/redshift/latest/gsg/

  • Amazon Redshift Guia do desenvolvedor de banco de dadosArquitetura de sistema do data warehouse

    Viso geral do sistema do AmazonRedshift

    Tpicos Arquitetura de sistema do data warehouse (p. 4) Desempenho (p. 7) Armazenamento colunar (p. 9) Arquitetura interna e operao do sistema (p. 11) Gerenciamento da carga de trabalho (p. 11) Usar o Amazon Redshift com outros servios (p. 12)

    Data warehouse do Amazon Redshift uma consulta de banco de dados relacional de classe empresariale um sistema de gerenciamento.

    O Amazon Redshift d suporte a conexes cliente com muitos tipos de aplicativos, inclusive BI (BusinessIntelligence), relatrios, dados e ferramentas analticas.

    Ao executar consultas analticas, voc recupera, compara e avalia grandes volumes de dados emoperaes de multiestgio para produzir um resultado final.

    O Amazon Redshift obtm armazenamento eficaz e desempenho de consulta ideal por meio de umacombinao de processamento paralelo significativo, armazenamento de dados colunar e esquemas decodificao de compactao de dados direcionados muito eficientes. Esta seo apresenta uma introduo arquitetura de sistema do Amazon Redshift.

    Arquitetura de sistema do data warehouseEsta seo apresenta os elementos da arquitetura de data warehouse do Amazon Redshift conformemostrado na figura a seguir.

    Verso da API 2012-12-014

  • Amazon Redshift Guia do desenvolvedor de banco de dadosArquitetura de sistema do data warehouse

    Aplicativos cliente

    O Amazon Redshift se integra a diversas ferramentas de carregamento de dados e ETL (extrao,transformao e carregamento), alm de ferramentas de BI (business intelligence), relatrios, mineraode dados e analticas. Como o Amazon Redshift se baseia no PostgreSQL padro do setor, a maioria dosaplicativos cliente SQL existentes funcionar somente com alteraes mnimas. Para obter informaessobre diferenas importantes entre o Amazon Redshift SQL e o PostgreSQL, consulte Amazon Redshift ePostgreSQL (p. 322).

    Conexes

    O Amazon Redshift se comunica com aplicativos clientes usando os drivers JDBC e ODBC paraPostgreSQL padro no setor. Para obter mais informaes, consulte JDBC e ODBC do Amazon Redshift ePostgreSQL (p. 323).

    Clusters

    O componente de infraestrutura bsico de um data warehouse do Amazon Redshift um cluster.

    Um cluster composto de um ou mais ns de computao. Se um cluster for provisionado com doisou mais ns de computao, um n lder adicional coordenar os ns de computao e processara comunicao externa. O aplicativo cliente interage diretamente somente com o n lder. Os ns decomputao so transparentes a aplicativos externos.

    N lder

    O n lder gerencia a comunicao com programas cliente e toda a comunicao com ns de computao.Ele analisa e desenvolve planos de execuo para realizar operaes de banco de dados, em especial, asrie de etapas necessrias a fim de obter resultados para consultas complexas. Com base no plano deexecuo, o n lder compila cdigo, distribui o cdigo compilado aos ns de computao e atribui umaparte dos dados a cada n de computao.

    O n lder distribui instrues SQL para os ns de computao somente quando uma consulta referenciatabelas armazenadas nos ns de computao. Todas as outras consultas so executadas de maneiraexclusiva no n lder. O Amazon Redshift foi projetado para implementar determinadas funes SQL

    Verso da API 2012-12-015

  • Amazon Redshift Guia do desenvolvedor de banco de dadosArquitetura de sistema do data warehouse

    somente no n lder. Uma consulta que usa qualquer uma dessas funes retornar um erro se referenciartabelas que residam nos ns de computao. Para obter mais informaes, consulte Funes SQLcompatveis no n de liderana (p. 321).

    Ns de computao

    O n lder compila cdigo de elementos individuais do plano de execuo e atribui o cdigo aos ns decomputao individuais. Os ns de computao executam o cdigo compilado e reenviam resultadosintermedirios ao n lder para agregao final.

    Cada n de computao tem a prpria CPU dedicada, a memria e o armazenamento em discoconectado, determinados pelo tipo de n. medida que a carga de trabalho cresce, voc pode aumentara capacidade computacional e a capacidade de armazenamento de um cluster aumentando o nmero dens, atualizando o tipo de n ou ambos.

    O Amazon Redshift oferece dois tipos de ns; ns de armazenamento densos e ns de computaodensos. Cada n oferece duas opes de armazenamento. Voc pode comear com um nico n de 160GB e escalonar at vrios ns de 16 TB para dar suporte a um petabyte de dados ou