Nach reiflicher Überlegung haben wir beschlossen, Amazon Kinesis Data Analytics für SQL Anwendungen in zwei Schritten einzustellen:
1. Ab dem 15. Oktober 2025 können Sie keine neuen Kinesis Data Analytics für SQL Anwendungen erstellen.
2. Wir werden Ihre Anwendungen ab dem 27. Januar 2026 löschen. Sie können Ihre Amazon Kinesis Data Analytics for SQL Applications weder starten noch betreiben. SQLAb diesem Zeitpunkt ist kein Support mehr für Amazon Kinesis Data Analytics verfügbar. Weitere Informationen finden Sie unter Einstellung von Amazon Kinesis Data Analytics for SQL Applications.
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.
Rollierende Fenster (Zusammenfassungen mit GROUP BY)
Wenn eine Abfrage mit Fenster jedes Fenster so verarbeitet, dass diese sich nicht überschneiden, wird das Fenster als rollierendes Fenster bezeichnet. In diesem Fall gehört jeder Datensatz in einem In-Application-Stream zu einem bestimmten Fenster. Er wird nur einmal verarbeitet (wenn die Abfrage das Fenster verarbeitet, zu dem der Datensatz gehört).
Beispielsweise verarbeitet eine Zusammenfassungsabfrage, die eine GROUP BY
-Klausel verwendet, Zeilen in einem rollierenden Fenster. Der Demo-Stream in der Erste Schritte-Übung empfängt Aktienpreisdaten, die dem In-Application-Stream SOURCE_SQL_STREAM_001
in Ihrer Anwendung zugeordnet sind. Dieser Stream weist das folgende Schema auf.
(TICKER_SYMBOL VARCHAR(4), SECTOR varchar(16), CHANGE REAL, PRICE REAL)
Angenommen, Sie möchten in Ihrem Anwendungscode zusammengefasste Mindest-/Höchstpreise für jeden Ticker im Zeitraum von einer Minute finden. Sie können die folgende Abfrage verwenden.
SELECT STREAM ROWTIME, Ticker_Symbol, MIN(Price) AS Price, MAX(Price) AS Price FROM "SOURCE_SQL_STREAM_001" GROUP BY Ticker_Symbol, STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND);
Das vorherige Beispiel ist eine Abfrage mit Fenster auf Zeitbasis. Die Abfrage gruppiert Datensätze nach ROWTIME
-Werten. Für Berichte auf Minutenbasis rundet die Funktion STEP
die ROWTIME
-Werte auf die nächste Minute ab.
Anmerkung
Sie können auch die FLOOR
-Funktion verwenden, um Datensätze in Fenstern zu gruppieren. Die Funktion FLOOR
kann Zeitwerte jedoch nur auf eine gesamte Zeiteinheit (Stunde, Minute, Sekunde usw.) abrunden. STEP
wird für die Gruppierung von Datensätzen in rollierende Zeitfenster empfohlen, da hierdurch Werte auf ein beliebiges Intervall, z. B. 30 Sekunden, abgerundet werden können.
Diese Abfrage ist ein Beispiel für ein nicht überschneidendes (rollierendes) Fenster. Die GROUP
BY
-Klausel gruppiert Datensätze in einem Fenster von einer Minute. Jeder Datensatz gehört zu einem bestimmten Fenster (keine Überschneidungen). Die Abfrage gibt eine einzelne Ausgabe pro Minute aus und stellt den Minimum-/Maximum-Tickerpreis bereit, der während dieser bestimmten Minute aufgezeichnet wurde. Diese Art von Abfrage ist nützlich, um aus dem Eingabedaten-Stream regelmäßige Berichte zu generieren. In diesem Beispiel werden jede Minute Berichte generiert.
So testen Sie die Abfrage
-
Richten Sie anhand der Erste Schritte-Übung eine Anwendung ein.
-
Ersetzen Sie die
SELECT
-Anweisung im Anwendungscode durch die vorherigeSELECT
-Abfrage. Der resultierende Anwendungscode wird im Folgenden gezeigt:CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( ticker_symbol VARCHAR(4), Min_Price DOUBLE, Max_Price DOUBLE); -- CREATE OR REPLACE PUMP to insert into output CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM Ticker_Symbol, MIN(Price) AS Min_Price, MAX(Price) AS Max_Price FROM "SOURCE_SQL_STREAM_001" GROUP BY Ticker_Symbol, STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND);