Designação de estilos de distribuição - Amazon Redshift

Designação de estilos de distribuição

As considerações e recomendações para designação de estilos de distribuição neste seção usam um esquema estrela como exemplo. O design do seu banco de dados pode ser baseado em um esquema em estrela, alguma variante de um esquema em estrela ou um esquema totalmente diferente. O Amazon Redshift foi projetado para funcionar de maneira eficaz com qualquer projeto de esquema que você escolher. Os princípios nesta seção podem ser aplicados a qualquer esquema de design.

  1. Especifique a chave primária e chaves estrangeiras para todas as suas tabelas.

    O Amazon Redshift não impõe restrições de chave primária e chave estrangeira, mas o otimizador de consulta as usa ao gerar planos de consulta. Se você definir chaves primárias e chaves estrangeiras, seu aplicativo deverá manter a validade das chaves.

  2. Distribua a tabela de fatos e sua maior tabela de dimensões em suas colunas comuns.

    Escolha a maior dimensão com base no tamanho do conjunto de dados que participa da junção mais comum, não apenas no tamanho da tabela. Se uma tabela é geralmente filtrada usando uma cláusula WHERE, somente uma porção de suas linhas participam da junção. Tal tabela tem menor impacto na redistribuição do que uma tabela menor que contribua mais dados. Designe a chave primária da tabela de dimensões e a chave estrangeira correspondente da tabela de fatos como DISTKEY. Se várias tabelas usarem a mesma chave de distribuição, elas também serão colocadas com a tabela de fatos. Sua tabela de fatos pode ter apenas uma chave de distribuição. Quaisquer tabelas que se juntam em outra chave não são colocadas com a tabela de fatos.

  3. Designe as chaves de distribuição para as outras tabelas de dimensões.

    Distribua as tabelas em suas chaves primárias ou em suas chaves estrangeiras, dependendo de como elas geralmente se juntam com outras tabelas.

  4. Avalie a necessidade de alterar algumas das tabelas de dimensões para usar a distribuição ALL.

    Se uma tabela de dimensão não pode ser disposta com a tabela de fato ou outras tabelas de junção importantes, você pode melhorar a performance da consulta significativamente ao distribuir toda a tabela para todos os nós. O uso de distribuição ALL multiplica as exigências de espaço de armazenamento e aumenta os tempos de carregamento e operações de manutenção, portanto você deve considerar todos os fatores antes de optar pela distribuição ALL. A seção a seguir explica como identificar candidatos para a distribuição ALL ao avaliar o plano EXPLAIN.

  5. Use a distribuição AUTO para as tabelas restantes.

    Se uma tabela for amplamente desnormalizada e não participar de junções, ou se você não tiver uma opção clara de outro estilo de distribuição, use a distribuição AUTO.

Para permitir que o Amazon Redshift escolha o estilo de distribuição apropriado, não especifique explicitamente um estilo de distribuição.