Fehlerbehebung bei Amazon Kinesis Data Analytics für SQL-Anwendungen - Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL Applications

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.

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:

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:

  1. Wählen Sie in der Kinesis Data Analytics-Konsole den Namen der Anwendung in der Liste aus und klicken Sie dann auf Anwendungsdetails.

  2. Klicken Sie auf Go to SQL-Editor (Gehe zu SQL-Editor), um die Seite Real-time analytics (Echtzeitanalyse) für die Anwendung zu öffnen.

  3. Wählen Sie in der Ansicht Source Data (Quelldaten) den Namen Ihrer Referenzdatentabelle aus.

  4. 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:

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 ein bigint 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 Streamerror_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 des InputParallelism-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.