Problembehandlung von Openflow Connector for Kinesis¶
Bemerkung
Dieser Connector unterliegt den `Nutzungsbedingungen für Snowflake Connector<https://www.snowflake.com/legal/snowflake-connector-terms/>`_.
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:
Klicken Sie im Openflow-Arbeitsbereich mit der rechten Maustaste auf den Prozessor.
Wählen Sie Configure aus dem Kontextmenü.
Navigieren Sie zur Registerkarte Scheduling.
Geben Sie in das Feld Concurrent tasks die gewünschte Anzahl gleichzeitiger Aufgaben ein.
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
;
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: UnknownHostException¶
Fehlermeldung
java.net.UnknownHostException: dynamodb.eu-west-1.amazonaws.com
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.
Ursache
Dieser Fehler kann auftreten, wenn der Kinesis-Stream nicht existiert oder die AWS-Region falsch angegeben ist.
Lösung
Überprüfen Sie die KCL-Protokolle auf Meldungen wie:
Got ResourceNotFoundException when fetching shard list for stream-name. Stream no longer exists.
Überprüfen Sie, ob der Stream-Name korrekt ist und der Stream in AWS vorhanden ist.
Überprüfen Sie, ob die AWS-Region in der Konnektorkonfiguration korrekt angegeben ist.