Todos os produtos
Search
Central de documentação

MaxCompute:Recomendações de otimização de clustering

Última atualização: Sep 08, 2026

O MaxCompute analisa os padrões recentes de leitura e escrita das suas tabelas para gerar recomendações de otimização de clustering. Essas recomendações ajudam a melhorar o desempenho dos jobs e a reduzir o consumo de CUs. Use os benefícios estimados e as sugestões detalhadas para decidir se deve aplicar uma recomendação.

Limitações

  • Regiões suportadas: China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Shenzhen) e China (Chengdu).

  • As recomendações de otimização de clustering não são suportadas em projetos com modelo de três camadas.

  • A análise de otimização de clustering abrange o histórico de execução da maioria dos jobs, mas exclui aqueles com múltiplos Fuxi Jobs; portanto, alguns jobs podem não ser analisados.

  • Para saber mais sobre a otimização de jobs que usam tabelas com clustering, consulte Hash Clustering.

Visualizar recomendações de otimização de clustering

Visualize as tabelas recomendadas, seus benefícios estimados após a aplicação do clustering e sugestões detalhadas para todos os projetos ou para projetos específicos na região atual. Siga estas etapas:

  1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Intelligent Optimization > Data Layout Optimization.

  3. Na aba Clustering Optimization, clique em Estimated Benefits e use os filtros para verificar as tabelas com recomendações de clustering.

    Parâmetro

    Descrição

    Project Name

    Selecione um projeto do MaxCompute na lista suspensa. Se nenhum projeto for selecionado, o padrão será All Projects.

    Table Name

    Insira o nome da tabela. A busca aproximada é suportada. Separe vários nomes de tabela com vírgula (,).

    Recommendation Generation Date

    Data em que a recomendação foi gerada. O dia anterior é selecionado por padrão.

    • Métricas de benefício estimado

      Métrica

      Descrição

      Estimated Number of Beneficial Jobs/Day

      Número estimado de jobs diários que se beneficiariam caso a tabela fosse convertida para uma tabela com clustering.

      Estimated Shuffle Reduction/Day

      Redução diária estimada no volume de shuffle após converter a tabela recomendada em uma tabela com clustering.

      Reduzir o volume de shuffle diminui efetivamente as CU-horas consumidas pelos jobs. Normalmente, uma redução de 1 TB no volume de shuffle economiza de 2 a 4 CU-horas por dia.

    • Lista de recomendações de otimização

      Revise os valores sugeridos para os parâmetros na lista e visualize a recomendação para obter mais detalhes sobre a otimização da tabela.

      Coluna

      Descrição

      Project

      Projeto que contém a tabela recomendada.

      Table Name

      Nome da tabela recomendada.

      Type

      Tipo de clustering recomendado para a tabela. Atualmente, apenas recomendações de Hash Clustering são suportadas.

      Recommended Clustering Key

      Chave de cluster recomendada para a tabela. Esta chave afeta principalmente a remoção de shuffle e a filtragem de dados para consultas pontuais.

      Recommended Sort Key

      Chave de ordenação recomendada para a tabela. Esta chave afeta principalmente a filtragem de dados e a compressão de armazenamento.

      Bucket Count

      Contagem de buckets recomendada para a tabela. Este valor afeta principalmente o paralelismo das operações de escrita na tabela e dos jobs de leitura que usam remoção de shuffle.

      Recommendation Index

      Classificação de 1 a 5 estrelas. Mais estrelas indicam uma recomendação mais forte para modificar os atributos de clustering da tabela. A classificação é calculada da seguinte forma:

      Dimensão de avaliação

      Regra de dedução

      Penalidade

      Atualidade do padrão otimizável

      Janela de observação inferior a 14 dias

      Deduz 1 estrela

      Redução do volume de shuffle na leitura

      Redução inferior a 1 TB

      Deduz 1 estrela

      Atividade de jobs de escrita

      Nenhum job de escrita registrado no dia

      Deduz 1 estrela

      Número de partições otimizáveis

      • Deduz 1 estrela se o número de partições otimizáveis for maior que 3

      • Deduz 2 estrelas se o número de partições otimizáveis for maior que 31

      Ajuste dinâmico

      Nota
      • Se nenhum job de escrita for registrado no dia, uma estrela é deduzida porque não é possível estimar o custo adicional das escritas diárias.

      • Caso existam muitas partições otimizáveis, a otimização de clustering só entra em vigor após a reescrita de muitas partições existentes com novos dados ou após reescrita ativa. Esse atraso resulta na dedução de estrelas.

      Estimated Shuffle Reduction/Day

      Redução diária estimada no volume de shuffle após a conversão da tabela para uma tabela com clustering.

      Observation Interval

      Número de dias em que a mesma recomendação de otimização apareceu durante o período de observação.

      Actions

      Clique em uma recomendação para abrir a página Details of Table with Optimization Recommendations. A página inclui as seguintes seções:

      • Optimization Recommendations

      • Current Status

      • Overview of Estimated Benefits

        • Estimated Shuffle Reduction/Day

        • Beneficial Table Read Jobs

        • Full Table Write Jobs

        • Full Table Read Jobs

