Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Autotune ajusta automaticamente as configurações do Apache Spark para reduzir o tempo de execução da carga de trabalho e melhorar o desempenho. Ele ajuda você a evitar o ajuste manual, o que normalmente requer avaliação e erro repetidos. O Autotune usa dados de execução históricos de suas cargas de trabalho para descobrir e aplicar configurações efetivas de forma iterativa para cada carga de trabalho.
Observação
O ajuste de consultas do Autotune no Microsoft Fabric está atualmente em versão prévia. Ele está disponível em todas as regiões de produção, mas está desabilitado por padrão. Habilite-o em uma configuração do Spark de ambiente ou para uma única sessão no notebook ou no código de Definição de Tarefa do Spark.
Padrões e requisitos de configuração
- Comportamento padrão: o Autotune está desativado por padrão.
- Nenhuma configuração necessária quando desativada: se você não habilitar o autotune, o Spark usará seu comportamento de configuração padrão.
-
Configuração necessária para usar o autotune: defina
spark.ms.autotune.enabled=true:- No nível do ambiente, todos os notebooks e trabalhos que usam esse ambiente herdam a configuração. Consulte Habilitar o autotune.
- Somente em um notebook ou em uma sessão de Definição de Trabalho do Spark. Consulte Habilitar o autotune para uma única sessão.
Ajuste de consulta
O Autotune ajusta estas três configurações do Apache Spark para cada consulta:
-
spark.sql.shuffle.partitions: Define o número de partições para embaralhamento de dados durante junções ou agregações. O padrão é200. -
spark.sql.autoBroadcastJoinThreshold: define o tamanho máximo da tabela, em bytes, para transmissão aos nós de trabalho durante uma junção. O padrão é10 MB. -
spark.sql.files.maxPartitionBytes: define o máximo de bytes a serem empacotados em uma partição ao ler arquivos. Aplica-se a fontes de arquivo Parquet, JSON e ORC. O padrão é128 MB.
O ajuste de consulta do Autotune examina cada consulta e cria um modelo de machine learning separado para essa consulta. Ele funciona melhor para:
- Consultas repetitivas
- Consultas com execução prolongada (mais de 15 segundos)
- Consultas da API SQL do Apache Spark (não a API RDD)
Você pode usar o autotune com notebooks, definições de trabalho do Spark e pipelines. O benefício varia de acordo com a complexidade da consulta e a forma de dados. No teste, os maiores ganhos aparecem em padrões exploratórios de análise de dados, como leituras, junções, agregações e classificações.
Como funciona o autotune
O Autotune usa um loop de otimização iterativa:
- Comece com os valores de configuração padrão do Spark.
- Gerar configurações de candidato em torno de uma linha de base (centroid).
- Preveja o melhor candidato usando um modelo treinado em execuções anteriores.
- Aplique o candidato e execute a consulta.
- Incorpore os resultados de execução de volta ao modelo.
Com o tempo, a linha de base muda para melhores configurações, reduzindo o risco de regressão. O uso de todos os pontos de dados coletados também ajuda a reduzir o efeito de anomalias.
Habilitar o autotune
O Autotune está disponível em todas as regiões de produção, mas está desabilitado por padrão. Para habilitá-lo no nível do ambiente, defina a propriedade spark.ms.autotune.enabled=true Spark em um ambiente novo ou existente. Todos os notebooks e trabalhos que usam esse ambiente herdam a configuração.
O Autotune inclui uma detecção interna de regressão. Por exemplo, se uma consulta processar uma quantidade extraordinariamente grande de dados, o autotune poderá ignorar automaticamente o ajuste para essa execução. Em muitos cenários, o autotune precisa de cerca de 20 a 25 iterações para convergir em configurações fortes.
Observação
O Autotune é compatível com o Runtime 1.2. Não é possível habilitá-lo em versões de runtime posteriores à 1.2. Ele não é executado quando o modo de alta simultaneidade ou o ponto de extremidade privado está habilitado. Autotune funciona com dimensionamento automático em qualquer configuração de dimensionamento automático.
Você também pode habilitar o autotune para uma única sessão definindo a propriedade Spark em seu bloco de anotações ou definição de trabalho do Spark.
Habilitar o autotune para uma única sessão
%%sql
SET spark.ms.autotune.enabled=TRUE
Desabilitar o autotune para uma única sessão
Para desabilitar o autotune em um notebook ou definição de trabalho do Spark, execute um dos seguintes comandos como a primeira célula ou a primeira linha de código.
%%sql
SET spark.ms.autotune.enabled=FALSE
Estudo de caso
Quando você executa uma consulta do Apache Spark, o autotune cria um modelo para essa forma de consulta e aprende as melhores configurações ao longo do tempo. Por exemplo, comece com esta consulta de filtro:
%%pyspark
df.filter(df.country == "country-A")
O Autotune aprende com essa execução. Se posteriormente você alterar apenas o valor do filtro, a forma de consulta permanecerá semelhante:
%%pyspark
df.filter(df.country == "country-B")
O Autotune pode reutilizar aprendizados anteriores para esse padrão de consulta semelhante, o que ajuda a manter o desempenho sem ajuste manual.
Registros
Para cada consulta, o autotune calcula os valores recomendados para as três configurações do Spark com suporte. Para inspecionar as recomendações, verifique os logs do driver em busca de entradas que começam com [Autotune].
Os status de log comuns incluem:
| Situação | Descrição |
|---|---|
AUTOTUNE_DISABLED |
Ignorado. O Autotune está desabilitado, portanto, a coleta e a otimização de telemetria não são aplicadas. |
QUERY_TUNING_DISABLED |
Ignorado. O ajuste de consulta está desabilitado. |
QUERY_PATTERN_NOT_MATCH |
Ignorado. O padrão de consulta não corresponde aos tipos com suporte de consulta somente leitura. |
QUERY_DURATION_TOO_SHORT |
Ignorado. A consulta foi executada por menos de 15 segundos, sendo tempo insuficiente para ajuste efetivo. |
QUERY_TUNING_SUCCEED |
Êxito. Ajuste de consulta concluído e configurações otimizadas do Spark foram aplicadas. |
Observação de transparência
Em alinhamento com o Padrão de IA Responsável, esta seção explica como o autotune é usado e validado.
Finalidade do autotune
O Autotune foi projetado para melhorar a eficiência da carga de trabalho do Apache Spark para profissionais de dados. Isso:
- Ajusta automaticamente as configurações do Apache Spark para reduzir o tempo de execução.
- Reduz o esforço de ajuste manual.
- Usa dados históricos de carga de trabalho para refinar iterativamente as opções de configuração.
Validação do Auto-Tune
O Autotune passa por uma ampla validação para ajudar a garantir a eficácia e a segurança:
- Usa testes rigorosos em diversas cargas de trabalho do Spark para verificar a eficácia do algoritmo de ajuste.
- Parâmetros de comparação em relação aos métodos de otimização padrão do Spark para demonstrar benefícios de desempenho.
- Inclui estudos de caso do mundo real para mostrar valor prático.
- Segue padrões estritos de segurança e privacidade para proteger os dados do usuário.
Os dados do usuário são usados exclusivamente para aprimorar o desempenho da carga de trabalho, com proteções robustas que evitam o uso indevido ou a exposição de informações confidenciais.