Depure rascunhos SQL para validar a lógica de negócios sem gravar dados em sinks de produção. Durante uma sessão de depuração, nenhum dado chega aos sistemas downstream, independentemente do tipo da tabela sink.
Use a depuração para:
Testar instruções SELECT ou INSERT com dados upstream em tempo real ou com dados de teste fornecidos por você.
Validar jobs que contêm múltiplas instruções SELECT ou INSERT.
Verificar consultas UPSERT, incluindo instruções com operações de atualização como
count(*).
Limitações
Somente jobs SQL são suportados.
Instruções CREATE TABLE AS SELECT (CTAS) e CREATE DATABASE AS (CDAS) não são suportadas.
Por padrão, o Flink pausa após ler 1.000 registros.
Cada sessão de depuração tem limite de 3 minutos.
Pré-requisitos
Antes de começar, verifique se você tem:
Um workspace do Realtime Compute for Apache Flink no estado Running
Um rascunho SQL com instruções válidas na página ETL
Permissões suficientes para criar session clusters e executar tarefas de depuração
Etapa 1: Criar um session cluster
A depuração é executada em um session cluster, projetado exclusivamente para desenvolvimento e testes. Não use session clusters em produção.
No console do Flink, abra o workspace.
Clique em Create Session Cluster.
Configure os parâmetros descritos nas seções a seguir e clique em Create Session Cluster.
Configurações básicas
|
Parâmetro |
Descrição |
|
Name |
Nome do session cluster. |
|
Deployment Target |
Fila de recursos do session cluster. Para mais informações, consulte Gerenciar filas. |
|
State |
Estado desejado após a criação. RUNNING: o cluster inicia imediatamente. STOPPED: o cluster é criado, mas não inicia. |
|
Scheduled Session Management |
Desliga automaticamente o cluster quando nenhum job for executado durante um período especificado, evitando desperdício de recursos com clusters ociosos. |
|
Labels |
Tags para filtrar jobs na página Overview. |
Configurações de engine e reinicialização
|
Parâmetro |
Descrição |
|
Engine Version |
Versão da engine VVR. Selecione uma versão Recommended ou Stable. Para obter detalhes, consulte Versões da engine e Políticas de ciclo de vida. |
|
Flink Restart Policy |
Comportamento de reinicialização quando uma tarefa falha.
Se não configurado, aplica-se a estratégia padrão: o JobManager não reinicia na falha da tarefa quando o checkpointing está desativado, mas reinicia quando o checkpointing está ativado. |
|
Other Configuration |
Entradas adicionais de configuração do Flink (por exemplo, |
Configurações de recursos
|
Parâmetro |
Descrição |
|
Number of TaskManagers |
Por padrão, este valor é igual ao paralelismo. |
|
JobManager CPU Cores |
Padrão: 1. |
|
JobManager Memory |
Mínimo: 1 GiB. Recomendado: 4 GiB. |
|
TaskManager CPU Cores |
Padrão: 2. |
|
TaskManager Memory |
Mínimo: 1 GiB. Recomendado: 8 GiB. |
Recomendações de dimensionamento de slots:
|
Carga de trabalho |
vCPU por slot |
Memória por slot |
|
Jobs pequenos (paralelismo de 1) |
1 |
2 GiB |
|
Jobs complexos |
1 |
4 GiB |
Comece com a configuração padrão de 2 slots por TaskManager.
Se um único TaskManager tiver poucos recursos, a estabilidade do job diminui e a sobrecarga do TaskManager não pode ser compartilhada entre os slots. Se um único TaskManager tiver recursos excessivos, uma falha nesse TaskManager afetará muitos jobs simultaneamente.
Configurações de log
|
Parâmetro |
Descrição |
|
Root Log Level |
Níveis de log em ordem crescente de severidade: TRACE, DEBUG, INFO, WARN, ERROR. |
|
Log Levels |
Nome da classe e nível de log. |
|
Logging Profile |
Um modelo do sistema ou um modelo personalizado. |
Para opções relacionadas à integração do Flink com frameworks de orquestração de recursos como Kubernetes e YARN, consulte Frameworks de orquestração de recursos.
Após criar o session cluster, selecione-o na página ETL ao iniciar uma sessão de depuração.
Etapa 2: Depurar o rascunho SQL
Na página ETL, escreva ou abra o código SQL do job. Para mais informações, consulte Visão geral do desenvolvimento de jobs.
Clique em Debug. Selecione um session cluster e clique em Next.
-
Configure a fonte de dados de teste:
Dados em tempo real: para usar dados upstream em tempo real, clique em Confirm sem fazer alterações.
Dados de teste: para usar dados de teste, clique em Download mock data template para obter um modelo CSV compatível com o schema da tabela source. Preencha o modelo, faça o upload e selecione Use mock data.
Opção
Descrição
Download mock data template
Baixa um modelo CSV compatível com o schema da tabela source.
Upload mock data
Faça upload de um arquivo CSV com dados de teste. O arquivo deve incluir uma linha de cabeçalho (por exemplo,
id(INT)). Tamanho máximo do arquivo: 1 MB ou 1.000 registros.Data Preview
Após carregar os dados de teste, clique no ícone de expansão (+) ao lado do nome da tabela source para visualizar os dados.
Code preview
Exibe as instruções DDL modificadas. A depuração modifica automaticamente as instruções DDL das tabelas source e sink, mas não altera o código real do job.
Clique em OK. Os resultados da depuração aparecem abaixo do editor SQL.
Considerações sobre session clusters
Estabilidade
Os session clusters reutilizam o JobManager (JM) entre jobs, o que melhora a utilização de recursos durante a depuração, mas introduz riscos de estabilidade:
Uma falha no JobManager afeta todos os jobs no cluster.
Uma falha no TaskManager afeta todos os jobs com tarefas em execução nesse TaskManager.
Tarefas no mesmo TaskManager compartilham processos sem isolamento, podendo interferir umas nas outras.
Não use session clusters em produção.
Planejamento de capacidade
Com as configurações padrão, siga estas diretrizes:
|
Carga de trabalho |
Recomendação |
|
Jobs pequenos (paralelismo de 1) |
Execute até 100 jobs no total |
|
Jobs complexos |
Paralelismo máximo de 512 por job. Até 32 jobs de médio porte com paralelismo de 64 |
|
Maior concorrência necessária |
Aumente a configuração de recursos do session cluster |
Exceder esses limites pode causar timeouts de heartbeat e afetar a estabilidade do cluster. Se isso ocorrer, aumente o intervalo de heartbeat e os valores de timeout.
Consumo de recursos
Os session clusters consomem recursos com base na configuração selecionada. Para evitar desperdício com clusters ociosos, ative o Scheduled session management para desligar o cluster automaticamente quando não houver jobs em execução.
Solução de problemas
|
Problema |
Causa |
Solução |
|
Botão Debug está desabilitado |
Nenhum session cluster está em execução |
Crie e inicie um session cluster em . |
|
Timeout na sessão de depuração |
Cada sessão tem limite de 3 minutos |
Simplifique a consulta ou reduza o volume de dados de entrada. |
|
Resultados da depuração estão vazios |
Tabela source sem dados ou dados de teste inválidos |
Verifique a visualização dos dados. Se estiver usando dados de teste, valide o formato CSV e a linha de cabeçalho. |
|
Timeout de heartbeat do session cluster |
Muitos jobs em execução no cluster |
Reduza o número de jobs concorrentes ou aumente o intervalo e o timeout do heartbeat. |
|
Saída de depuração inesperada |
Modificação automática de DDL não visível |
Verifique a Debug code preview para ver as instruções DDL modificadas. |
Próximos passos
Para implantar um job após o desenvolvimento ou depuração, consulte Implantar um job.
Após implantar um job, consulte Iniciar uma implantação.
Para um tutorial completo do fluxo de trabalho Flink SQL, consulte Início rápido para jobs Flink SQL.