2017-08-31 1 views
1

Je suis aux prises avec un problème concernant le temps d'événement du connecteur consommateur kafka de flink. Citant Flink docConnecteur Flink Kafka 0.10.0 Heure de l'événement Clarification et ProcessFunction Clarification

Depuis Apache Kafka 0.10+, les messages de Kafka peuvent porter horodatages, ce qui indique le moment où l'événement a eu lieu (voir « heure de l'événement » dans Apache Flink) ou le moment où le message a été écrit à la Kafka courtier.

Le FlinkKafkaConsumer010 émet des enregistrements avec l'horodatage joint si la caractéristique de temps dans Flink est définie sur TimeCharacteristic.EventTime (StreamExecutionEnvironment.setStreamTimeCharacteristic (TimeCharacteristic.EventTime)).

Le consommateur Kafka n'émet pas de filigranes.

Quelques questions et les questions viennent à l'esprit:

  1. Comment puis-je savoir si l'horodatage est pris du temps, il a eu lieu ou le temps écrit au courtier Kafka?
  2. Si le consommateur n'émet pas de filigranes et que TimeCharacteristic.EventTime est défini, cela signifie-t-il qu'un message en retard de quelques jours peut toujours entrer et être traité?
  3. Le diagramme de flux principal ne contient pas de fonction de fenêtre et ressemble essentiellement à ceci: source (kafka) -> filter-> processFunction-> Sink. Est-ce que cela signifie que l'événement est déclenché au moment où il est consommé par le connecteur Kafka? J'utilise actuellement le connecteur Kafka 0.10.0, TimeCharacteristic.EventTime, et j'utilise une processFunction qui effectue chaque nettoyage attendu. Cependant, je reçois une situation étrange où le OnTimerContext contient des horodateurs qui commencent à partir de 0 et grandissent jusqu'à l'horodatage actuel lorsque je lance le programme flink et est assez étrange, est-ce un bug?

Merci d'avance à tous les helpers!

Répondre

0
  1. Cela dépend de la configuration du producteur Kafka qui crée ces événements. La propriété message.timestamp.type doit être définie sur CreateTime ou LogAppendTime.
  2. Votre application Flink est responsable de la création de filigranes. le consommateur kafka prendra soin des horodateurs, mais pas des filigranes. Peu importe la fin d'un événement, il entrera dans votre pipeline.
  3. Oui.
  4. Ce n'est pas clair pour moi quelle partie de ceci est étrange.