Trabalhar com otimização automática de tabelas - Amazon Redshift

Trabalhar com otimização automática de tabelas

Otimização automática de tabelas é um recurso de auto-ajuste que otimiza automaticamente o design de tabelas aplicando chaves de classificação e distribuição sem a necessidade de intervenção do administrador. Usando a automação para ajustar o design de tabelas, você pode começar a usar e obter a performance mais rápida sem investir tempo para ajustar manualmente e implementar otimizações de tabelas.

A otimização automática de tabelas observa continuamente como as consultas interagem com tabelas. Ele usa métodos avançados de inteligência artificial para escolher chaves de classificação e distribuição para otimizar a performance do workload do cluster. Se o Amazon Redshift determinar que a aplicação de uma chave melhora a performance do cluster, as tabelas serão alteradas automaticamente em poucas horas a partir do momento em que o cluster foi criado, com impacto mínimo nas consultas.

Para aproveitar essa automação, um administrador do Amazon Redshift cria uma nova tabela ou altera uma tabela existente para habilitá-la a usar a otimização automática. Tabelas existentes com um estilo de distribuição ou chave de classificação de AUTO já estão habilitados para automação. Quando você executa consultas nessas tabelas, o Amazon Redshift determina se uma chave de classificação ou uma chave de distribuição melhorará a performance. Em caso afirmativo, o Amazon Redshift modificará automaticamente a tabela sem exigir a intervenção do administrador. Se um número mínimo de consultas for executado, as otimizações serão aplicadas dentro de horas após o cluster ser iniciado.

Se o Amazon Redshift determinar que uma chave de distribuição melhora a performance das consultas, tabelas onde o estilo de distribuição é AUTO pode ter seu estilo de distribuição alterado para KEY.

Habilitar a otimização automática de tabelas

Por padrão, as tabelas criadas sem definir explicitamente chaves de classificação ou chaves de distribuição são definidas como AUTO. No momento da criação da tabela, você também pode definir explicitamente uma chave de classificação ou distribuição manualmente. Se você definir a chave de classificação ou distribuição, a tabela não será gerenciada automaticamente.

Para permitir que uma tabela existente seja otimizada automaticamente, use as opções de instrução ALTER para alterar a tabela para AUTO. Você pode optar por definir a automação para chaves de classificação, mas não para chaves de distribuição (e vice-versa). Se você executar uma instrução ALTER para converter uma tabela para ser uma tabela automatizada, chaves de classificação existentes e estilos de distribuição serão preservados.

ALTER TABLE table_name ALTER SORTKEY AUTO;
ALTER TABLE table_name ALTER DISTSTYLE AUTO;

Para obter mais informações, consulte ALTER TABLE.

Inicialmente, uma tabela não tem chave de distribuição ou chave de classificação. O estilo de distribuição é definido como EVEN ou ALLdependendo do tamanho da tabela. À medida que a tabela cresce em tamanho, o Amazon Redshift aplica as chaves de distribuição e as chaves de classificação ideais. As otimizações são aplicadas dentro de horas após um número mínimo de consultas serem executadas. Ao determinar otimizações de chave de classificação, o Amazon Redshift tenta otimizar os blocos de dados lidos do disco durante uma varredura de tabela. Ao determinar otimizações de estilo de distribuição, o Amazon Redshift tenta otimizar o número de bytes transferidos entre nós de cluster.

Remover a otimização automática de tabelas de uma tabela

Você pode remover uma tabela da otimização automática. A remoção de uma tabela da automação envolve a seleção de uma chave de classificação ou estilo de distribuição. Para alterar o estilo de distribuição, especifique um estilo de distribuição específico.

ALTER TABLE table_name ALTER DISTSTYLE EVEN;
ALTER TABLE table_name ALTER DISTSTYLE ALL;
ALTER TABLE table_name ALTER DISTSTYLE KEY DISTKEY c1;

Para alterar uma chave de classificação, você pode definir uma chave de classificação ou escolher nenhuma.

ALTER TABLE table_name ALTER SORTKEY(c1, c2);
ALTER TABLE table_name ALTER SORTKEY NONE;

Ações de monitoramento de otimização automática de tabelas

A visualização do sistema SVV_ALTER_TABLE_RECOMMENDATIONS registra as recomendações atuais do Amazon Redshift Advisor para tabelas. Essa exibição mostra recomendações para todas as tabelas, aquelas que são definidas para otimização automática e aquelas que não são.

Para visualizar se uma tabela está definida para otimização automática, consulte a visualização do sistema SVV_TABLE_INFO. As entradas aparecem somente para tabelas visíveis no banco de dados da sessão atual. Recomendações são inseridas na exibição duas vezes por dia, começando em horas a partir do momento em que o cluster foi criado. Após uma recomendação estar disponível, ela começa dentro de uma hora. Depois que uma recomendação for aplicada (pelo Amazon Redshift ou por você), ela não aparecerá mais na visualização.

A visualização do sistema SVL_AUTO_WORKER_ACTION mostra um log de auditoria de todas as ações realizadas pelo Amazon Redshift e o estado anterior da tabela.

A visualização do sistema SVV_TABLE_INFO lista todas as tabelas no sistema, juntamente com uma coluna para indicar se a chave de classificação e o estilo de distribuição da tabela estão definidos como AUTO.

Para obter mais informações sobre essas visualizações de sistema, consulte Monitoramento do sistema (somente provisionado).