Gerenciar atualizações para pipelines contínuos

Um pipeline de execução contínua é executado sem interrupção, portanto o Azure Databricks não pode esperar que ele seja concluído antes de aplicar atualizações da plataforma, como novas versões de runtime ou manutenção da infraestrutura. Para aplicar essas atualizações, o Azure Databricks reinicia o pipeline. Uma janela de manutenção permite que você controle quando esses reinícios acontecem: você seleciona um dia da semana, um horário de início e um fuso horário, e o Azure Databricks inicia a manutenção apenas dentro dessa janela.

A janela de manutenção é uma configuração do trabalho contínuo que executa o pipeline. Se você não definir um horário, a manutenção poderá ser executada a qualquer momento.

Como o Azure Databricks aplica as atualizações

Para atualizar um pipeline contínuo, o Azure Databricks inicia uma nova atualização do pipeline em um cluster novo e desliga o anterior. Como os pipelines contínuos rastreiam seu progresso em um ponto de verificação de streaming, a nova atualização continua de onde a anterior parou. O processamento de dados faz uma breve pausa durante a troca e depois continua sem perder dados.

O Azure Databricks inicia a manutenção apenas dentro de uma janela de uma hora que começa no horário de início do dia que você selecionar. O reinício em si geralmente é curto.

Selecione um dia e horário de início em que uma breve reinicialização seja adequada para sua carga de trabalho.

Quais atualizações estão incluídas?

A manutenção de um gasoduto contínuo pode incluir:

  • Atualizações de versão do Databricks Runtime
  • Patches e atualizações de segurança
  • Atualizações do sistema operacional
  • Recursos e melhorias dos Pipelines Declarativos do Spark no Lakeflow
  • Manutenção da infraestrutura serverless, como a reciclagem periódica de clusters serverless de longa duração

Tanto as atualizações em tempo de execução (upgrades de serviço) quanto a manutenção da infraestrutura serverless respeitam a janela de manutenção que você configura.

Importante

Clusters serverless têm uma vida útil máxima. Se esse limite for atingido antes da próxima janela de manutenção, o Azure Databricks reinicia o pipeline para permanecer dentro do limite, mesmo que o tempo atual esteja fora da sua janela. Isso garante que um pipeline de longa duração seja eventualmente reciclado.

Com que frequência as atualizações são aplicadas?

O Azure Databricks aplica uma atualização apenas quando for necessária manutenção. Novas versões em tempo de execução são lançadas periodicamente, e a manutenção da infraestrutura serverless ocorre de forma recorrente. A frequência com que um pipeline individual reinicia depende de:

  • A frequência de novas versões do Databricks Runtime que se aplicam ao seu pipeline
  • Para pipelines sem servidor, o agendamento de reciclagem do cluster sem servidor
  • Com que frequência sua janela de manutenção ocorre

Quando chega sua janela de manutenção e não há nenhuma atualização pendente, a janela passa sem reinicialização.

Configure uma janela de manutenção

Você pode definir uma janela de manutenção na interface do Azure Databricks, com a API Jobs REST ou com Pacotes de Automação Declarativa.

Uma janela de manutenção possui três partes obrigatórias:

Setting Description
Dia da semana Um único dia, de segunda a domingo.
Horário de início A hora em que a janela começa, como um número inteiro de 0 a 23, no formato de 24 horas.
Fuso horário Um ID de fuso horário Java, como America/New_York. Azure Databricks avalia a janela nesse fuso horário.

Note

Janelas de manutenção aplicam-se apenas a trabalhos contínuos e pipelines. A configuração não está disponível para trabalhos que rodam em um cronograma ou em outro tipo de gatilho.

Configure uma janela de manutenção na interface

Você pode configurar uma janela de manutenção tanto na interface de trabalhos quanto na interface de pipelines.

Da interface de empregos

  1. Na barra lateral do espaço de trabalho do Azure Databricks, clique no ícone Workflows.Jobs & Pipelines.
  2. Clique no nome do trabalho.
  3. No painel de detalhes do trabalho , abra o gatilho Contínuo e expanda Avançado para encontrar a janela de Manutenção.
  4. Selecione um dia da semana, um horário de início e um fuso horário.
  5. Clique em Salvar.

