2017-08-22 3 views
-1

Hier ist die Situation.
Ich habe zwei Datenquellen, eine Nachrichtenwarteschlange und eine MySQL-Tabelle, die als DataStream bzw. DataSet angesehen werden können. Ich möchte einen Job basierend auf DataStream starten, um Daten aus der Nachrichtenwarteschlange zu ziehen und einige Berechnungen durchzuführen. Im Verlauf der Berechnung wird ein auf DataSet (der MySQL-Tabelle) basierender Job benötigt, dessen OutputFormat das Ergebnis an den DataStream-Job zurückgeben soll.
Ich bin hier fest und brauche Hilfe.Wie bekomme ich das Ergebnis eines Jobs in einem anderen Job in Flink?

Antwort

2

Sie können die DataStream- und DataSet-APIs nicht im selben Job mischen. Es gibt jedoch Möglichkeiten, von einem Streaming-Job aus auf MySQL zuzugreifen. Sie können:

  1. Abfrage von MySQL aus einem flatmap
  2. Verwendung asynchronen I/O zu tun, dass effizienten
  3. Strom in den Daten von MySQL so etwas wie debezium

Verwendung Je nachdem, wie Sie Möchten Sie die Daten von mysql mit Ihren anderen Streams verbinden, können Sie eine CoFlatmapFunction oder eine CoProcessFunction verwenden.

Verwandte Themen