Checkpoints e savepoints permitem capturar o estado de jobs do Flink para recuperar falhas, atualizar jobs ou retornar a um ponto estável conhecido. Este tópico aborda como criar, visualizar, restaurar e excluir checkpoints e savepoints.
Checkpoint versus savepoint
|
Conceito |
Responsável pelo ciclo de vida |
Comportamentos principais |
Quando usar |
|
System checkpoint (Checkpoint no Apache Flink) |
Sistema Flink |
Criação e exclusão automáticas. Configure Checkpointing Interval, Checkpointing Timeout e Min Interval Between Checkpoints. Por padrão, o sistema retém um checkpoint para recuperação. Não é possível criar ou excluir manualmente. |
Recuperação rotineira de falhas durante a operação normal do job. |
|
Savepoint (Savepoint no Apache Flink) |
Usuário |
Criação manual ou agendada. Exclusão manual ou por regras de limpeza. Portátil: permite compartilhamento entre jobs com esquemas de estado compatíveis. |
Antes de atualizar o código do job, migrar para um novo job, executar testes A/B ou em qualquer cenário que exija um snapshot explícito e controlado pelo usuário. |
Operações neste tópico
A tabela a seguir lista as operações abordadas neste tópico. Encontre o cenário correspondente ao seu objetivo para ir diretamente à seção relevante.
| Operação | Se você deseja... |
|---|---|
| Criar um savepoint manualmente | Capturar o estado do job em um ponto específico durante a execução para restaurá-lo posteriormente. Importante
Um savepoint criado manualmente só pode ser excluído manualmente — as regras de limpeza automática não se aplicam a ele. |
| Configurar a criação automática agendada de savepoints | Fazer com que o sistema crie savepoints em intervalos regulares durante a execução do job, sem intervenção manual. |
| Visualizar a visão geral da geração de estado | Revisar o histórico de checkpoints e savepoints, incluindo status, horário de conclusão e tamanho. |
| Restaurar um job a partir de um savepoint especificado | Iniciar um job parado a partir de um savepoint específico, inclusive de outro job. |
| Configurar regras de limpeza automática para savepoints | Limitar os custos de armazenamento no OSS excluindo automaticamente savepoints antigos com base na quantidade ou na idade. |
| Excluir manualmente um savepoint específico | Excluir um savepoint não coberto pelas regras de limpeza automática (por exemplo, um savepoint criado manualmente). |
| Definir parâmetros relacionados ao estado | Configurar o backend de estado, o TTL de estado para jobs SQL ou o armazenamento em disco local para dados temporários de savepoint. |
Criar um savepoint manualmente
A criação de savepoints só é possível quando o job está no estado RUNNING.
Ao selecionar Stop With Savepoint ao cancelar uma implantação, menos dados precisam ser reprocessados na reinicialização, mas o cancelamento leva mais tempo.
-
Acesse a página de criação de savepoint.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no nome do job desejado.
No canto superior direito da página, clique em Create Savepoint.
Selecione um formato de savepoint e insira uma descrição.

