Beispiel: Erkennen von Hotspots in einem Stream (HOTSPOTS-Funktion) - Amazon-Kinesis-Data-Analytics für SQL-Anwendungen

Für neue Projekte empfehlen wir, den neuen Managed Service für Apache Flink Studio anstelle von Kinesis-Data-Analytics-for-SQL-Anwendungen zu verwenden. Der Managed Service für Apache Flink Studio kombiniert Benutzerfreundlichkeit mit fortschrittlichen Analysefunktionen, sodass Sie in wenigen Minuten anspruchsvolle Anwendungen zur Stream-Verarbeitung erstellen können.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiel: Erkennen von Hotspots in einem Stream (HOTSPOTS-Funktion)

Amazon Kinesis Data Analytics bietet die HOTSPOTS-Funktion, die Informationen über relativ dichte Bereiche in Ihren Daten finden und ausgeben kann. Weitere Informationen finden Sie unter HOTSPOTS in der SQL-Referenz für Amazon Managed Service für Apache Flink.

In dieser Übung schreiben Sie Anwendungscode zum Suchen nach Hotspots in der Streaming-Quelle Ihrer Anwendung. Um die Anwendung einzurichten, führen Sie die folgenden Schritte aus:

  1. Einrichten einer Streaming-Quelle – Sie richten einen Kinesis-Stream ein und schreiben wie folgt Beispielkoordinatendaten:

    {"x": 7.921782426109737, "y": 8.746265312709893, "is_hot": "N"} {"x": 0.722248626528026, "y": 4.648868803193405, "is_hot": "Y"}

    Das Beispiel stellt ein Python-Skript bereit, mit dem Sie den Stream befüllen können. Die Werte x und y werden zufällig generiert, dabei sind einige Datensätze um bestimmte Stellen herum gruppiert.

    Das is_hot-Feld wird als Indikator bereitgestellt, wenn das Skript den Wert absichtlich als Teil eines Hotspots generiert hat. So können Sie ermitteln, ob die Hotspot-Erkennungsfunktion ordnungsgemäß funktioniert.

  2. Erstellen der Anwendung – Mithilfe der AWS Management Console erstellen Sie dann eine Kinesis Data Analytics-Anwendung. Konfigurieren Sie die Anwendungseingabe, indem Sie die Streaming-Quelle einem In-Application-Stream zuweisen (SOURCE_SQL_STREAM_001). Wenn die Anwendung gestartet wird, liest Kinesis Data Analytics kontinuierlich die Streaming-Quelle und fügt Datensätze in den In-Application-Stream ein.

    In dieser Übung verwenden Sie den folgenden Code für die Anwendung:

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( "x" DOUBLE, "y" DOUBLE, "is_hot" VARCHAR(4), HOTSPOTS_RESULT VARCHAR(10000) ); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT "x", "y", "is_hot", "HOTSPOTS_RESULT" FROM TABLE ( HOTSPOTS( CURSOR(SELECT STREAM "x", "y", "is_hot" FROM "SOURCE_SQL_STREAM_001"), 1000, 0.2, 17) );

    Der Code liest Zeilen im SOURCE_SQL_STREAM_001, analysiert ihn auf wichtige Hotspots hin und schreibt die resultierenden Daten in einen anderen In-Application-Stream (DESTINATION_SQL_STREAM). Sie verwenden Pumps, um Zeilen in In-Application-Streams einzufügen. Weitere Informationen finden Sie unter In-Application-Streams und Pumps.

  3. Konfigurieren der Ausgabe – Sie konfigurieren die Anwendungsausgabe für das Senden von Daten von der Anwendung an ein externes Ziel, bei dem es sich um einen anderen Kinesis-Datenstrom handelt. Überprüfen Sie die Hotspot-Ergebnisse und bestimmen Sie, welche Ergebnisse darauf hinweisen, dass ein Hotspot aufgetreten ist (und dass Sie darüber informiert sein müssen). Sie können eine AWS Lambda-Funktion verwenden, um Hotspot-Informationen weiter zu verarbeiten und Warnungen zu konfigurieren.

  4. Überprüfen der Ausgabe – Das Beispiel enthält eine JavaScript-Anwendung, die Daten aus dem Ausgabe-Stream liest und grafisch darstellt, sodass Sie die Hotspots, die die Anwendung generiert, in Echtzeit anzeigen können.

Die Übung verwendet die Region USA West (Oregon) (us-west-2), um diese Streams und Ihre Anwendung zu erstellen. Wenn Sie eine andere Region verwenden, aktualisieren Sie den Code dementsprechend.