Na interface de usuário de Pipelines

  1. Na barra lateral do espaço de trabalho do Azure Databricks, clique no ícone Workflows.Jobs & Pipelines.
  2. Clique no nome do oleoduto.
  3. Abra o Cronograma e expanda as configurações avançadas para encontrar a janela de Manutenção.
  4. Selecione um dia da semana, um horário de início e um fuso horário.
  5. Clique em Salvar.

Configure uma janela de manutenção com a API de Jobs

Defina o maintenance_window campo dentro das continuous configurações quando você criar ou atualizar um trabalho com a API REST de Jobs. O exemplo a seguir configura a manutenção para começar às 2h da manhã, horário do leste dos EUA, às terças-feiras:

{
  "continuous": {
    "pause_status": "UNPAUSED",
    "maintenance_window": {
      "start_hour": 2,
      "day_of_week": "TUESDAY",
      "timezone_id": "America/New_York"
    }
  }
}

Todos os três campos (start_hour, day_of_week, e timezone_id) são necessários quando você define uma janela de manutenção. start_hour deve ser um inteiro de 0 para 23.

Configure uma janela de manutenção com Pacotes de Automação Declarativa

Defina o mapeamento maintenance_window dentro do mapeamento do trabalho continuous. O maintenance_window mapeamento requer a CLI Databricks versão 1.16.0 ou superior. Para fazer a validação falhar em versões mais antigas, defina bundle.databricks_cli_version para '>= 1.16.0'. O exemplo a seguir configura a manutenção para começar às 2h da manhã, horário do leste dos EUA, às terças-feiras:

bundle:
  name: continuous_pipeline_bundle
  databricks_cli_version: '>= 1.16.0'

resources:
  jobs:
    continuous_pipeline_job:
      name: continuous_pipeline_job
      continuous:
        pause_status: UNPAUSED
        maintenance_window:
          start_hour: 2
          day_of_week: TUESDAY
          timezone_id: America/New_York
      tasks:
        - task_key: refresh_pipeline
          pipeline_task:
            pipeline_id: ${resources.pipelines.example_pipeline.id}

Configurar notificações de manutenção

O Azure Databricks pode notificar quando uma reinicialização de manutenção começa e quando ela termina. As notificações de manutenção utilizam o sistema padrão de notificação Lakeflow Jobs, então você pode entregá-las para endereços de e-mail ou para destinos do sistema, como Slack, PagerDuty ou Microsoft Teams. Confira Adicionar notificações sobre um trabalho.

Dois eventos estão disponíveis em um trabalho contínuo:

  • Início de manutenção: enviado quando uma reinicialização de manutenção começa. Inclui o trabalho, a causa (por exemplo, uma atualização de serviço) e o horário de início.
  • Manutenção concluída: enviada quando a reinicialização terminar. Inclui a causa, o horário de conclusão, a duração do reinício e o estado do pipeline após ser reiniciado.

Transições no horário de verão

O Azure Databricks avalia a janela de manutenção no fuso horário que você configura, então a janela segue as transições do horário de verão daquela zona. Na maioria dos dias, a janela começa no horário local configurado por você. No dia em que os relógios mudam, o início pode ser adiado em até uma hora. Selecione um fuso horário que combine com seu cronograma de operações.

Lidar com interrupções durante as atualizações

Um reinício de manutenção pausa o processamento de dados enquanto a nova atualização assume o controle. As fontes de streaming continuam acumulando dados durante a pausa e a nova atualização continua do ponto de verificação do pipeline, portanto, nenhum dado é perdido.

Se seu pipeline tiver requisitos rigorosos de latência, selecione uma janela de manutenção durante um período em que uma breve pausa seja aceitável. Para confirmar que o pipeline voltou a um estado íntegro após uma reinicialização, acompanhe a notificação Manutenção concluída.