Gerir atualizações para pipelines contínuos

Um pipeline contínuo corre sem parar, pelo que o Azure Databricks não pode esperar que termine antes de aplicar atualizações da plataforma, como novas versões em tempo de execução ou manutenção da infraestrutura. Para aplicar estas atualizações, o Azure Databricks reinicia o pipeline. Uma janela de manutenção permite-lhe controlar quando esses reinícios acontecem: seleciona um dia da semana, uma hora 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 da tarefa contínua que executa o pipeline. Se não configurares um, a manutenção pode ser feita a qualquer momento.

Como o Azure Databricks aplica atualizações

Para atualizar um pipeline contínuo, o Azure Databricks inicia uma nova atualização do pipeline num cluster novo e encerra o anterior. Como os pipelines contínuos acompanham o seu progresso num checkpoint de streaming, a nova atualização retoma de onde a anterior terminou. O processamento de dados faz uma breve pausa durante a troca, depois continua sem perder dados.

O Azure Databricks inicia a manutenção apenas dentro de uma janela de uma hora que começa na hora de início do dia selecionado. O reinício em si costuma ser curto.

Escolhe um dia e uma hora de início em que um breve reinício seja aceitável para a tua carga de trabalho.

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

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

  • Atualizações da versão do Databricks Runtime
  • Patches de segurança e atualizações
  • Atualizações ao sistema operativo
  • Funcionalidades e melhoramentos do Spark Declarative Pipelines no Lakeflow
  • Manutenção da infraestrutura serverless, como a reciclagem periódica de clusters serverless em execução prolongada

Tanto as atualizações em tempo de execução (atualizações de serviço) como a manutenção da infraestrutura serverless respeitam a janela de manutenção que 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 se manter dentro do limite, mesmo que o tempo atual esteja fora da sua janela. Isto garante que um pipeline de longa duração acabará por ser reciclado.

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

O Azure Databricks aplica uma atualização apenas quando é 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 cadência das novas versões do Databricks Runtime aplicáveis ao seu pipeline
  • Para os pipelines sem servidor, o agendamento de reciclagem do cluster sem servidor
  • Qual é a frequência com que ocorre a sua janela de manutenção

Quando a janela de manutenção chegar e não houver nenhuma atualização pendente, a janela passa sem reiniciar.

Configurar uma janela de manutenção

Pode definir uma janela de manutenção na interface do Azure Databricks, com a API Jobs REST, ou com Declarative Automation Bundles.

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

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

Observação

As janelas de manutenção aplicam-se apenas a tarefas contínuas e pipelines. A definição não está disponível para trabalhos que correm num horário ou com um tipo de gatilho diferente.

Configurar uma janela de manutenção na interface de utilizador

Podes configurar uma janela de manutenção tanto a partir da interface de empregos como da interface de pipelines.

Da Jobs UI

  1. Na barra lateral do espaço de trabalho do Azure Databricks, clique no ícone WorkflowsJobs & Pipelines.
  2. Clica 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, uma hora de início e um fuso horário.
  5. Clique em Salvar.

Da interface dos pipelines

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

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

Define o campo maintenance_window nas definições continuous quando criares ou atualizares uma tarefa com a API REST de Jobs. O exemplo seguinte configura a manutenção para começar às 2 da manhã, hora do Este 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 defines 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 maintenance_window mapeamento dentro do mapeamento continuous da tarefa. O maintenance_window mapeamento requer a versão 1.16.0 da CLI Databricks ou superior. Para que a validação falhe em versões mais antigas, defina bundle.databricks_cli_version como '>= 1.16.0'. O exemplo seguinte configura a manutenção para começar às 2 da manhã, hora do Este 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 notificá-lo quando um reinício de manutenção começa e quando termina. As notificações de manutenção utilizam o sistema padrão de notificações Lakeflow Jobs, por isso pode entregá-las para endereços de email ou destinos do sistema, como Slack, PagerDuty ou Microsoft Teams. Consulte Adicionar notificações numa tarefa.

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

  • Início de manutenção: enviado quando começa um reinício de manutenção. Inclui o trabalho, a causa (por exemplo, uma atualização de serviço) e a hora de início.
  • Manutenção concluída: enviada quando o reinício termina. Inclui a causa, o tempo de conclusão, a duração do reinício e o estado do pipeline após o reinício.

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

O Azure Databricks avalia a janela de manutenção no fuso horário que configuras, por isso a janela segue as transições do horário de verão dessa zona. Na maioria dos dias, a janela começa à hora local configurada. No dia em que os relógios mudam, o início pode ser adiado até uma hora. Selecione um fuso horário que corresponda ao seu horário de operação.

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

Um reinício de manutenção pausa o processamento de dados enquanto a nova atualização assume o controlo. As fontes de streaming continuam a acumular dados durante a pausa e a nova atualização retoma a partir do checkpoint do pipeline, pelo que não se perde nenhum dado.

Se o 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 gasoduto voltou a um estado saudável após o reinício, monitorize a notificação de conclusão da Manutenção .