Aplicar recomendações de otimização de clustering

Aplicar recomendações à tabela original

  • Pelo console

    Para tabelas particionadas, aplique diretamente a recomendação para converter a tabela original em uma tabela com clustering com um único clique. Siga estas etapas:

    1. No painel de navegação à esquerda, escolha Intelligent Optimization > Data Layout Optimization.

    2. Na aba Clustering Optimization.

    3. Na coluna Estimated Benefits.

    4. No canto superior direito, clique em <!--@uicontrol {"id":"6d82e033e6kzs","data-isbold="true"}-->Apply Recommendations para concluir a conversão.

  • Por comando SQL:

    -- Change a table to a Hash Clustering table.
    ALTER TABLE <table_name> [CLUSTERED BY (<col_name> [, <col_name>, ...])
                           [SORTED BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])]
                           INTO <number_of_buckets> BUCKETS];
  • Após a conversão, inspecione a tabela com clustering otimizada e execute seus jobs de leitura associados para garantir que tudo opere conforme o esperado. Se surgir algum problema, faça imediatamente um rollback executando o seguinte comando:

    -- Change a Hash Clustering table back to a non-clustered table.
    ALTER TABLE <table_name> NOT CLUSTERED;
Importante
  • Após converter uma tabela para clustering, não é possível realizar escritas incrementais, como INSERT INTO ou uploads de dados via Tunnel.

  • Não é possível aplicar recomendações de clustering diretamente a uma tabela não particionada.

  • Quando os atributos de clustering são modificados, a latência e o consumo de CUs dos jobs de escrita aumentam. O consumo de CUs dos jobs de leitura diminui, resultando em uma economia líquida geral de CUs.

  • Em alguns cenários, recomendamos reescrever as partições e verificar os benefícios para jobs downstream otimizáveis. Para mais informações, consulte Rewrite partition data (Recommended).

Reescrever dados da partição (Recomendado)

Ao modificar os atributos de clustering de uma tabela, as alterações aplicam-se apenas às novas partições. Para aplicar otimizações às partições existentes, reescreva seus dados. Nos cenários abaixo, você precisa reescrever as partições e verificar os benefícios para jobs downstream otimizáveis:

  • A tabela é dependência de jobs de alta prioridade e sensíveis à latência.

  • A tabela possui partições grandes onde operações únicas de escrita excedem 10 TB.

  • Um job downstream lê de múltiplas partições, que devem ser reescritas simultaneamente como partições com clustering para aplicar a otimização.

  1. Para tabelas grandes em um job diário de mesclagem completa e incremental, reescreva a partição do último dia. Essa prática mitiga o risco de aumento de custos e tempos de execução mais lentos na primeira execução do job no dia seguinte.

    -- Assume the partition column is ds, and new partitions such as 20241015 and 20241016 are added daily.
    -- The data in new partitions is generated by merging incremental data from the previous day's partition.
    INSERT OVERWRITE TABLE <table_name> PARTITION(ds) 
    SELECT * FROM <table_name> WHERE ds = max_pt('<table_name>');
  2. Se um job otimizável ler de múltiplas partições existentes, recomendamos reescrever as partições existentes dentro do intervalo de leitura para aplicar a otimização de clustering mais rapidamente.

    -- Assume the partition column is ds, and new partitions such as 20241015, 20241016, etc., are added daily.
    -- The read range starts from 20241015.
    INSERT OVERWRITE TABLE <table_name> PARTITION(ds) 
    SELECT * FROM <table_name> WHERE ds >='20241015';
  3. Após a reescrita, recomendamos executar um teste do job otimizável para verificar se a otimização é eficaz.

Aplicar recomendações a uma nova tabela

Para tabelas não particionadas, não é possível modificar diretamente os atributos de clustering da tabela original. Aplique manualmente a recomendação criando uma nova tabela com clustering. Siga estas etapas:

  1. Crie uma nova tabela com clustering.

    -- Check the CREATE TABLE statement of the existing table.
    SHOW CREATE TABLE <original_table>;
    -- Create a new cluster table by inserting the CLUSTER information at the appropriate position in the CREATE TABLE syntax.
    CREATE TABLE <new_table> [CLUSTERED BY (<col_name> [, <col_name>, ...])
                              [SORTED BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])]
                              INTO <number_of_buckets> BUCKETS];
  2. Carregue dados na nova tabela.

    INSERT OVERWRITE TABLE <new_table>
    SELECT * FROM <original_table>;
  3. Renomeie a tabela original para uma tabela de backup.

    ALTER TABLE <original_table> RENAME TO <original_table_backup>;
  4. Renomeie a nova tabela com o nome da tabela original.

    ALTER TABLE <new_table> RENAME TO <original_table>;

