Résolution des problèmes liés aux applications Amazon Kinesis Data Analytics pour SQL - Guide du développeur d'Amazon Kinesis Data Analytics SQL pour applications

Après mûre réflexion, nous avons décidé de mettre fin à Amazon Kinesis Data Analytics SQL pour les applications en deux étapes :

1. À compter du 15 octobre 2025, vous ne pourrez plus créer de nouveaux Kinesis Data Analytics SQL pour les applications.

2. Nous supprimerons vos candidatures à compter du 27 janvier 2026. Vous ne serez pas en mesure de démarrer ou d'utiliser votre Amazon Kinesis Data Analytics SQL pour les applications. Support ne sera plus disponible pour Amazon Kinesis Data Analytics à partir SQL de cette date. Pour de plus amples informations, veuillez consulter Arrêt d'Amazon Kinesis Data Analytics SQL pour applications.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes liés aux applications Amazon Kinesis Data Analytics pour SQL

La documentation suivante peut vous aider à résoudre les problèmes que vous pouvez rencontrer avec les applications Amazon Kinesis Data Analytics pour SQL.

Applications à l’arrêt

  • Qu’est-ce qu’une application Kinesis Data Analytics pour SQL à l’arrêt ?

    Une application à l’arrêt est une application dont nous avons constaté qu’elle ne traitait aucun enregistrement sur un période minimum de trois mois. Cela signifie que les clients payent pour des ressources Kinesis Data Analytics pour SQL qu’ils n’utilisent pas.

  • Quand AWS commencera-t-il à arrêter les applications inactives ?

    AWS commencera à arrêter les applications inactives le 14  2023 et ce jusqu’au 21 novembre 2023. Nous arrêterons les applications inactives dans le fuseau horaire des heures de bureau de la région concernée.

  • Les applications Kinesis Data Analytics pour SQL à l’arrêt peuvent-elles être redémarrées ?

    Oui. Si vous avez besoin de redémarrer votre application, vous pouvez le faire normalement. Il n’est pas nécessaire de soumettre un ticket de support.

  • Si AWS arrête une application inactive, certains des résultats de ma requête seront-ils également supprimés ?

    Non. Premièrement, votre application étant inactive, elle ne traite pas les requêtes. Deuxièmement, les résultats de vos requêtes ne sont pas stockés dans Kinesis Data Analytics pour SQL. Vous configurez votre application Kinesis Data Analytics pour SQL avec une destination réceptrice vers laquelle les résultats de ses calculs sont envoyés (par exemple, dans Amazon S3 ou un autre flux de données). Ainsi, vous conservez l’entière propriété de vos données et celles-ci resteront récupérables selon les conditions de ce service de stockage.

  • Que dois-je faire si je ne souhaite pas que mon application soit arrêtée ?

    Vous pouvez envoyer un e-mail à l’équipe de service (kda-sql-questions@amazon.com) pour demander que les applications ne soient pas arrêtées, avant le 10 novembre 2023. L’e-mail doit inclure votre ID de compte et l’ARN de votre application.

Impossible d'exécuter le code SQL

Si vous avez besoin de savoir comment obtenir une instruction SQL particulière qui fonctionne correctement, vous disposez de plusieurs ressources lorsque vous utilisez Kinesis Data Analytics :

Impossible de détecter ou de découvrir mon schéma

Dans certains cas, Kinesis Data Analytics ne peut pas détecter ou découvrir un schéma. Dans nombre de ces cas, vous pouvez tout de même utiliser Kinesis Data Analytics.

Supposons que vous disposez de données codées en UTF-8 qui n'utilisent pas de séparateur ou de données qui utilisent un format autre que le format CSV (valeurs séparées par des virgules), ou que l'API de découverte ne découvre pas votre schéma. Vous pouvez alors définir un schéma manuellement ou utiliser des fonctions de manipulation des chaînes pour structurer vos données.

Pour découvrir le schéma de votre flux, Kinesis Data Analytics échantillonne de façon aléatoire les données les plus récentes de votre flux. Si vous n’envoyez pas constamment des données à votre flux, il est possible que Kinesis Data Analytics ne puisse pas extraire d’échantillon et détecter de schéma. Pour de plus amples informations, veuillez consulter Utilisation de la fonction de découverte de schéma sur des données de diffusion.

Les données de référence sont obsolètes

Les données de référence sont chargées à partir de l’objet Amazon Simple Storage Service (Amazon S3) dans l’application lorsque celle-ci est lancée ou mise à jour, ou lors d’interruptions de l’application qui sont provoquées par des problèmes de service.

Les données de référence ne sont pas chargées dans l’application lorsque des mises à jour sont apportées à l’objet Amazon S3 sous-jacent.

