Résoudre les problèmes de Openflow Connector for Kinesis¶
Note
Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.
Ce chapitre décrit comment résoudre les problèmes courants liés au Openflow Connector for Kinesis.
Problèmes courants¶
Les messages ne sont pas ingérés¶
Symptôme
Le processeur ConsumeKinesis dans un groupe de processus Kinesis JSON Source est en cours d’exécution, mais aucune donnée n’est produite et aucun message d’erreur n’est émis.
Cause
Une erreur s’est peut-être produite dans une bibliothèque AWS KCL sous-jacente, qui n’a pas impacté l’UI d’Openflow.
Solution
Vérifiez les journaux KCL pour identifier l’erreur sous-jacente.
Les files d’attente FlowFile sont pleines¶
Symptôme
Les files d’attente FlowFile sont remplies et le connecteur ne traite pas les données assez rapidement.
Cause
Les processeurs en aval ne peuvent pas suivre le débit des données entrantes. Le processeur le plus lent est probablement Put Data To Snowflake de type PutSnowpipeStreaming dans un groupe de processus Streaming Destination.
Solution
Ajustez le nombre de tâches simultanées pour le processeur. Les tâches simultanées permettent aux processeurs d’exécuter plusieurs threads simultanément, ce qui améliore le débit des scénarios à haut volume.
Pour ajuster les tâches simultanées pour un processeur, effectuez les tâches suivantes :
Cliquez avec le bouton droit de la souris sur le processeur dans le canevas Openflow.
Sélectionnez Configure dans le menu contextuel.
Accédez à l’onglet Scheduling.
Dans le champ Concurrent tasks, entrez le nombre préféré de tâches simultanées.
Sélectionnez Apply pour enregistrer la configuration.
Snowflake recommande les valeurs suivantes pour le nombre de tâches, bien que la valeur correcte puisse varier pour un cas d’utilisation particulier :
1-2 sur les environnements d’exécution de petite taille
2-4 sur des environnements d’exécution de taille moyenne
6-8 sur des environnements d’exécution de grande taille
Après avoir modifié le nombre de tâches, observez le processeur pour vous assurer que l’augmentation du nombre de tâches améliore le débit.
Vérifier les journaux KCL¶
Le connecteur utilise la ` bibliothèque client Kinesis AWS (KCL) v3 <https://docs.aws.amazon.com/streams/latest/dev/kcl.html>`_ sous le capot. Les erreurs qui se produisent dans KCL ne sont pas toujours propagées à l’UI d’Openflow, donc vérifier les journaux KCL peut être nécessaire pour le dépannage.
Les journaux KCL sont stockés dans une table d’événements configurée. Vous pouvez les récupérer à l’aide de la requête suivante :
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
;
Remplacez <event_table> with a configured event table name and <runtime_name> avec un nom d’exécution.
Erreurs KCL courantes¶
Cette section décrit les erreurs courantes qui peuvent apparaître dans les journaux KCL et comment les résoudre.
Erreur : UnknownHostException¶
Message d’erreur
java.net.UnknownHostException: dynamodb.eu-west-1.amazonaws.com
Cause
Si l’environnement d’exécution utilise un déploiement Snowflake, la règle de réseau est probablement mal configurée.
Solution
Assurez-vous que les domaines AWS requis sont autorisés dans la liste d’autorisation de votre règle réseau. Pour la liste des domaines requis, voir Configuration de Openflow - Snowflake Deployment : Configurer les domaines autorisés pour les connecteurs Openflow.
Erreur : aucun fragment trouvé¶
Message d’erreur
java.lang.IllegalStateException: No shards found when attempting to
validate complete hash range.
Cause
Cette erreur peut se produire si le flux Kinesis n’existe pas ou si la région AWS est mal spécifiée.
Solution
Vérifiez les journaux KCL pour des messages tels que :
Got ResourceNotFoundException when fetching shard list for stream-name. Stream no longer exists.
Vérifiez que le nom du flux est correct et que le flux existe dans AWS.
Vérifiez que la région AWS est spécifiée correctement dans la configuration du connecteur.