Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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. Ajuda a evitar a afinação manual, que normalmente exige tentativa e erro repetidos. O Autotune utiliza dados históricos de execução das suas cargas de trabalho para descobrir iterativamente e aplicar definições eficazes para cada carga de trabalho.
Observação
A afinação de consultas do Autotune no Microsoft Fabric está atualmente em prévia. Está disponível em todas as regiões de produção, mas está desativado por defeito. Ative-o numa configuração Spark de ambiente, ou para uma única sessão em notebook ou código de definição de trabalho Spark.
Padrões de configuração e requisitos
- Comportamento padrão: O Autotune está desligado por defeito.
- Não é necessário configurar quando está desligado: Se não ativares o autotune, o Spark usa o seu comportamento de configuração padrão.
-
Configuração necessária para usar autotune: Definir
spark.ms.autotune.enabled=trueum:- Ao nível do ambiente, para que todos os cadernos e trabalhos que usam esse ambiente herdem a configuração. Veja Ativar o autotune.
- Só num caderno ou numa sessão de definição de trabalho no Spark. Consulte "Ativar autotune para uma única sessão".
Ajuste de consultas
O Autotune ajusta estas três definições do Apache Spark para cada consulta:
-
spark.sql.shuffle.partitions: Define o número de partições para redistribuição de dados durante junções ou agregações. A predefinição é200. -
spark.sql.autoBroadcastJoinThreshold: Define o tamanho máximo da tabela, em bytes, a transmitir para nós de trabalho durante uma junção. A predefinição é10 MB. -
spark.sql.files.maxPartitionBytes: Define o número máximo de bytes para empacotar numa única partição ao ler ficheiros. Aplica-se a fontes de ficheiros Parquet, JSON e ORC. A predefinição é128 MB.
O ajuste de consultas com Autotune examina cada consulta e constrói um modelo de aprendizagem automática separado para essa consulta. Funciona melhor para:
- Consultas repetitivas
- Consultas de longa duração (mais de 15 segundos)
- Consultas à API SQL do Apache Spark (não à API RDD)
Podes usar autotune com notebooks, definições de trabalhos Spark e pipelines. O benefício varia consoante a complexidade da consulta e a forma dos dados. Nos testes, os maiores ganhos surgem em padrões de análise exploratória de dados, como leituras, junções, agregações e ordenações.
Como funciona o autotune
O Autotune utiliza um ciclo iterativo de otimização:
- Comece pelos valores de configuração padrão do Spark.
- Gerar configurações candidatas em torno de uma linha de base (centroide).
- Preveja o melhor candidato usando um modelo treinado em corridas anteriores.
- Aplique o candidato e execute a consulta.
- Devolve os resultados da execução ao modelo.
Com o tempo, a linha de base desloca-se para melhores definições, reduzindo o risco de regressão. Utilizar todos os pontos de dados recolhidos também ajuda a reduzir o efeito das anomalias.
Ativar o autotune
O Autotune está disponível em todas as regiões de produção, mas está desativado por defeito. Para a ativar ao nível ambiental, coloque a propriedade spark.ms.autotune.enabled=true Spark num ambiente novo ou existente. Todos os cadernos e trabalhos que usam esse ambiente herdam a configuração.
O Autotune inclui deteção de regressão incorporada. Por exemplo, se uma consulta processar uma quantidade invulgarmente grande de dados, o autotune pode automaticamente saltar a afinação dessa execução. Em muitos cenários, o AutoTune precisa de cerca de 20 a 25 iterações para convergir em definições fortes.
Observação
O Autotune é compatível com o Runtime 1.2. Não podes ativar isso em versões de runtime posteriores à 1.2. Não funciona quando o modo de alta concorrência ou o endpoint privado estão ativados. O Autotune funciona com autoscaling em qualquer configuração deste.
Também pode ativar o autotune para uma única sessão definindo a propriedade Spark no bloco de notas ou na Definição da Tarefa Spark.
Ativar o autotune para uma única sessão
%%sql
SET spark.ms.autotune.enabled=TRUE
Desative o autotune para uma única sessão
Para desativar o autotune num caderno ou numa Definição de Tarefa Spark, execute um dos seguintes comandos na primeira célula ou linha de código.
%%sql
SET spark.ms.autotune.enabled=FALSE
Caso prático
Quando executas uma consulta Apache Spark, o autotune constrói um modelo para essa forma de consulta e aprende as melhores definições ao longo do tempo. Por exemplo, comece com esta consulta de filtro:
%%pyspark
df.filter(df.country == "country-A")
O Autotune aprende desta execução. Se mais tarde alterar apenas o valor do filtro, a forma da consulta mantém-se semelhante:
%%pyspark
df.filter(df.country == "country-B")
O Autotune pode reutilizar aprendizagens anteriores para este padrão de consulta semelhante, o que ajuda a manter o desempenho sem ajustes manuais.
Registos
Para cada consulta, o autotune calcula os valores recomendados para as três configurações Spark suportadas. Para inspecionar as recomendações, verifique os registos do driver para entradas que comecem com [Autotune].
Os estados comuns dos registos incluem:
| Situação | Descrição |
|---|---|
AUTOTUNE_DISABLED |
Ignorado. O Autotune está desativado, por isso a recolha e otimização de telemetria não são aplicadas. |
QUERY_TUNING_DISABLED |
Ignorado. A otimização de consultas está desativada. |
QUERY_PATTERN_NOT_MATCH |
Ignorado. O padrão de consulta não corresponde aos tipos de consulta suportados apenas para leitura. |
QUERY_DURATION_TOO_SHORT |
Ignorado. A consulta durou menos de 15 segundos, o que é demasiado curto para uma afinação eficaz. |
QUERY_TUNING_SUCCEED |
Sucesso. A afinação de consultas concluída e as definições otimizadas do Spark foram aplicadas. |
Nota de transparência
Em conformidade com o Responsible AI Standard, esta secção explica como o autotune é utilizado e validado.
Finalidade do autotune
O Autotune foi concebido 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 afinação manual.
- Utiliza dados históricos de carga de trabalho para refinar iterativamente escolhas de configuração.
Validação do Auto-Tune
O autotune é sujeito a uma validação extensa para ajudar a garantir a eficácia e a segurança:
- Utiliza testes rigorosos em diversas cargas de trabalho Spark para verificar a eficácia dos algoritmos de afinação.
- Comparações com os métodos padrão de otimização do Spark para demonstrar benefícios de desempenho.
- Inclui estudos de caso reais para demonstrar valor prático.
- Segue rigorosos padrões de segurança e privacidade para proteger os dados dos utilizadores.
Os dados do usuário são usados exclusivamente para melhorar o desempenho da sua carga de trabalho, com proteções robustas para evitar o uso indevido ou a exposição de informações confidenciais.
Conteúdo relacionado
- Limites de concorrência e filas no Apache Spark para Microsoft Fabric
- Apache Spark computa em Microsoft Fabric