Si les données de référence de l'application ne sont pas à jour, vous pouvez les recharger en suivant les étapes ci-dessous :

  1. Dans la console Kinesis Data Analytics, choisissez le nom de l’application dans la liste, puis sélectionnez Détails de l’application.

  2. Choisissez Go to SQL editor (Accéder à l'éditeur SQL) pour ouvrir la page Real-time analytics (Analyse en temps réel) pour l'application.

  3. Dans la vue Source Data (Source de données), choisissez le nom de la table de données de référence.

  4. Choisissez Actions, Synchronize reference data table (Synchroniser la table de données de référence).

L'application n'écrit pas vers la destination

Si les données ne sont pas écrites vers la destination, vérifiez les points suivants :

Si le rôle et la configuration de la destination semblent corrects, essayez de redémarrer l'application en spécifiant LAST_STOPPED_POINT pour InputStartingPositionConfiguration.

Importants paramètres de l'état des applications à surveiller

Pour vous assurer que votre application s'exécute correctement, nous vous recommandons de surveiller certains paramètres importants.

Le paramètre le plus important à surveiller est la métrique Amazon CloudWatch MillisBehindLatest. Cette métrique représente votre retard dans la lecture du flux par rapport à l'heure actuelle. Elle vous aide à déterminer si vous traitez les enregistrements du flux source suffisamment vite.

En règle générale, vous devez configurer une alarme CloudWatch qui se déclenche si votre retard dépasse une heure. Toutefois, la durée dépend de votre cas d'utilisation. Vous pouvez l'ajuster selon vos besoins.

Pour de plus amples informations, veuillez consulter Bonnes pratiques.

Erreur de code non valide lors de l'exécution d'une application

Lorsque vous ne pouvez pas enregistrer et exécuter le code SQL de votre application Amazon Kinesis Data Analytics, les causes les plus courantes sont les suivantes :

  • Le flux a été redéfini dans votre code SQL : Après avoir créé un flux et la pompe associée au flux, vous ne pouvez pas redéfinir le même flux dans votre code. Pour plus d’informations sur la création d’un flux, consultez CRÉER UN FLUX dans le manuel Référence SQL Amazon Kinesis Data Analytics. Pour plus d'informations sur la création d'une pompe, consultez CREATE PUMP.

  • Une clause GROUP BY utilise plusieurs colonnes ROWTIME : Vous pouvez spécifier une seule colonne ROWTIME dans la clause GROUP BY. Pour plus d’informations, consultez GROUP BY et ROWTIME dans le manuel Référence SQL Amazon Kinesis Data Analytics.

  • Un ou plusieurs types de données ont une conversion non valide : Dans ce cas, votre code a une conversion implicite non valide. Par exemple, vous pouvez convertir un type timestamp en type bigint dans votre code.

  • Un flux a le même nom que le flux réservé d'un service  : Un flux ne peut pas avoir le même nom que le flux réservé d'un service error_stream.

L'application écrit des erreurs dans le flux d'erreurs

Si votre application écrit des erreurs dans le flux d'erreurs intégré à l'application, vous pouvez décoder la valeur dans le champ DATA_ROW à l'aide de bibliothèques standard. Pour plus d'informations sur le flux d'erreur, consultez Gestion des erreurs.

Débit insuffisant ou valeur de MillisBehindLatest élevée

Si la métrique MillisBehindLatest de votre application augmente sans cesse ou est constamment supérieure à 1000 (une seconde), cela peut être due aux raisons suivantes :

  • Vérifiez la métrique CloudWatch InputBytes de votre application. Si vous ingérez plus de 4 Mo/s, cela peut entraîner une augmentation de MillisBehindLatest. Pour améliorer le débit de votre application, augmentez la valeur du paramètre InputParallelism. Pour de plus amples informations, veuillez consulter Mise en parallèle des flux d'entrée pour un débit accru.

  • Vérifiez la métrique de réussite de diffusion de sortie de votre application pour détecter les échecs de diffusion vers votre destination. Vérifiez que vous avez correctement configuré la sortie et que votre flux de sortie a une capacité suffisante.

  • Si votre application utilise une fonction AWS Lambda pour le prétraitement ou en tant que sortie, vérifiez la métrique CloudWatch InputProcessing.Duration ou LambdaDelivery.Duration de l’application. Si la durée d’invocation de la fonction Lambda est supérieure à 5 secondes, vous pouvez envisager les opérations suivantes :

    • Augmentez l’allocation de Mémoire de la fonction Lambda. Vous pouvez effectuer cette opération dans la console AWS Lambda, sur la page Configuration, sous Basic settings (Paramètres de base). Pour plus d'informations, consultez Configuration des fonctions Lambda dans le Manuel du développeur AWS Lambda.

    • Augmentez le nombre de partitions dans votre flux d'entrée de l'application. Cela augmente le nombre de fonctions parallèles appelées par l'application, ce qui peut augmenter le débit.

    • Vérifiez que la fonction n'effectue pas des appels bloquants qui ont un impact sur les performances, comme des demandes synchrones de ressources externes.

    • Examinez votre fonction AWS Lambda à la recherche d'autres domaines dans lesquels vous pouvez améliorer les performances. Vérifiez les journaux CloudWatch de la fonction Lambda de l’application. Pour plus d’informations, consultez Accès aux métriques Amazon CloudWatch pour dans le Manuel du développeur AWS Lambda.

  • Vérifiez que votre application n’atteint pas la limite par défaut d’unités de traitement Kinesis (KPU). Si votre application atteint cette limite, vous pouvez demander une augmentation de limite. Pour de plus amples informations, veuillez consulter Dimensionnement automatique des applications pour augmenter le débit.

  • Si votre application rencontre toujours des problèmes après l’augmentation de votre limite de KPU, vérifiez que le débit d’entrée de votre application ne dépasse pas 100 Mo/sec. S’il dépasse 100 Mo/sec, nous recommandons de mettre en œuvre des modifications visant à réduire le débit global afin de stabiliser l’application, par exemple en réduisant la quantité de données envoyées à la source de données depuis laquelle l’application Kinesis Data Analytics Sql lit. Nous recommandons également d’autres approches, notamment l’augmentation du parallélisme de l’application, la réduction de la durée des calculs, le remplacement des types de données en colonnes de VARCHAR par des types de données de plus petite taille (par exemple, INTEGER, LONG, etc.) et la réduction des données traitées par échantillonnage ou filtrage.

    Note

    Nous vous conseillons de revoir régulièrement la métrique InputProcessing.OkBytes de votre application afin de pouvoir planifier à l’avance l’utilisation de plusieurs applications SQL ou de migrer vers managed-flink/latest/java/ si le débit d’entrée prévu de votre application dépasse 100 Mo/sec.