Estilos de distribuição - Amazon Redshift

Estilos de distribuição

Ao criar uma tabela, é possível determinar um destes quatro estilos de distribuição; AUTO, EVEN, KEY ou ALL.

Se você não especificar um estilo de distribuição, o Amazon Redshift usa distribuição AUTO.

Distribuição AUTO

Com a distribuição AUTO, o Amazon Redshift atribui um estilo de distribuição ideal com base no tamanho dos dados da tabela. Por exemplo, se o estilo de distribuição AUTO for especificado, o Amazon Redshift inicialmente vai atribuir o estilo de distribuição ALL a uma tabela pequena. Quando a tabela crescer, o Amazon Redshift poderá alterar o estilo de distribuição para KEY, escolhendo a chave primária (ou uma coluna da chave primária composta) como chave de distribuição. Se a tabela crescer e nenhuma das colunas for adequada para ser a chave de distribuição, o Amazon Redshift vai alterar o estilo de distribuição para EVEN. A mudança no estilo de distribuição ocorre em segundo plano com impacto mínimo nas consultas do usuário.

Para visualizar ações que o Amazon Redshift executou automaticamente para alterar uma chave de distribuição de tabela, consulte SVL_AUTO_WORKER_ACTION. Para exibir as recomendações atuais sobre a alteração de uma chave de distribuição de tabela, consulte SVV_ALTER_TABLE_RECOMMENDATIONS.

Para visualizar o estilo de distribuição aplicado a uma tabela, consulte a exibição de catálogo de sistema PG_CLASS_INFO. Para obter mais informações, consulte Visualização dos estilos de distribuição. Se você não especificar um estilo de distribuição com a instrução CREATE TABLE, o Amazon Redshift aplicará a distribuição AUTO.

Distribuição EVEN

O nó de liderança distribui as linhas ao longo das fatias de modo round-robin, independente dos valores de qualquer coluna específica. A distribuição EVEN é apropriada quando uma tabela não participa de junções. Também é apropriado quando não há uma opção clara entre a distribuição KEY e ALL.

Distribuição KEY

As linhas são distribuídas de acordo com os valores em uma coluna. O nó líder coloca os valores correspondentes na mesma fatia do nó. Se você distribuir um par de tabelas nas chaves de união, o nó líder coloca as linhas nas fatias de acordo com os valores nas colunas de união. Desta forma, os valores correspondentes das colunas comuns são armazenados fisicamente juntos.

Distribuição ALL

Uma cópia de toda a tabela é distribuída para cada nó. Onde a distribuição EVEN ou a distribuição KEY coloca apenas uma porção das linhas da tabela em cada nó, a distribuição ALL garante que todas as linhas sejam dispostas para cada junção na qual a tabela participa.

A distribuição ALL multiplica o armazenamento exigido pelo número de nós no cluster e, portanto, ela demora muito mais tempo para carregar, atualizar ou inserir dados em várias tabelas. A distribuição ALL é apropriada somente para tabelas relativamente lentas; ou seja, tabelas que não são atualizadas frequentemente ou extensivamente. Como o custo de redistribuir tabelas pequenas durante uma consulta é baixo, não há um benefício significativo em definir tabelas de pequena dimensão como DISTSTYLE ALL.

nota

Quando você tiver especificado um estilo de distribuição para uma coluna, o Amazon Redshift processa a distribuição em nível do cluster. O Amazon Redshift não exige ou é compatível com o conceito de particionamento de dados em objetos do banco de dados. Você não precisa criar espaços de tabela ou definir esquemas de particionamento para tabelas.

Em alguns cenários, você pode alterar o estilo de distribuição de uma tabela depois de criada. Para obter mais informações, consulte ALTER TABLE. Nos cenários em que não é possível mudar o estilo de distribuição de uma tabela depois da sua criação, você pode criar novamente a tabela e preenchê-la com uma cópia profunda. Para obter mais informações, consulte Execução de uma cópia profunda