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.
Fehlerbehebung bei Amazon Kinesis Data Analytics für SQL-Anwendungen
Die folgenden Informationen können zum Beheben von möglichen Problemen mit Amazon Kinesis Data Analytics für SQL-Anwendungen nützlich sein.
Themen
- Gestoppte Anwendungen
- SQL-Code kann nicht ausgeführt werden
- Mein Schema wird nicht erkannt oder gefunden
- Referenzdaten sind nicht mehr auf dem neuesten Stand
- Anwendung wird nicht ans Ziel geschrieben
- Wichtige zu überwachende Parameter zum Anwendungsstatus
- Fehler „Ungültiger Code” beim Ausführen einer Anwendung
- Anwendung schreibt Fehler an den Fehler-Stream
- Nicht genügend Durchsatz oder hoher Wert für MillisBehindLatest
Gestoppte Anwendungen
Was ist eine gestoppte Kinesis Data Analytics für SQL-Anwendung?
Eine gestoppte Anwendung ist eine Anwendung, bei der wir beobachtet haben, dass sie mindestens drei Monate lang keine Datensätze verarbeitet hat. Das bedeutet, dass Kunden für Kinesis Data Analytics für SQL-Ressourcen zahlen, die sie nicht nutzen.
Wann beginnt AWS mit dem Stoppen inaktiver Anwendungen?
AWS beginnt am 14. November 2023 mit dem Stoppen inaktiver Anwendungen und wird dies bis zum 21. November 2023 abgeschlossen haben. Wir werden inaktive Anwendungen während der Bürozeiten in der Zeitzone der jeweiligen Region stoppen.
Können gestoppte Kinesis Data Analytics für SQL-Anwendungen neu gestartet werden?
Ja. Wenn Sie Ihre Anwendung neu starten müssen, können Sie dies wie gewohnt tun. Es ist nicht erforderlich, ein Support-Ticket zu erstellen.
Werden Abfrageergebnisse von mir ebenfalls gelöscht, wenn eine inaktive Anwendung von AWS gestoppt wird?
Nein. Erstens verarbeitet Ihre Anwendung keine Abfragen, da sie inaktiv ist. Zweitens werden Ihre Abfrageergebnisse nicht in Kinesis Data Analytics für SQL gespeichert. Sie konfigurieren Ihre Kinesis Data Analytics für SQL-Anwendung mit einem Weiterleitungsziel, an das die Ergebnisse der Berechnungen gesendet werden (z. B. in Amazon S3 oder in einem anderen Datenstrom). Somit behalten Sie das volle Eigentum an Ihren Daten und sie bleiben gemäß den Bedingungen dieses Speicherservices abrufbar.
Was mache ich, wenn ich nicht möchte, dass meine Anwendung gestoppt wird?
Sie können dem Serviceteam (kda-sql-questions@amazon.com) eine E-Mail mit der Bitte senden, dass Anwendungen nicht vor dem 10. November 2023 gestoppt werden sollen. Die E-Mail sollte Ihre Konto-ID und Ihren Anwendungs-ARN enthalten.
SQL-Code kann nicht ausgeführt werden
Wenn Sie herausfinden müssen, wie Sie die einwandfreie Funktionsweise einer bestimmten SQL-Anweisung sicherstellen können, stehen Ihnen dafür verschiedene Ressourcen bei der Verwendung von Kinesis Data Analytics zur Verfügung:
Weitere Informationen zu SQL-Anweisungen finden Sie unterKinesis Data Analytics für SQL. Dieser Abschnitt enthält eine Reihe von SQL-Beispielen, die Sie verwenden können.
Die Amazon Kinesis Data Analytics-SQL-Referenz stellt detaillierte Anleitungen zum Erstellen von SQL-Streaming-Anweisungen bereit.
Falls Sie immer noch Probleme haben, empfehlen wir, dass Sie eine entsprechende Frage in den Kinesis Data Analytics-Foren
stellen.
Mein Schema wird nicht erkannt oder gefunden
In einigen Fällen kann Kinesis Data Analytics kein Schema erkennen oder finden. In vielen dieser Fälle lässt sich Kinesis Data Analytics trotzdem verwenden.
Nehmen wir an, dass Sie gemäß UTF-8 kodierte Daten haben, die kein Trennzeichen verwenden, oder Daten mit einem anderen Format als das CSV-Dateiformat (durch Kommas getrennte Werte) oder dass die Erkennungs-API Ihr Schema nicht gefunden hat. In diesen Fällen können Sie ein Schema manuell definieren oder die Funktionen zur Zeichenkettenmanipulation verwenden, um Ihre Daten zu strukturieren.
Um das Schema für Ihren Stream zu finden, nimmt Kinesis Data Analytics zufällige Stichproben der aktuellen Daten in Ihrem Stream. Wenn Sie nicht konsistent Daten an Ihren Stream senden, kann Kinesis Data Analytics möglicherweise keine Stichprobe abrufen, um ein Schema zu erkennen. Weitere Informationen finden Sie unter Verwenden der Funktion der Schemaerkennung für Streaming-Daten.
Referenzdaten sind nicht mehr auf dem neuesten Stand
Referenzdaten werden aus dem Amazon Simple Storage Service (Amazon S3)-Objekt in die Anwendung geladen, wenn die Anwendung gestartet oder aktualisiert wird, oder während Anwendungsunterbrechungen aufgrund von Service-Problemen.
Referenzdaten werden nicht in die Anwendung geladen, wenn das zugrunde liegende Amazon S3-Objekt aktualisiert wird.
Wenn die Referenzdaten in der Anwendung nicht auf dem neuesten Stand sind, können Sie die Daten neu laden, indem Sie die folgenden Schritte ausführen:
-
Wählen Sie in der Kinesis Data Analytics-Konsole den Namen der Anwendung in der Liste aus und klicken Sie dann auf Anwendungsdetails.
-
Klicken Sie auf Go to SQL-Editor (Gehe zu SQL-Editor), um die Seite Real-time analytics (Echtzeitanalyse) für die Anwendung zu öffnen.
-
Wählen Sie in der Ansicht Source Data (Quelldaten) den Namen Ihrer Referenzdatentabelle aus.
Wählen Sie Actions (Aktionen), Synchronize reference data table (Referenzdatentabelle synchronisieren).
Anwendung wird nicht ans Ziel geschrieben
Wenn keine Daten ans Ziel geschrieben werden, überprüfen Sie Folgendes:
Stellen Sie sicher, dass die Rolle der Anwendung über ausreichende Berechtigungen für den Zugriff auf das Ziel verfügt. Weitere Informationen finden Sie unter Berechtigungsrichtlinie für das Schreiben an einen Kinesis-Stream oder Berechtigungsrichtlinie für das Schreiben zu einem Firehose-Bereitstellungs-Stream.
Stellen Sie sicher, dass das Anwendungsziel richtig konfiguriert ist und dass die Anwendung den richtigen Namen für den Ausgabe-Stream verwendet.
Stellen Sie durch Überprüfen der Amazon CloudWatch-Metriken für Ihren Ausgabe-Stream fest, ob Daten geschrieben werden. Informationen zu CloudWatch finden Sie unter Überwachung mit Amazon CloudWatch.
Fügen Sie mitAddApplicationCloudWatchLoggingOption einen CloudWatch-Protokollstream hinzu. Die Anwendung schreibt Konfigurationsfehler in den Protokoll-Stream.
Wenn Rolle und Ziel korrekt konfiguriert sind, starten Sie die Anwendung neu. Geben Sie dabei LAST_STOPPED_POINT
für die InputStartingPositionConfiguration ein.
Wichtige zu überwachende Parameter zum Anwendungsstatus
Um sicherzustellen, dass Ihre Anwendung einwandfrei ausgeführt wird, empfehlen wir, dass Sie bestimmte wichtige Parameter überwachen.
Der wichtigste zu überwachende Parameter ist die Amazon CloudWatch-Metrik MillisBehindLatest
. Diese Metrik stellt dar, mit welcher zeitlichen Differenz zur aktuellen Zeit Sie aus dem Stream lesen. Mit dieser Metrik können Sie ermitteln, ob Sie Datensätze aus dem Quell-Stream schnell genug verarbeiten.
In der Regel sollten Sie einen CloudWatch-Alarm einrichten, der ausgelöst wird, wenn Sie mehr als eine Stunde zurückfallen. Die Zeitdauer hängt allerdings von Ihrem Anwendungsfall ab. Sie können sie nach Bedarf anpassen.
Weitere Informationen finden Sie unter Bewährte Methoden.
Fehler „Ungültiger Code” beim Ausführen einer Anwendung
Zu häufigen Ursachen dafür, dass sich der SQL-Code für Ihre Amazon Kinesis Data Analytics-Anwendung nicht speichern und ausführen lässt, zählen unter anderem diese:
-
Der Stream wurde in Ihrem SQL-Code umdefiniert – Nachdem Sie einen Stream und die zugeordnete Pumpe erstellt haben, können Sie diesen Stream nicht in Ihrem Code umdefinieren. Weitere Informationen zum Erstellen eines Streams finden Sie unter STREAM ERSTELLEN in der Amazon Kinesis Data Analytics-SQL-Referenz. Weitere Informationen zum Erstellen eines Pumps finden Sie unter CREATE PUMP.
-
Eine GROUP BY-Klausel verwendet mehrere ROWTIME-Spalten – Sie können nur eine ROWTIME-Spalte in der GROUP BY-Klausel festlegen. Weitere Informationen finden Sie unter GROUP BY und ROWTIME in der Amazon Kinesis Data Analytics-SQL-Referenz.
-
Ein oder mehrere Datentypen weisen eine ungültige Umwandlung auf – In diesem Fall weist Ihr Code eine ungültige implizite Umwandlung auf. Beispielsweise wandeln Sie in Ihrem Code möglicherweise einen
timestamp
in einbigint
um. -
Ein Stream hat denselben Namen wie ein für einen Service reservierter Stream – Ein Stream kann nicht denselben Namen haben wie der für einen Service reservierte Stream
error_stream
.
Anwendung schreibt Fehler an den Fehler-Stream
Wenn Ihre Anwendung Fehler an den In-Application-Fehler-Stream schreibt, können Sie den Wert im Feld DATA_ROW
mittels Standard-Bibliotheken decodieren. Weitere Informationen zum Fehler-Stream finden Sie unter Fehlerbehandlung.
Nicht genügend Durchsatz oder hoher Wert für MillisBehindLatest
Wenn der Wert für die Anwendungsmetrik MillisBehindLatest ständig ansteigt oder der Wert über 1000 (1 Sekunde) liegt, kann dies auf folgende Gründe zurückgeführt werden:
Prüfen Sie die CloudWatch-Metrik für InputBytes Ihrer Anwendung. Wenn die Verarbeitung mehr als 4 MB/s benötigt, kann dies zu einer Erhöhung von
MillisBehindLatest
führen. Um den Durchsatz Ihrer Anwendung zu verbessern, erhöhen Sie den Wert desInputParallelism
-Parameters. Weitere Informationen finden Sie unter Parallelisieren von Eingabe-Streams zur Steigerung des Durchsatzes.Überprüfen Sie die Erfolg-Metrik Ihrer Anwendung für die Anwendungsausgabe nach Fehlern bei der Bereitstellung am Ziel. Vergewissern Sie sich, dass Sie die Ausgabe korrekt konfiguriert haben, und dass der Ausgabe-Stream über ausreichend Kapazität verfügt.
Wenn Ihre Anwendung eine AWS Lambda-Funktion für die Vorverarbeitung oder als Ausgabe verwendet, prüfen Sie die CloudWatch-Metriken InputProcessing.Duration oder LambdaDelivery.Duration der Anwendung. Wenn der Aufruf der Lambda-Funktion länger als 5 Sekunden dauert, ziehen Sie Folgendes in Betracht:
Erhöhen Sie die Speicher-Zuweisung der Lambda-Funktion. Sie können dies auf der AWS Lambda-Konsole auf der Seite Configuration (Konfiguration) unter Basic settings (Grundlegende Einstellungen) tun. Weitere Informationen finden Sie unter Konfigurieren von Lambda-Funktionen im AWS Lambda-Entwicklerhandbuch.
Erhöhen Sie die Anzahl der Shards im Eingabe-Stream der Anwendung. Dadurch wird die Anzahl der Aufrufe von parallelen Funktionen der Anwendung erhöht, die den Durchsatz erhöhen können.
Vergewissern Sie sich, dass die Funktion keine Blockierungsaufrufe macht, die die Leistung beeinträchtigen, wie z. B. synchrone Anfragen für externe Ressourcen.
Überprüfen Sie die AWS Lambda-Funktion, um zu sehen, ob es andere Bereiche gibt, in denen Sie die Leistung verbessern können. Überprüfen Sie die CloudWatch Logs der Lambda-Funktion der Anwendung. Weitere Informationen finden Sie unter Zugriff auf Amazon CloudWatch-Metriken für im AWS Lambda-Entwicklerhandbuch.
Vergewissern Sie sich, dass Ihre Anwendung nicht die Standardbegrenzung für Kinesis Processing Units (KPU) erreicht. Wenn Ihre Anwendung diese Grenze erreicht, können Sie eine Erweiterung der Begrenzung anfordern. Weitere Informationen finden Sie unter Automatisches Skalieren von Anwendungen zur Erhöhung des Durchsatzes.
Wenn Ihre Anwendung nach der Erhöhung Ihres KPU-Limits immer noch Probleme hat, überprüfen Sie, dass der Eingabedurchsatz Ihrer Anwendung 100 MB/s nicht überschreitet. Wenn er 100 MB/s überschreitet, empfehlen wir, Änderungen vorzunehmen, um den Gesamtdurchsatz zu reduzieren und die Anwendung zu stabilisieren, indem beispielsweise die Datenmenge reduziert wird, die an die Datenquelle gesendet wird, aus der die Kinesis Data Analytics SQL-Anwendung liest. Wir empfehlen auch andere Ansätze, darunter die Erhöhung der Parallelität der Anwendung, die Verkürzung der Berechnungsdauer, die Umstellung von spaltenförmigen Datentypen von VARCHAR auf Datentypen mit kleineren Größen (z. B. INTEGER, LONG usw.) und die Reduzierung der durch Sampling oder Filterung verarbeiteten Daten.
Anmerkung
Wir empfehlen, die
InputProcessing.OkBytes
-Metrik Ihrer Anwendung regelmäßig zu überprüfen, damit Sie im Voraus planen können, mehrere SQL-Anwendungen zu verwenden oder zu managed-flink/latest/java/ zu migrieren, falls der prognostizierte Eingabedurchsatz Ihrer Anwendung 100 MB/Sek. überschreiten wird.