A nova tabela, agora renomeada com o nome da tabela original, agrupa os dados de acordo com os novos atributos de clustering.

Reverter recomendações de clustering

Inspecione a nova tabela com clustering para garantir que todos os jobs operem conforme o esperado. Se surgir algum problema, faça imediatamente um rollback executando os seguintes comandos:

  1. Exclua a nova tabela, que tem o mesmo nome da tabela original.

    DROP TABLE IF EXISTS <original_table>;
  2. Renomeie a tabela de backup com o nome da tabela original.

    ALTER TABLE <original_table_backup> RENAME TO <original_table>;

Visualizar os benefícios da otimização de clustering

Na aba Actions para visualizar os benefícios da otimização de clustering. Siga estas etapas:

  1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Details of Table with Optimization Recommendations > Apply Recommendations.

  3. Na aba Clustering Optimization.

  4. Filtre por Actual Benefits para visualizar um resumo e detalhes dos benefícios obtidos com tabelas com clustering cujos atributos foram modificados.

    • Descrições das métricas de benefício

      Métrica

      Descrição

      <!--@uicontrol {"id":"5d4e39ced3yf9","data-isbold="true"}-->Number of Benefited Jobs

      Número de vezes que a tabela com clustering modificada recentemente foi lida durante o período de análise.

      <!--@uicontrol {"id":"413478b42abpn","data-isbold="true"}-->Saved CU-hours

      Economia de CU-horas para todos os jobs que leram a tabela com clustering modificada durante o período de análise, em comparação ao consumo antes da modificação.

      <!--@uicontrol {"id":"63e0ea10930hi","data-isbold="true"}-->Reduced Shuffle Amount

      Redução no volume de shuffle para todos os jobs que leram a tabela com clustering modificada recentemente durante o período de análise, em comparação ao volume de shuffle antes da modificação da tabela.

      Os benefícios da otimização de clustering são calculados comparando o consumo médio de jobs com a mesma Signature antes e depois da modificação. As estatísticas abrangem tabelas com clustering modificadas com base em recomendações nos últimos 365 dias.

    • Lista de tabelas otimizadas

      Coluna

      Descrição

      Intelligent Optimization

      Projeto que contém a tabela com clustering cujos atributos foram modificados.

      Data Layout Optimization

      Nome da tabela com atributos de clustering modificados.

      Clustering Optimization

      Data da última modificação dos atributos de clustering da tabela.

      Actual Benefits

      Número de vezes que a tabela foi lida durante o período de análise após a modificação de seus atributos de clustering.

      Project Name

      Redução na duração da computação para jobs que leram esta tabela durante o período de análise, em comparação à duração antes da modificação dos atributos.

      Analysis Time

      Redução no consumo de CU-horas para jobs que leram esta tabela durante o período de análise, em comparação ao consumo antes da modificação dos atributos.

      Reduced Shuffle Amount

      Redução no volume de shuffle para jobs que leram esta tabela durante o período de análise, em comparação ao volume antes da modificação dos atributos.

      Actions

      Clique em uma recomendação para abrir a página Details of Optimized Table. A página inclui as seguintes seções:

      • Project

        • Table Name

        • Cluster key

        • Sort key

        • Clustering Attribute Modification Time

        • Number of Benefited Jobs

      • Saved Computing Duration

        • Number of Benefited Jobs

        • Saved CU-hours

        • Reduced Shuffle Amount

      • Lista de jobs de leitura beneficiados

        • Signature

        • Saved Computing Duration

        • Current Status of Table

        • Clustering Type

    Importante
    • Após converter uma tabela para clustering, as estatísticas diárias de benefícios dos jobs são atualizadas em base T+1. Para resultados de otimização em tempo real, use ferramentas de O&M de jobs ou LogView.

    • As estatísticas de benefícios da otimização de clustering baseiam-se em dados históricos de execução de jobs com a mesma Signature e são influenciadas por fatores como flutuações diárias no desempenho dos jobs. Caso os benefícios não atendam às expectativas, compare os detalhes de execução dos jobs em datas diferentes para identificar os fatores influentes.

    • As estatísticas de benefícios da otimização de clustering servem apenas como referência. Para a economia final de CUs, consulte sua fatura.