View a markdown version of this page

Service géré Amazon pour Apache Flink 2.2 - Service géré 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.

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.

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 fullRestarts métrique a été supprimée dans Flink 2.2. Utilisez plutôt la numRestarts métrique.

  • La bytesRequestedPerFetch mé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 downtime métriques uptime et sont toutes deux marquées comme obsolètes dans Flink 2.2 et seront bientôt supprimées. Remplacez uptime par la nouvelle métriquerunningTime. Remplacez downtime par un ou plusieurs des éléments restartingTime suivants :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 queEC2MetadataUtils.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 /tmp laquelle 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/

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 pour les notes de version complètes d'Apache Flink 2.0 qui introduisent ces modifications majeures.

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 SourceFunction et les SinkFunction interfaces 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 KinesisStreamsSource et KinesisStreamsSink depuisflink-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.

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

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 :

Disponibilité des connecteurs pour Flink 2.2
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-firehose dans 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.

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.

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 KinesisStreamsSource with 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 KinesisStreamsSource avec EFO (Enhanced Fan-Out / SubscribeToShard) introduit dans les connecteurs v5.0.0 et v6.0.0 KinesisStreamsSink peuvent 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.

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.

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.