Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Coleta de dados incorretos

Última atualização: Jun 27, 2026

Este tópico descreve como usar o coletor de dados incorretos em jobs de ingestão de dados do Flink CDC.

Visão geral

Na sincronização de dados em tempo real, a análise de dados de uma origem pode falhar devido a problemas como formatos incorretos, erros de codificação ou incompatibilidade de schema. Esse tipo de dado não processável é conhecido como dado incorreto.

A partir da versão 11,5 do VVR, a ingestão de dados oferece suporte à coleta de dados incorretos para a fonte de dados Kafka. As opções de configuração do conector permitem configurar o job para ignorar erros, registrar detalhes e continuar a execução.

Quando o conector encontra dados impossíveis de analisar, o sistema captura automaticamente os dados brutos e as informações de exceção e os grava em um coletor especificado. Isso permite:

  • Tolerar uma pequena quantidade de dados incorretos para evitar a interrupção de todo o pipeline.

  • Registrar o contexto completo para solução de problemas e análises posteriores.

  • Definir um limiar para evitar um número excessivo de erros.

Casos de uso típicos

Caso de uso

Objetivo

Pipelines de coleta de logs

(Para fontes de dados não estruturados, como logs de aplicativos)

A qualidade dos dados é inconsistente. Ignore alguns registros defeituosos para garantir que o processo principal continue em execução.

Sincronização de tabelas de negócios principais

(Para sistemas críticos, como pedidos ou alterações de conta)

Exige alta consistência. Os erros acionam alertas imediatos para intervenção manual.

Fase de exploração e análise de dados

Processe todo o conjunto de dados rapidamente para entender sua estrutura geral antes de resolver problemas de dados incorretos.

Limitações e considerações

Antes de usar este recurso, compreenda suas limitações e riscos potenciais:

  • Conectores suportados: atualmente, este recurso está disponível apenas para a fonte de dados Kafka. O suporte a outras fontes será adicionado em versões futuras.

  • Tipos de coletor suportados: no momento, apenas o tipo logger tem suporte. Ele grava dados incorretos em um arquivo de log.

Nota

Este recurso é adequado para depuração e estágios iniciais de produção. Se grandes volumes de dados incorretos persistirem, recomendamos implementar medidas de governança de dados no sistema upstream.

Sintaxe

Ative o coletor de dados incorretos

O coletor de dados incorretos é definido no módulo pipeline. A sintaxe é a seguinte:

pipeline:
  dirty-data.collector:
    name: Logger Dirty Data Collector
    type: logger

Parâmetro

Descrição

name

Nome do coletor. Recomendamos usar um nome significativo, como Kafka-DQ-Collector.

type

Tipo do coletor. Valores válidos:

  • logger: grava dados incorretos em um arquivo de log.

Nota

Se você não definir esta opção, o sistema não registrará dados incorretos, mesmo que a tolerância a erros esteja ativada.

Configure a tolerância a erros na fonte de dados

Configurar apenas o coletor de dados incorretos não faz com que o sistema ignore erros de análise. Use este recurso em conjunto com a política de tolerância a erros do Kafka. Para obter detalhes, consulte a documentação do conector Kafka. O exemplo a seguir mostra uma configuração típica:

source:
  type: kafka
  # Skip the first 100 parsing errors; if the count exceeds 100, the job fails.
  ingestion.ignore-errors: true
  ingestion.error-tolerance.max-count: 100

Parâmetro

Padrão

Descrição

ingestion.ignore-errors

false

Especifica se os erros de análise devem ser ignorados.

Se definido como true, o job ignora o registro com falha. Se definido como false, o job falha imediatamente.

ingestion.error-tolerance.max-count

-1 (ilimitado)

Número máximo de registros de dados incorretos tolerados.

Quando ingestion.ignore-errors está definido como true, se o número de registros de dados incorretos coletados exceder esse valor, o job aciona um failover e para.

Coletor de dados incorretos do tipo logger

O coletor de dados incorretos do tipo logger armazena dados incorretos em um arquivo de log separado. Para visualizar os logs de dados incorretos, siga estas etapas:

  1. Acesse a página O&M e clique em Job Logs.

  2. Clique em Running Logs, selecione a subaba Running Task Managers e selecione o nó TaskManager do operador relevante.

  3. Clique em Log List e clique em yaml-dirty-data.out na lista para visualizar ou salve os registros de dados incorretos.

Cada registro de dado incorreto inclui os seguintes metadados:

  • Timestamp de processamento do dado incorreto

  • Operador e índice da subtarefa que emitiram o registro

  • Conteúdo dos dados brutos

  • Informações da exceção que causou a falha no processamento

Formato do registro de dados incorretos

Cada registro contém os seguintes metadados:

text[2025-04-05 10:23:45] [Operator: SourceKafka -> Subtask: 2]
Raw Data: {"id": "abc", "ts": "invalid-timestamp"}
Exception: java.time.format.DateTimeParseException: Text 'invalid-timestamp' could not be parsed at index 0
---

Campo

Descrição

Timestamp

Hora em que o dado incorreto foi capturado.

Operador e subtarefa

Operador específico e índice da subtarefa paralela onde ocorreu o erro.

Dados brutos

Dados brutos não analisados (no formato Base64 ou string).

Exceção

Tipo de exceção e resumo do stack trace da falha de análise.

Perguntas frequentes

Dados incorretos afetam checkpoints?

Não. O sistema intercepta os dados incorretos antes da atualização de estado, portanto, eles não causam falhas nos checkpoints.

Coleta de dados incorretos vs. side output

  • Coletor de dados incorretos: lida com dados impossíveis de desserializar ou analisar.

  • Side output: lida com dados analisáveis que não atendem aos requisitos da lógica de negócios.