Compartilhar via


Otimizar a utilização do cluster com escalonamento automático das Pipelines Declarativas do Lakeflow Spark

Este artigo discute como usar o dimensionamento automático aprimorado para otimizar seus pipelines no Azure Databricks.

A escala automática aprimorada está habilitada por padrão em todos os novos pipelines. Os pipelines sem servidor também usam a escala automática vertical. Veja o que é o dimensionamento automático vertical?.

Para pipelines sem servidor, o dimensionamento automático aprimorado está sempre ativado e não pode ser desabilitado. Consulte Configurar um pipeline sem servidor.

O que é a escala automática aprimorada?

O dimensionamento automático aprimorado do Databricks otimiza a utilização do cluster alocando automaticamente recursos de cluster com base no volume de carga de trabalho, com impacto mínimo na latência de processamento de dados de seus pipelines.

O dimensionamento automático aprimorado melhora a funcionalidade de dimensionamento automático do cluster do Azure Databricks com os seguintes recursos:

  • O dimensionamento automático aprimorado implementa a otimização de cargas de trabalho de streaming e adiciona aprimoramentos para melhorar o desempenho das cargas de trabalho em lotes. O dimensionamento automático aprimorado otimiza os custos adicionando ou removendo computadores à medida que a carga de trabalho muda.
  • O dimensionamento automático aprimorado desliga proativamente os nós subutilizados, garantindo que não haja tarefas com falha durante o desligamento. O recurso de escala automática de cluster existente reduz os nós verticalmente somente se o nó está ocioso.

O dimensionamento automático aprimorado é o modo de dimensionamento automático padrão quando você cria um novo pipeline na interface do usuário de pipelines. Você pode habilitar o dimensionamento automático aprimorado para pipelines existentes editando as configurações de pipeline na interface do usuário. Você também pode habilitar o dimensionamento automático aprimorado ao criar ou editar pipelines com a API REST de pipelines.

Quais métricas o dimensionamento automático aprimorado usa para tomar uma decisão de aumentar ou diminuir?

O escalonamento automático aprimorado usa duas métricas para decidir sobre aumentar ou reduzir a escala:

  • Utilização de slots de tarefa: essa é a média da razão entre o número de slots de tarefa ocupados e o total de slots de tarefa disponíveis no cluster.
  • Tamanho da fila de tarefas: esse é o número de tarefas esperando para serem executadas em slots de tarefa.

Habilitar o dimensionamento automático aprimorado para um pipeline

O dimensionamento automático aprimorado é o modo de dimensionamento automático padrão quando você cria um novo pipeline na interface do usuário de pipelines. Você pode habilitar o dimensionamento automático aprimorado para pipelines existentes editando as configurações de pipeline na interface do usuário. Você também pode habilitar o dimensionamento automático aprimorado ao editar um pipeline com o Editor do Lakeflow Pipelines.

Para usar o dimensionamento automático aprimorado, siga um destes procedimentos:

  • Defina o modo cluster como dimensionamento automático aprimorado ao editar as configurações de pipeline no Editor do Lakeflow Pipelines.
  • Adicione o ajuste autoscale à configuração do cluster de pipeline e defina o campo mode como ENHANCED. Consulte Configuração clássica de computação para pipelines.

Use as seguintes diretrizes ao configurar a escala automática aprimorada para pipelines de produção:

  • Mantenha a configuração Min workers como o padrão.
  • Defina a configuração Max workers para um valor com base no orçamento e na prioridade do pipeline.

O exemplo a seguir configura um cluster de dimensionamento automático aprimorado com um mínimo de 5 trabalhadores e um máximo de 10 trabalhadores. max_workers deve ser maior ou igual a min_workers.

Observação

  • O dimensionamento automático aprimorado está disponível apenas para updates clusters. O dimensionamento automático herdado é usado para os clusters maintenance.
  • A autoscale configuração tem dois modos:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Se o pipeline estiver configurado para execução contínua, ele será reiniciado automaticamente após as alterações de configuração de dimensionamento automático. Após a reinicialização, espere um curto período de maior latência. Após esse breve período de maior latência, o tamanho do cluster deve ser atualizado com base em sua autoscale configuração e a latência do pipeline deve retornar às características de latência anteriores.

Limitar os custos dos pipelines que usam dimensionamento automático aprimorado

Observação

Você não pode configurar trabalhos para pipelines sem servidor.

Definir o parâmetro Trabalhos máximos nos pipelines do painel de Computação define um limite superior para o dimensionamento automático. Reduzir o número de trabalhadores disponíveis pode aumentar a latência para algumas cargas de trabalho, mas impede que os custos de recursos de computação aumentem subitamente durante operações intensivas em computação.

O Databricks recomenda ajustar as configurações de Trabalhos máximos para equilibrar a compensação de latência de custo para suas necessidades específicas.

O painel Computação na interface do usuário do Pipelines, em que você pode definir o máximo de trabalhadores para dimensionamento automático

Monitorar os pipelines clássicos habilitados para dimensionamento automático aprimorado

Você pode usar o log de eventos na interface do usuário do pipeline para monitorar métricas de dimensionamento automático aprimoradas para pipelines clássicos. Eventos de dimensionamento automático aprimorados têm o autoscale tipo de evento. Veja a seguir os eventos de exemplo:

Event Message
Solicitação de redimensionamento do cluster iniciada Scaling [up or down] to <y> executors from current cluster size of <x>
Solicitação de redimensionamento do cluster bem-sucedida Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Solicitação de redimensionamento do cluster parcialmente bem-sucedida Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Falha na solicitação de redimensionamento do cluster Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Você também pode exibir eventos de dimensionamento automático aprimorados consultando diretamente o log de eventos:

O que é a escala automática vertical?

Pipelines sem servidor adicionam ao dimensionamento automático horizontal fornecido pelo Databricks o dimensionamento automático aprimorado alocando automaticamente os tipos de instância mais econômicos que podem executar seu pipeline sem falhar devido a erros de memória insuficiente. A escala automática vertical faz a escala vertical quando tipos de instância maiores são necessários para executar uma atualização de pipeline e também faz a redução vertical quando determina que a atualização pode ser executada com tipos de instância menores. O dimensionamento automático vertical determina se os nós de driver, os nós de trabalho ou ambos os nós de driver e de trabalho devem escalar verticalmente ou reduzir verticalmente.

O escalonamento vertical automático é usado para todos os pipelines sem servidor, incluindo pipelines usados por visões materializadas do Databricks SQL e tabelas de streaming.

A escala automática vertical funciona com a detecção das atualizações de pipeline que falharam devido a erros de memória insuficiente. O dimensionamento automático vertical aloca tipos de instância maiores quando essas falhas são detectadas com base nos dados de falta de memória coletados da atualização com falha. No modo de produção, uma nova atualização que utiliza os novos recursos de computação iniciará automaticamente. No modo de desenvolvimento, os novos recursos de computação serão utilizados quando você iniciar uma nova atualização manualmente.

Se o dimensionamento automático vertical detectar que a memória das instâncias alocadas está consistentemente subutilizada, ele reduzirá os tipos de instância que serão utilizadas ​​na próxima atualização do pipeline.