O Flink é um dos mecanismos de processamento de fluxo mais ativos atualmente e recebe atualizações de versão com relativa frequência. Atualizar o job para uma versão mais recente permite usar novos recursos e funcionalidades. Este tópico explica como atualizar a versão do mecanismo para jobs do Realtime Compute for Apache Flink.
Observações importantes
Antes de lançar uma nova versão do mecanismo, o Realtime Compute for Apache Flink executa testes extensivos de compatibilidade. Em geral, atualizações entre versões menores dentro da mesma versão principal são compatíveis. Já as atualizações entre versões principais diferentes não têm garantia de compatibilidade. Para obter detalhes sobre as versões do mecanismo e a compatibilidade de Savepoints entre versões do Flink, consulte Engine version numbers and their meanings e a Tabela de Compatibilidade.
Ao alternar versões de jobs, observe o seguinte:
O estado mantém compatibilidade durante atualizações de versões menores. Use checkpoints do sistema ou snapshots de job criados antes da troca de versão. Por exemplo, ao mudar de vvr-4.0.15-flink-1.13 para vvr-4.0.18-flink-1.13.
Não há compatibilidade de estado durante trocas de versão principal. Nesse caso, reinicie o job sem estado. Um exemplo seria a mudança de vvr-4.0.15-flink-1.13 para vvr-6.0.2-flink-1.15.
As versões das dependências relacionadas ao Flink no job SQL ou DataStream devem corresponder à versão do Flink selecionada para o job.
A partir do Flink 1.13.0, a comunidade adotou o BlinkPlanner — contribuído pela alibaba — como o SQL Planner padrão. Isso introduz algumas diferenças em relação às versões anteriores. Para mais detalhes, consulte o anúncio de lançamento do Apache Flink 1.13.0. Portanto, ao migrar de uma versão comunitária do Flink anterior à 1.13.0 para o VVR 4.0 (baseado no Flink 1.13.0) ou superior no Realtime Compute for Apache Flink, podem ocorrer incompatibilidades de sintaxe e API.
Procedimento de atualização
Etapa 1: Faça backup do job e implante um novo job
Para garantir a estabilidade do job, clone o job existente para criar um novo job idêntico e, em seguida, atualize a versão do mecanismo no novo job.
SQL
Faça login no console do Realtime Compute. Clique em Console na coluna Actions do workspace desejado.
-
Faça backup do job SQL original.
Na página , abra o rascunho do job alvo.
Clique em Save As acima do nome do job.
Insira um Name, selecione um Location e clique em Save.
-
Altere o novo job para a nova versão do mecanismo.
Ao adotar uma nova versão, prefira uma versão STABLE ou RECOMMENDED. Essas versões corrigem bugs e problemas conhecidos de outras versões, oferecem os recursos mais recentes e proporcionam maior garantia de estabilidade.
Clique em Configurations no lado direito do editor do novo job. Alterne a Engine Version e clique em Deploy no canto superior direito.
-
Na página , clique no nome do job alvo. Na aba Configuration, em Basic, verifique se a versão do job implantado foi alterada com sucesso.
Verifique o campo Engine Version para confirmar se ele exibe a versão desejada (por exemplo,
vvr-8.0.9-flink-1.17).
DataStream
Faça login no console do Realtime Compute. Clique em Console na coluna Actions do workspace desejado.
-
Faça backup do job DataStream original e selecione a nova versão do mecanismo para o novo job.
Ao adotar uma nova versão, prefira uma versão STABLE ou RECOMMENDED. Essas versões corrigem bugs e problemas conhecidos de outras versões, oferecem os recursos mais recentes e proporcionam maior garantia de estabilidade.
Na página , abra o job alvo.
Clique em Clone no canto superior direito.
Atualize o Deployment Name e selecione a nova Engine Version.
Clique em Deploy.
Etapa 2: Faça backup do estado do job
Na página , clique no job alvo. Na aba State dos detalhes do job, visualize os conjuntos de estado do job. Para mais informações, consulte View state generation overview.
-
Se o job executar computação com estado, avalie se é possível reutilizar o estado durante a atualização.
Antes de atualizar, crie manualmente um snapshot do job para permitir uma reversão rápida em caso de problemas. Para instruções, consulte Manually create a job snapshot.
ImportanteEm geral, atualizações entre versões menores dentro da mesma versão principal são compatíveis. Atualizações entre versões principais diferentes não têm garantia de compatibilidade. Se houver compatibilidade, a nova versão do mecanismo poderá ler snapshots gerados pela versão antiga, mas o contrário nem sempre é verdadeiro.
A partir do VVR 6.x, o sistema suporta dois formatos de snapshot: nativo e padrão. O formato nativo é gerado mais rapidamente, enquanto o formato padrão oferece melhor compatibilidade. Para atualizações para uma versão menor superior dentro da mesma versão principal, use o formato nativo. Para atualizações para uma versão principal superior, use o formato padrão.
Se o job for sem estado, prossiga para a próxima etapa.
(Opcional) Etapa 3: Pare o job original
Na página , clique em Stop na coluna Actions do job original. Para detalhes, consulte Stop a job.
Se as gravações downstream forem idempotentes ou se o negócio tolerar dados duplicados, considere executar os jobs antigo e novo simultaneamente.
Etapa 4: Inicie o novo job
Para jobs com estado: Em Stateful Start, selecione Specific State e escolha o snapshot criado a partir do job original.
Para jobs sem estado, selecione Stateless para iniciar o novo job.
Para etapas detalhadas de inicialização, consulte Start a job.
Etapa 5: Monitore o comportamento em produção e exclua o job original
Normalmente, se o job atualizado iniciar com sucesso e concluir seu primeiro checkpoint do sistema, a atualização é considerada preliminarmente bem-sucedida. No entanto, verifique a correção dos dados de negócio para garantir a integridade total da atualização.
Após confirmar que o job está executando normalmente e que os dados estão corretos, exclua manualmente o snapshot do job pré-atualização e o próprio job. Para instruções sobre como excluir snapshots, consulte Manually delete a specified job snapshot.
Reversão após falha na atualização
Se o job falhar ao iniciar ou produzir dados incorretos após a atualização, pare o job imediatamente, reverta para a versão do mecanismo anterior à atualização e restaure as operações usando o snapshot salvo antes da atualização. Além disso, abra um ticket para relatar o problema.
Caso não seja possível monitorar todo o processo de atualização, configure alertas de falha de job para receber notificações imediatas em caso de anomalias e evitar impactos nos negócios. Para instruções, consulte Configure Monitoring.