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.
Service géré Amazon pour Apache Flink 2.2
Amazon Managed Service pour Apache Flink prend désormais en charge la version 2.2 d'Apache Flink. Il s'agit de la première mise à niveau majeure de la version du service. Cette page couvre les fonctionnalités introduites dans Flink 2.2, ainsi que les considérations importantes relatives à la mise à niveau depuis Flink 1.x.
Note
Flink 2.2 introduit des changements majeurs qui nécessitent une planification minutieuse. Consultez la liste complète des modifications et des dépréciations majeures ci-dessous et Guide de compatibilité d'état pour les mises à niveau de Flink 2.2 avant la mise à niveau depuis la version 1.x.
Nouveautés d'Amazon Managed Service pour Apache Flink 2.2
Amazon Managed Service pour Apache Flink 2.2 introduit des changements de comportement susceptibles de perturber les applications existantes lors de la mise à niveau. Reportez-les attentivement en même temps que les modifications apportées à l'API Flink dans la section suivante.
Gestion de la configuration programmatique
MSF Flink 2.2 signale désormais une exception lorsque les clients tentent de modifier des configurations non prises en charge par MSF via des API
env.getConfig().set()ou des API similaires. Consultez Propriétés de configuration programmatique de Flink.Les clients peuvent toujours demander à modifier certaines configurations via des tickets d'assistance (voir Paramètres modifiables)
Suppression des métriques
La
fullRestartsmétrique a été supprimée dans Flink 2.2. Utilisez plutôt lanumRestartsmétrique.La
bytesRequestedPerFetchmétrique pour le connecteur KDS a été supprimée dans la version 6.0.0 AWS du connecteur Flink (seule la version de connecteur est compatible avec Flink 2.2).Les
downtimemétriquesuptimeet sont toutes deux marquées comme obsolètes dans Flink 2.2 et seront bientôt supprimées. Remplacezuptimepar la nouvelle métriquerunningTime. Remplacezdowntimepar un ou plusieurs des élémentsrestartingTimesuivants :cancellingTime, etfailingTime.Consultez la page Mesures et dimensions pour obtenir la liste complète des mesures prises en charge.
Non-Credential Appels IMDS bloqués
Ces points de terminaison autorisés sont utilisés par les AWS SDK DefaultCredentialsProvider (
/latest/meta-data/iam/security-credentials/) et DefaultAwsRegionProviderChain (/latest/dynamic/instance-identity/document) pour configurer automatiquement les informations d'identification et la région pour votre application.Les applications utilisant les fonctions du SDK AWS qui s'appuient sur des appels IMDS non liés à des informations d'identification (tels que
EC2MetadataUtils.getInstanceId(),EC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), ouEC2MetadataUtils.getAvailabilityZone()) recevront des erreurs HTTP 4xx lors de la tentative de ces appels.Si votre application utilise l'IMDS pour les métadonnées d'exemple ou d'autres informations en dehors des chemins autorisés, refactorisez votre code pour utiliser des variables d'environnement ou la configuration de l'application à la place.
Read-Only Système de fichiers racine
Pour améliorer la sécurité, toute dépendance en dehors de
/tmplaquelle se trouve le répertoire de travail flink par défaut entraînera :java.io.FileNotFoundException: /{path}/{filename} (Read-only file system).Les dépendances du système de fichiers peuvent provenir directement de votre code ou indirectement des bibliothèques incluses dans vos dépendances. Remplacez les dépendances directes du système de fichiers
/tmp/dans votre code. Pour les dépendances indirectes entre les bibliothèques et les systèmes de fichiers, utilisez les modifications de configuration des bibliothèques pour rediriger les opérations du système de fichiers vers./tmp/
Changements majeurs et dépréciations
Vous trouverez ci-dessous un résumé des modifications majeures et des dépréciations introduites dans Managed Service for Apache Flink 2.2. Consultez les notes de version d'Apache Flink 2.0
Suppressions de l'API Flink et de la langue
DataSet API supprimée
L'ancienne DataSet API pour le traitement par lots a été complètement supprimée dans Flink 2.0+. Tous les traitements par lots doivent désormais utiliser l' DataStream API unifiée.
Les applications utilisant l' DataSet API doivent être migrées vers l' DataStream API avant la mise à niveau. Consultez le guide de migration vers Apache Flink DataSet pour la conversion DataStream
Java 11 et Python 3.8 supprimés
La prise en charge de Java 11 a été complètement supprimée ; Java 17 est l'environnement d'exécution par défaut et recommandé.
La prise en charge de Python 3.8 a été supprimée ; Python 3.12 est désormais la version par défaut.
Classes de connecteurs héritées supprimées
L'héritage
SourceFunctionet lesSinkFunctioninterfaces ont été remplacés par les nouvelles API unifiées Source (FLIP-27) et Sink (FLIP-143), qui offrent une meilleure prise en charge de la bounded/unbounded dualité, une meilleure coordination des points de contrôle et un modèle de programmation plus propre.Pour Kinesis Data Streams, utilisez
KinesisStreamsSourceetKinesisStreamsSinkdepuisflink-connector-aws-kinesis-streams:6.0.0-2.0.
API Scala supprimée
L'API Flink Scala a été supprimée. L'API Java de Flink est désormais la seule API prise en charge pour les JVM-based applications.
Si votre application est écrite en Scala, vous pouvez toujours utiliser l'API Java de Flink à partir du code Scala. Le principal changement est que les Scala-specific wrappers et les conversions implicites ne sont plus disponibles. Consultez les sections Mise à niveau des applications et des versions de Flink
pour plus de détails sur la mise à jour de vos applications Scala.
Considérations concernant la compatibilité des États
La mise à niveau du sérialiseur Kryo de la version 2.24 à la version 5.6 peut entraîner des problèmes de compatibilité d'état.
Les POJO dotés de collections (
HashMap,ArrayList,HashSet) peuvent présenter des problèmes de compatibilité d'état.La sérialisation d'Avro et Protobuf n'est pas affectée.
Consultez Guide de compatibilité d'état pour les mises à niveau de Flink 2.2 l'évaluation détaillée permettant de trier le niveau de risque de votre demande.
Fonctionnalités d'Apache Flink 2.2 prises en charge
Prise en charge de l'exécution et des langues
| Fonctionnalité | Description | Documentation |
|---|---|---|
| Exécution Java 17 | Java 17 est désormais l'environnement d'exécution par défaut et recommandé ; la prise en charge de Java 11 a été supprimée. | Compatibilité avec Java |
| Prise en charge de Python 3.12 | Python 3.12 est désormais pris en charge ; la prise en charge de Python 3.8 a été supprimée. | PyFlink Documentation |
Gestion et performance de l'État
| Fonctionnalité | Description | Documentation |
|---|---|---|
| RocksDB 8.10.0 | I/O Performances améliorées grâce à la mise à niveau de RocksDB. | Backends d'État |
| Améliorations de la sérialisation | Sérialiseurs dédiés pour Map, List, Set ; Kryo est passé de la version 2.24 à la version 5.6. | Sérialisation des types |
Fonctionnalités de l'API SQL et de l'API Table
| Fonctionnalité | Description | Documentation |
|---|---|---|
| Type de données VARIANT | Support natif pour les données semi-structurées (JSON) sans analyse de chaîne répétée. | Types de données |
| Adhérez à Delta | Réduit les exigences d'état pour les jointures en streaming en conservant uniquement la dernière version de chaque clé ; nécessite une infrastructure gérée par le client (par exemple, Apache Fluss). | Rejoint |
| StreamingMultiJoinOperator | Exécute des jointures multivoies en tant qu'opérateur unique, éliminant ainsi la matérialisation intermédiaire. | FLIP-516 |
| ProcessTableFunction (PTF) | Active une logique dynamique pilotée par les événements directement dans SQL avec un état par touche et des temporisateurs. | User-Defined Fonctions |
| Fonction ML_PREDICT | Appelez des modèles ML enregistrés sur streaming/batch des tables directement depuis SQL. Exige du client qu'il regroupe une ModelProvider implémentation (par exemple,flink-model-openai). ModelProvider les bibliothèques ne sont pas fournies par Managed Service for Apache Flink. |
ML Predict |
| Modèle DDL | Définissez les modèles ML comme des objets de catalogue de première classe à l'aide des instructions CREATE MODEL. | CRÉEZ DES RELEVÉS |
| Recherche vectorielle | L'API Flink SQL prend en charge la recherche dans des bases de données vectorielles. Aucune VectorSearchTableSource implémentation open source n'est actuellement disponible ; les clients doivent fournir leur propre implémentation. |
Flink SQL |
DataStream Fonctionnalités de l'API
| Fonctionnalité | Description | Documentation |
|---|---|---|
| FLIP-27 API source | Nouvelle interface source unifiée remplaçant l'ancienne SourceFunction. | Sources |
| FLIP-143 API Sink | Nouvelle interface de récepteur unifiée remplaçant l'ancienne SinkFunction. | éviers |
| Python asynchrone DataStream | Non-blocking I/O opérations dans l' DataStream API Python à l'aide de AsyncFunction. | Asynchrone I/O |
Disponibilité des connecteurs
Lors de la mise à niveau vers Flink 2.2, vous devez également mettre à jour les dépendances de vos connecteurs vers des versions compatibles avec le moteur d'exécution de Flink 2.2. Les connecteurs Flink sont publiés indépendamment du runtime Flink, et tous les connecteurs ne disposent pas encore d'une version compatible avec Flink 2.2. Le tableau suivant récapitule la disponibilité des connecteurs couramment utilisés dans Amazon Managed Service pour Apache Flink :
| Connecteur | Version 1.20 de Flink | Version 2.0 et ultérieure de Flink | Remarques |
|---|---|---|---|
| Apache Kafka | connecteur flink-kafka 3.4.0-1.20 | connecteur flink-kafka 4.0.0-2.0 | Recommandé pour Flink 2.2 |
| Flux de données Kinesis (source) | connecteur flink-kinesis 5.0.0-1.20 | connecteur flink-aws-kinesis-streams 6.0.0-2.0 | Recommandé pour Flink 2.2 |
| Flux de données Kinesis (récepteur) | connecteur flink-aws-kinesis-streams 5.1.0-1.20 | connecteur flink-aws-kinesis-streams 6.0.0-2.0 | Recommandé pour Flink 2.2 |
| Amazon Data Firehose | connecteur flink-aws-kinesis-firehose 5.1.0-1.20 | connecteur flink-aws-kinesis-firehose 6.0.0-2.0 | Compatible avec Flink 2.0 |
| Amazon DynamoDB | connecteur-flink-dynamodb 5.1.0-1.20 | connecteur-flink-dynamodb 6.0.0-2.0 | Compatible avec Flink 2.0 |
| Amazon SQS | Connecteur-Flink SQS 5.1.0-1.20 | connecteur flink-sqs 6.0.0-2.0 | Compatible avec Flink 2.0 |
| FileSystem (S3, HDFS) | Fourni avec Flink | Fourni avec Flink | Intégré à la distribution Flink — toujours disponible |
| JDBC | connecteur flink-jdbc 3.3.0-1.20 | Pas encore publié pour la version 2.x | Aucune version compatible avec Flink 2.x n'est disponible |
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | Pas encore publié pour la version 2.x | Aucune version compatible avec Flink 2.x n'est disponible |
| Elasticsearch | Connecteur Legacy uniquement | Pas encore publié pour la version 2.x | Envisagez de migrer vers le connecteur OpenSearch |
| Amazon Managed Service for Prometheus | connecteur flink-Prometheus 1.0.0-1.20 | Pas encore publié pour la version 2.x | Aucune version compatible avec Flink 2.x n'est disponible |
Si votre application dépend d'un connecteur qui ne possède pas encore de version Flink 2.x, deux options s'offrent à vous : attendre que le connecteur publie une version compatible ou évaluer si vous pouvez le remplacer par une autre version (par exemple, en utilisant le catalogue JDBC ou un récepteur personnalisé).
Lors de la mise à jour des versions de connecteurs, faites attention aux changements de nom des artefacts : certains connecteurs ont été renommés entre les versions majeures (par exemple, le connecteur Firehose est passé de
flink-connector-aws-kinesis-firehoseàflink-connector-aws-firehosedans certaines versions intermédiaires).Consultez toujours la documentation du connecteur Amazon Managed Service pour Apache Flink pour connaître les noms exacts des artefacts et les versions prises en charge dans votre environnement d'exécution cible.
Fonctionnalités non prises en charge et expérimentales
Les fonctionnalités suivantes ne sont pas prises en charge dans Amazon Managed Service pour Apache Flink 2.2 :
Tableaux matérialisés : instantanés de tables interrogeables et mis à jour en permanence.
Modifications de télémétrie personnalisées : Reporters de métriques personnalisés et configurations de télémétrie.
ForSt State Backend : stockage d'état désagrégé (expérimental en open source).
Java 21 : support expérimental en open source, non pris en charge dans Managed Service for Apache Flink.
Problèmes connus
Service géré Amazon pour Apache Flink Studio
Flink 2.2 dans Amazon Managed Service pour Apache Flink ne prend pas en charge les applications Studio. Pour plus d'informations, voir Création d'un bloc-notes Studio.
Connecteur Kinesis EFO
Les applications utilisant le chemin
KinesisStreamsSourcewith EFO (Enhanced Fan-Out / SubscribeToShard) introduit dans les connecteurs v5.0.0 et v6.0.0 peuvent échouer lorsque les flux Kinesis sont repartagés. Il s'agit d'un problème connu dans la communauté. Pour de plus amples informations, veuillez consulter FLINK-37648. Les applications utilisant le chemin
KinesisStreamsSourceavec EFO (Enhanced Fan-Out / SubscribeToShard) introduit dans les connecteurs v5.0.0 et v6.0.0KinesisStreamsSinkpeuvent rencontrer des blocages si l'application Flink est soumise à une contre-pression, ce qui entraîne l'arrêt complet du traitement des données dans une ou plusieurs applications. TaskManagers Une opération d'arrêt forcé et une opération de démarrage de l'application sont nécessaires pour récupérer l'application. Il s'agit d'un sous-cas du problème connu dans la communauté. Pour de plus amples informations, veuillez consulter FLINK-34071.
Expérience de mise à niveau
Amazon Managed Service pour Apache Flink prend en charge les mises à niveau de version sur place qui préservent la configuration de votre application, ses journaux, ses métriques, ses balises et, si l'état et les fichiers binaires sont compatibles, l'état de votre application. Pour obtenir des instructions détaillées, consultez Mise à niveau vers Flink 2.2 : guide complet.
Pour obtenir des conseils sur l'évaluation du risque de compatibilité des états et la gestion des états incompatibles lors des mises à niveau, consultezGuide de compatibilité d'état pour les mises à niveau de Flink 2.2.
Étapes suivantes
Vous êtes nouveau sur Flink 2.2 ? Pour une documentation détaillée d'Apache Flink 2.2, consultez la documentation d'Apache Flink 2.2.
Vous planifiez une mise à niveau ? Consultez Mise à niveau vers Flink 2.2 : guide complet
Problèmes de compatibilité des États ? Consultez Guide de compatibilité d'état pour les mises à niveau de Flink 2.2
Pour toute question ou problème, consultez le support Résoudre les problèmes liés au service géré pour Apache Flink ou contactez le AWS support.