Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.
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.
Croissance illimitée de l'État
Si votre application ne supprime pas correctement les informations d’état obsolètes, elles s’accumuleront continuellement et entraîneront des problèmes de performance ou de stabilité de l’application. Cette section décrit les symptômes et les étapes de résolution de ce problème.
Symptômes
Ce problème peut présenter les symptômes suivants :
La métrique
lastCheckpointDuration
augmente progressivement ou connaît des pics.La métrique
lastCheckpointSize
augmente progressivement ou connaît des pics.
Causes et solutions
Les conditions suivantes peuvent amener votre application à accumuler des données d’état :
Votre application conserve les données d’état plus longtemps que nécessaire.
Votre application utilise des requêtes de fenêtre d’une durée trop longue.
Vous n’avez pas défini le TTL pour vos données d’état. Pour plus d'informations, consultez State Time-To-Live (TTL)
dans la documentation d'Apache Flink. Vous exécutez une application qui dépend de la version 2.25.0 ou ultérieure d’Apache Beam. Vous pouvez vous désinscrire de la nouvelle version de la transformation de lecture en BeamApplicationProperties ajoutant les expériences et les valeurs clés
use_deprecated_read
. Pour plus d’informations, consultez la documentation Apache Beam.
Parfois, les applications sont confrontées à une augmentation constante de la taille de l’état, qu’elles ne peuvent supporter à long terme (une application Flink fonctionne indéfiniment, après tout). Parfois, cela peut venir du fait que les applications stockent les données dans leur état, sans permettre le vieillissement correct des anciennes informations. Mais parfois, les attentes quant à ce que Flink peut offrir sont tout simplement déraisonnables. Les applications peuvent utiliser des agrégations sur de longues périodes s’étendant sur des jours, voire des semaines. À moins qu'il AggregateFunctions
En outre, lors de l’utilisation de fonctions de processus pour implémenter des opérateurs personnalisés, l’application doit supprimer les données d’état qui ne sont plus nécessaires à la logique métier. Dans ce cas, l'état time-to-live
À des fins de débogage, il peut être judicieux de désactiver les points de contrôle incrémentiels pour vérifier plus rapidement que la taille du point de contrôle diminue ou se stabilise réellement (et éviter l’effet de compactage dans RocksBS). Pour cela, il faut cependant envoyer un ticket à l’équipe du service.