Clique em Create.
Configurar a criação automática agendada de savepoints
-
Acesse a página State.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no nome do job desejado.
Clique em State.
-
Na aba Configure, ative Savepoint automatically generated at regular intervals e defina o agendamento. Clique em Quick Setting para escolher um intervalo predefinido ou insira uma expressão cron manualmente. Para inserir uma expressão manualmente, clique em cada campo e modifique seu valor.
O intervalo mínimo é de 10 minutos. Se você especificar um intervalo menor, o sistema usará 10 minutos.
Referência de expressão cron
A expressão cron possui cinco campos: minute hour day-of-month month day-of-week.
|
Campo |
Obrigatório |
Faixa de valores |
Caracteres especiais suportados |
|
Minuto |
Sim |
[0, 59] |
|
|
Hora |
Sim |
[0, 23] |
|
|
Dia |
Sim |
[1, 31] |
|
|
Mês |
Sim |
[1, 12] ou [JAN, DEC] |
|
|
Semana |
Sim |
[1, 7] ou [MON, SUN] |
|
No formato [1, 7], 1 representa segunda-feira e 7 representa domingo.
Caracteres especiais:
|
Caractere |
Significado |
Exemplo |
|
|
Todos os valores possíveis |
|
|
|
Valores específicos |
|
|
|
Faixa |
|
|
|
Incremento |
|
Exemplos:
|
Expressão |
Agendamento |
|
|
10:15 AM todos os dias |
|
|
12:00 PM todos os dias |
|
|
10:00 AM, 2:00 PM e 4:00 PM todos os dias |
|
|
A cada 30 minutos das 9:00 AM às 5:00 PM todos os dias |
|
|
A cada minuto das 2:00 PM às 2:59 PM todos os dias |
|
|
A cada minuto das 2:00 PM às 2:05 PM todos os dias |
|
|
A cada 5 minutos das 2:00 PM às 2:55 PM todos os dias |
|
|
A cada 5 minutos das 2:00–2:55 PM e das 6:00–6:55 PM todos os dias |
|
|
12:00 PM todas as quartas-feiras |
|
|
10:15 AM no dia 15 de cada mês |
|
|
2:10 PM e 2:44 PM todas as quartas-feiras de março |
Ordem dos campos:
minute hour day-of-month month day-of-weekday-of-month e day-of-week usam lógica OR:
0 12 1 * 5dispara às 12:00 PM no primeiro dia de cada mês ou em todas as sextas-feiras — não apenas quando o primeiro dia do mês cai em uma sexta-feira.O caractere
?não é suportado. Use*para ignorar um campo.
Visualizar a visão geral da geração de estado
-
Acesse a página State.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no nome do job desejado.
Clique em State.
Na aba Overview, revise as seguintes informações.
|
Categoria |
Informações exibidas |
|
System checkpoint |
Último checkpoint com sucesso e com falha: ID, horário de conclusão, duração e tamanho do checkpoint |
|
Savepoint |
Último savepoint com sucesso e com falha: ID, horário de conclusão, duração e horário da falha |
Restaurar um job a partir de um savepoint especificado
É possível restaurar um job a partir de qualquer savepoint, inclusive de um criado por outro job. Para compartilhar um savepoint entre jobs, os esquemas de estado de ambos devem ser compatíveis — por exemplo, durante testes A/B.
O job deve estar no estado CANCELLED antes de ser restaurado a partir de um savepoint. Se o job estiver RUNNING , pare-o primeiro.
Para reiniciar o job sem restaurar o estado histórico, consulte Iniciar um job para uma reinicialização sem estado.
-
Acesse a página State.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no nome do job desejado.
Clique em State.
Na aba History, localize o savepoint desejado na lista Savepoints.
Na coluna Actions do savepoint desejado, selecione More > Start job from this savepoint.
Na caixa de diálogo Start Job, configure as definições de inicialização. Para mais detalhes, consulte Iniciar um job.
Configurar regras de limpeza automática para savepoints
As regras de limpeza automática aplicam-se apenas a savepoints criados por gatilhos agendados ou automáticos. Savepoints criados manualmente nunca são excluídos por regras de limpeza — exclua-os manualmente quando não forem mais necessários.
Se uma implantação ficar suspensa por um longo período, os savepoints serão excluídos com base nas regras de limpeza na próxima vez que a implantação for iniciada.
-
Acesse a página State.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no nome do job desejado.
Clique em State.
Na aba Configure, ative Scheduled automatic cleaning of savepoint e defina as regras de limpeza. Configure Number of historical savepoints saved e The maximum time to save historical savepoints. Um savepoint é excluído quando qualquer uma das condições for atendida.
Clique em Save Changes.
Excluir manualmente um savepoint específico
Exclua savepoints desatualizados periodicamente para evitar cobranças desnecessárias do Object Storage Service (OSS). Savepoints criados manualmente não são cobertos por regras de limpeza automática, portanto, devem ser excluídos manualmente.
-
Acesse a página State.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no nome do job desejado.
Clique em State.
Na aba History, localize o savepoint desejado na lista Savepoints.
Na coluna Actions do savepoint desejado, selecione More > Delete this savepoint.
Clique em OK.
Definir parâmetros relacionados ao estado
-
Acesse a página O&M do job desejado.
Faça login no console do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
Na página O&M > Deployments, clique no job desejado.
Na aba Configuration, na seção Parameters, clique em Edit.
-
Em Other Configuration, adicione os seguintes parâmetros e clique em Save.
state.backend.incremental: true table.exec.state.ttl: 129600000Para a lista completa de parâmetros relacionados ao estado, consulte Configurações do GeminiStateBackend.
Próximos passos
Para perguntas frequentes sobre checkpoints e savepoints, consulte FAQ sobre Checkpoints.
Para entender o impacto de alterações SQL na compatibilidade de estado, consulte Modificações SQL e compatibilidade.