Problembehandlung von Openflow Connector for Kinesis

Unter diesem Thema wird beschrieben, wie Sie häufige Probleme mit Openflow Connector for Kinesis beheben können.

Häufige Probleme

Meldungen werden nicht erfasst

Symptom

Der ConsumeKinesis-Prozessor in einer Kinesis JSON Source-Prozessgruppe wird ausgeführt, aber es werden keine Daten erzeugt und es werden keine Fehlermeldungen ausgegeben.

Ursache

Möglicherweise ist in einer zugrunde liegenden AWS KCL-Bibliothek ein Fehler aufgetreten, der nicht an die Openflow-UI weitergegeben wurde.

Lösung

Überprüfen Sie die KCL-Protokolle, um den zugrunde liegenden Fehler zu identifizieren.

FlowFile-Warteschlangen sind voll

Symptom

FlowFile-Warteschlangen füllen sich und der Konnektor verarbeitet die Daten nicht schnell genug.

Ursache

Die nachgelagerten Prozessoren können mit der Rate der eingehenden Daten nicht mithalten. Der wahrscheinlich langsamste Prozessor ist Put Data To Snowflake vom Typ PutSnowpipeStreaming in einer Streaming Destination-Prozessgruppe.

Lösung

Passen Sie die Anzahl der gleichzeitigen Aufgaben für den Prozessor an. Gleichzeitige Aufgaben ermöglichen es Prozessoren, mehrere Threads gleichzeitig auszuführen, was den Durchsatz in Szenarios mit hohem Volumen verbessert.

Um die gleichzeitigen Aufgaben für einen Prozessor anzupassen, führen Sie die folgenden Aufgaben aus:

  1. Klicken Sie im Openflow-Arbeitsbereich mit der rechten Maustaste auf den Prozessor.

  2. Wählen Sie Configure aus dem Kontextmenü.

  3. Navigieren Sie zur Registerkarte Scheduling.

  4. Geben Sie in das Feld Concurrent tasks die gewünschte Anzahl gleichzeitiger Aufgaben ein.

  5. Wählen Sie Apply, um die Konfiguration zu speichern.

Snowflake empfiehlt die folgenden Werte für die Anzahl der Aufgaben, obwohl der korrekte Wert für einen konkreten Anwendungsfall abweichen kann:

  • 1–2 bei kleinen Laufzeiten

  • 2–4 bei mittelgroßen Laufzeiten

  • 6–8 bei großen Laufzeiten

Beobachten Sie nach der Änderung der Aufgabenanzahl den Prozessor, um sicherzustellen, dass eine Erhöhung der Aufgabenanzahl den Durchsatz verbessert.

Überprüfen der KCL-Protokolle

Der Konnektor verwendet die AWS Kinesis Client-Bibliothek (KCL) v3 unter der Oberfläche. Fehler, die in KCL auftreten, werden nicht immer an die Openflow-UI weitergegeben, überprüfen Sie daher die KCL-Protokolle zur Problembehandlung.

Die KCL-Protokolle werden in einer konfigurierten Ereignistabelle gespeichert. Sie können diese mit der folgenden Abfrage abrufen:

SELECT
    timestamp,
    runtime_key,
    resource_attributes,
    log,
    log:formattedMessage,
FROM (
    SELECT
        timestamp,
        resource_attributes,
        resource_attributes:"openflow.dataplane.id" AS deployment_id,
        resource_attributes:"k8s.namespace.name" AS runtime_key,
        resource_attributes:"k8s.pod.name" AS runtime_pod,
        TRY_PARSE_JSON(value) AS log,
    FROM <event_table>
    WHERE TRUE
        AND timestamp > DATEADD(minute, -30, SYSDATE())
        AND record_type = 'LOG'
        AND runtime_key = 'runtime-<runtime_name>'
        AND resource_attributes:"k8s.container.name" ILIKE '%-server'
)
WHERE TRUE
    AND log:loggerName LIKE 'software.amazon.kinesis.%'
    AND log:level IN ('WARN', 'ERROR')
ORDER BY timestamp DESC
;
Copy

Ersetzen Sie <event_table> with a configured event table name and <runtime_name> durch einen Laufzeitnamen.

Häufige KCL-Fehler

In diesem Abschnitt werden häufige Fehler und deren Behebung beschrieben, die in den KCL-Protokollen auftreten können.

Fehler: Der Benutzer ist nicht autorisiert

Fehlermeldung

User: **** is not authorized to perform: kinesis:RegisterStreamConsumer on
resource: arn:aws:kinesis:us-east-2:***:stream/*** because no identity-based
policy allows the kinesis:RegisterStreamConsumer action (Service: Kinesis,
Status Code: 400, Request ID: ***, Extended Request ID: ***)
(SDK Attempt Count: 1)
Copy

Ursache

Der konfigurierte AWS-Benutzer verfügt nicht über die erforderlichen Berechtigungen für den Zugriff auf den Kinesis-Stream.

Lösung

Stellen Sie sicher, dass der AWS-Benutzer mit den Berechtigungen konfiguriert ist, die in den erforderlichen IAM-Berechtigungen für KCL-Verbraucheranwendungen angegeben sind.

Fehler: UnknownHostException

Fehlermeldung

java.net.UnknownHostException: dynamodb.eu-west-1.amazonaws.com
Copy

Ursache

Wenn die Laufzeitumgebung eine Snowflake-Bereitstellung verwendet, ist die Netzwerkregel höchstwahrscheinlich falsch konfiguriert.

Lösung

Stellen Sie sicher, dass die erforderlichen AWS-Domänen in Ihrer Netzwerkregel zulässig sind. Eine Liste der erforderlichen Domänen finden Sie unter Openflow - Snowflake Deployment einrichten: zulässige Domänen für Openflow-Konnektoren konfigurieren.

Fehler: Keine Shards gefunden

Fehlermeldung

java.lang.IllegalStateException: No shards found when attempting to
validate complete hash range.
Copy

Ursache

Dieser Fehler kann auftreten, wenn der Kinesis-Stream nicht existiert oder die AWS-Region falsch angegeben ist.

Lösung

  1. Überprüfen Sie die KCL-Protokolle auf Meldungen wie:

    Got ResourceNotFoundException when fetching shard list for stream-name.
    Stream no longer exists.
    
    Copy
  2. Überprüfen Sie, ob der Stream-Name korrekt ist und der Stream in AWS vorhanden ist.

  3. Überprüfen Sie, ob die AWS-Region in der Konnektorkonfiguration korrekt angegeben ist.