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.
Amazon Managed Service 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 version du service. Cette page couvre les fonctionnalités introduites dans Flink 2.2, ainsi que les points importants à prendre en compte pour la mise à niveau depuis Flink 1.x.
Note
Flink 2.2 introduit des modifications majeures qui nécessitent une planification minutieuse. Consultez la liste complète des modifications et des dépréciations les plus importantes ci-dessous, ainsi que la liste Guide de compatibilité d'état pour les mises à niveau de Flink 2.2 préalable à 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. Passez en revue attentivement ces modifications ainsi 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 qui ne sont pas prises en charge par MSF ou par un système similaire.
env.getConfig().set()APIs Consultez Propriétés de configuration programmatique de Flink.Les clients peuvent toujours demander à modifier certaines configurations par le biais de 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 du connecteur KDS a été supprimée dans la version 6.0.0 AWS du connecteur Flink (seule la version du 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.downtimeRemplacez-le par 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.
Appels IMDS non authentifiants 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 de votre application.Les applications utilisant les fonctions du SDK AWS qui reposent sur des appels IMDS non authentifiants (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 par exemple des métadonnées IMDS ou d'autres informations en dehors des chemins autorisés, refactorisez votre code pour utiliser plutôt des variables d'environnement ou la configuration de l'application.
Système de fichiers racine en lecture seule
Pour améliorer la sécurité, toute dépendance en dehors de
/tmplaquelle se trouve le répertoire de travail Flink par défaut se traduira par :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 du système de fichiers par rapport aux bibliothèques, utilisez les remplacements 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 mise à jour d'Apache Flink 2.0 pour les notes
API Flink et suppression de langues
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 d'Apache Flink DataSet pour la conversion DataStream
Java 11 et Python 3.8 supprimés
Le support de Java 11 a été complètement supprimé ; Java 17 est le runtime par défaut et recommandé.
Le support de Python 3.8 a été supprimé ; Python 3.12 est désormais la version par défaut.
Classes de connecteurs héritées supprimées
L'ancienne version
SourceFunctionet lesSinkFunctioninterfaces ont été remplacées par les nouvelles versions unifiées Source (FLIP-27) et Sink (FLIP-143) APIs, 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 épuré.Pour Kinesis Data Streams,
KinesisStreamsSourceutilisezKinesisStreamsSinketflink-connector-aws-kinesis-streams:6.0.0-2.0depuis.
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 applications basées sur JVM.
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 wrappers et les conversions implicites spécifiques à Scala ne sont plus disponibles. Consultez la section Mise à niveau des applications et des versions de Flink
pour plus de détails sur la mise à jour de vos applications Scala.
Considérations relatives à la compatibilité des
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.
POJOs avec des collections (
HashMap,ArrayList,HashSet) peut avoir des problèmes de compatibilité entre les états.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 pour une évaluation détaillée afin de trier le niveau de risque de votre application.
Fonctionnalités d'Apache Flink 2.2 prises en charge
Support d'exécution et de langage
| Fonctionnalité | Description | Documentation |
|---|---|---|
| Exécution Java 17 | Java 17 est désormais l'environnement d'exécution par défaut et recommandé ; le support de Java 11 a été supprimé. | Compatibilité avec Java |
| Support de Python 3.12 | Python 3.12 est désormais pris en charge ; le support de Python 3.8 a été supprimé. | PyFlink Documentation |
Gestion de l'État et performance
| 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. | Type de sérialisation |
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 répétée de chaînes. | Types de données |
| Rejoignez Delta | Réduit les exigences d'état pour les jointures en streaming en ne conservant que la dernière version de chaque clé ; nécessite une infrastructure gérée par le client (par exemple, Apache Fluss). | Jointures |
| StreamingMultiJoinOperator | Exécute les jointures multidirectionnelles 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 clé et des temporisateurs. | Fonctions définies par l'utilisateur |
| Fonction ML_PREDICT | Appelez des modèles ML enregistrés sur streaming/batch des tables directement depuis SQL. Demande au client de regrouper une ModelProvider implémentation (par exemple,flink-model-openai). ModelProvider les bibliothèques ne sont pas fournies par le service géré pour Apache Flink. |
Prédiction ML |
| Modèle DDL | Définissez les modèles ML en tant qu'objets de catalogue de première classe à l'aide des instructions CREATE MODEL. | CRÉEZ des déclarations |
| Recherche vectorielle | L'API Flink SQL prend en charge la recherche dans les 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 |
|---|---|---|
| API source FLIP-27 | Nouvelle interface source unifiée qui remplace l'ancienne SourceFunction. | Sources |
| API d'évier FLIP-143 | Nouvelle interface de réception unifiée qui remplace l'ancienne SinkFunction. | Éviers |
| Python asynchrone DataStream | I/O Opérations non bloquantes dans DataStream l'API Python utilisant AsyncFunction. | E/S asynchrones |
Disponibilité du connecteur
Lors de la mise à niveau vers Flink 2.2, vous devez également mettre à jour les dépendances de votre connecteur vers des versions compatibles avec le runtime Flink 2.2. Les connecteurs Flink sont publiés indépendamment du moteur d'exécution 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 ou ultérieure de Flink | Remarques |
|---|---|---|---|
| Apache Kafka | flink-connector-kafka 3,4,0-1,20 | flink-connector-kafka 4,0,0-2,0 | Recommandé pour Flink 2.2 |
| Kinesis Data Streams (source) | flink-connector-kinesis 5,0,0-1,20 | flink-connector-aws-kinesis-streams 6.0.0-2.0 | Recommandé pour Flink 2.2 |
| Kinesis Data Streams (récepteur) | flink-connector-aws-kinesis-streams 5.1.0-1.20 | flink-connector-aws-kinesis-streams 6.0.0-2.0 | Recommandé pour Flink 2.2 |
| Amazon Data Firehose | flink-connector-aws-kinesis-tuyau à incendie 5.1.0-1.20 | flink-connector-aws-kinesis-firehose 6.0.0-2.0 | Compatible avec Flink 2.0 |
| Amazon DynamoDB | flink-connector-dynamodb 5,1,0 à 1,20 | flink-connector-dynamodb 6,0,0-2,0 | Compatible avec Flink 2.0 |
| Amazon SQS | flink-connector-sqs 5,1,0 à 1,20 | flink-connector-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 | flink-connector-jdbc 3,3,0-1,20 | Pas encore sorti pour 2.x | Aucune version compatible avec Flink 2.x n'est disponible |
| OpenSearch | flink-connector-opensearch 1,2,0-1,19 | Pas encore sorti pour 2.x | Aucune version compatible avec Flink 2.x n'est disponible |
| Elasticsearch | Connecteur Legacy uniquement | Pas encore sorti pour 2.x | Envisagez de migrer vers le connecteur OpenSearch |
| Amazon Managed Service for Prometheus | flink-connector-prometheus 1,0-1,20 | Pas encore sorti pour 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 2.x de Flink, 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é).
Lorsque vous mettez à jour des versions de connecteurs, faites attention aux changements de nom des artefacts : certains connecteurs ont été renommés entre les versions principales (par exemple, le connecteur Firehose est passé
flink-connector-aws-kinesis-firehosedeflink-connector-aws-firehoseà dans certaines versions intermédiaires).Consultez toujours la documentation du connecteur Amazon Managed Service for 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 expérimentales et non prises en charge
Les fonctionnalités suivantes ne sont pas prises en charge dans Amazon Managed Service pour Apache Flink 2.2 :
Tables matérialisées : instantanés de table interrogeables et maintenus en permanence.
Modifications de télémétrie personnalisées : rapports 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 pour Apache Flink.
Problèmes connus
Service géré Amazon pour Apache Flink Studio
Dans Amazon Managed Service pour Apache Flink, Flink 2.2 ne prend pas en charge les applications Studio. Pour plus d'informations, consultez la section 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 au sein de la communauté. Pour plus d'informations, consultez FLINK-37648. Les applications utilisant le chemin
KinesisStreamsSourcewith EFO (Enhanced Fan-Out/ SubscribeToShard) introduit dans les connecteurs v5.0.0 et v6.0.0KinesisStreamsSinkpeuvent être bloquées 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 plus d'informations, consultez FLINK-34071.
Améliorez votre expérience
Amazon Managed Service pour Apache Flink prend en charge les mises à niveau de version sur place qui préservent la configuration de votre application, les journaux, les métriques, les balises et, si l'état et les fichiers binaires sont compatibles, l'état de votre application. Pour step-by-step obtenir des instructions, voirMise à niveau vers Flink 2.2 : guide complet.
Pour obtenir des conseils sur l'évaluation des risques liés à la 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
Des problèmes de compatibilité avec l'État ? 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.