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 contenham 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.
-
O modo de depuração não suporta checkpoints. Os checkpoints permanecem desativados durante a depuração, e parâmetros relacionados (como
execution.checkpointing.interval) definidos em instruções SET ou em Other Configuration não têm efeito. Conectores que exigem checkpoints retornam o errorequires checkpointing to be enabledno modo de depuração. Para verificar o comportamento dos checkpoints, implante o job. Para mais informações, consulte Deploy a jobPara jobs complexos, limite a concorrência máxima de um único job a 512 e restrinja jobs de médio porte com concorrência de 64 a no máximo 32 por cluster. Caso contrário, podem ocorrer timeouts de heartbeat que afetam a estabilidade do cluster. Se isso acontecer, aumente os valores de intervalo e timeout do heartbeat.
.
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 clusters de sessão e executar tarefas de depuração
Etapa 1: Criar um cluster de sessão
A depuração é executada em um cluster de sessão, projetado exclusivamente para desenvolvimento e testes. Não use clusters de sessão em produção.
No console do Flink, abra seu workspace.
Clique em Create Session Cluster.
Configure os parâmetros descritos nas seções a seguir e clique em Create Session Cluster.
Standard
|
Parâmetro |
Descrição |
|
Name |
Nome do cluster de sessão. |
|
Deployment Target |
Fila de recursos do cluster de sessão. Para mais informações, consulte Manage queues. |
|
State |
Estado desejado após a criação. RUNNING: O cluster inicia imediatamente. STOPPED: O cluster é criado, mas não inicia. Essa opção também interrompe todos os jobs implantados no cluster de sessão. |
|
Scheduled Session Management |
Desliga automaticamente o cluster quando nenhum job for executado por um período especificado, evitando desperdício de recursos com clusters ociosos. |
|
Labels |
Tags para filtrar jobs na página Overview. |
Configuration
|
Parâmetro |
Descrição |
|
Engine Version |
Versão do engine VVR. Selecione uma versão Recommended ou Stable. Para detalhes, consulte Engine versions e Lifecycle policies. |
|
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, |
Resources
|
Parâmetro |
Descrição |
|
Number of TaskManagers |
Por padrão, este valor equivale 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.
Logging
|
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 cluster de sessão, 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 seu job. Para mais informações, consulte Job development overview.
Clique em Debug. Selecione um cluster de sessão 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 sua tabela de origem. 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 de origem.
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 de origem para visualizar os dados.
Code preview
Exibe as instruções DDL modificadas. A depuração altera automaticamente as instruções DDL das tabelas de origem e sink, mas não modifica o código real do seu job.
Clique em OK. Os resultados da depuração aparecem abaixo do editor SQL. Após a conclusão da execução, clique na aba sink para visualizar a saída. A tabela contém as colunas id e name e exibe três linhas de dados de teste:
(1, a),(2, b)e(3, c).
Solução de problemas
|
Problema |
Causa |
Solução |
|
Botão Debug está desabilitado |
Nenhum cluster de sessão está em execução |
Crie e inicie um cluster de sessão 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 vazios |
Tabela de origem 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 cluster de sessão |
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 inesperada na depuração |
Modificação automática de DDL não visível |
Consulte 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 Deploy a job.
Após implantar um job, consulte Start a deployment.
Para um tutorial completo do fluxo de trabalho Flink SQL, consulte Quick start for Flink SQL jobs.