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.
Déploiement en tant qu’application à état durable
Vous pouvez créer votre code et l’exporter vers Amazon S3. Vous pouvez promouvoir le code que vous avez écrit dans votre note vers une application de traitement des flux en cours d’exécution continue. Il existe deux modes d’exécution d’une application Apache Flink sur service géré pour Apache Flink : avec un bloc-notes Studio, vous pouvez développer votre code de manière interactive, consultez les résultats de votre code en temps réel et le visualiser dans votre note. Après avoir déployé une note pour qu’elle s’exécute en mode streaming, le service géré pour Apache Flink crée pour vous une application qui s’exécute en continu, lit les données de vos sources, écrit sur vos destinations, maintient l’état de l’application à long terme et s’adapte automatiquement en fonction du débit de vos flux sources.
Note
Le compartiment S3 vers lequel vous exportez le code de votre application doit se trouver dans la même région que votre bloc-notes Studio.
Vous ne pouvez déployer une note depuis votre bloc-notes Studio que si elle répond aux critères suivants :
Les paragraphes doivent être classés dans l’ordre séquentiel. Lorsque vous déployez votre application, tous les paragraphes d'une note sont exécutés séquentiellement (left-to-right, top-to-bottom) tels qu'ils apparaissent dans votre note. Vous pouvez vérifier cet ordre en choisissant Exécuter tous les paragraphes dans votre note.
Votre code est une combinaison de Python et de SQL ou de Scala et de SQL. Nous ne prenons pas en charge Python et Scala ensemble pour le moment pour deploy-as-application.
Votre note ne doit avoir que les interprètes suivants :
%flink
,%flink.ssql
,%flink.pyflink
,%flink.ipyflink
,%md
.L’utilisation de l’objet
z
du Contexte Zeppelinn’est pas prise en charge. Les méthodes qui ne renvoient rien ne feront rien d’autre que de consigner un avertissement. D’autres méthodes déclencheront des exceptions Python ou échoueront à compiler dans Scala. Une note doit aboutir à une seule tâche Apache Flink.
Les notes contenant des formulaires dynamiques
ne sont pas prises en charge pour le déploiement en tant qu’application. Les paragraphes %md (Markdown
) seront ignorés lors du déploiement en tant qu’application, car ils sont censés contenir une documentation lisible par l’homme qui ne convient pas à l’exécution dans le cadre de l’application résultante. Les paragraphes désactivés pour être exécutés dans Zeppelin seront ignorés lors du déploiement en tant qu’application. Même si un paragraphe désactivé utilise un interprète incompatible, par exemple
%flink.ipyflink
dans une note comportant les interprètes%flink
and %flink.ssql
, il sera ignoré lors du déploiement de la note en tant qu’application et n’entraînera aucune erreur.Pour que le déploiement de l'application réussisse, il doit y avoir au moins un paragraphe contenant le code source (Flink SQL PyFlink ou Flink Scala) activé pour fonctionner.
La définition du parallélisme dans la directive de l’interprète au sein d’un paragraphe (par exemple
%flink.ssql(parallelism=32)
) sera ignorée dans les applications déployées à partir d’une note. Vous pouvez plutôt mettre à jour l'application déployée via l' AWS Management Console AWS API AWS Command Line Interface ou pour modifier les paramètres de parallélisme et/ou de ParallelismPer KPU en fonction du niveau de parallélisme requis par votre application, ou vous pouvez activer le dimensionnement automatique pour votre application déployée.Si vous effectuez un déploiement en tant qu’application à état durable, votre VPC doit disposer d’un accès à Internet. Si votre VPC n’a pas accès à Internet, consultez Déploiement en tant qu’application à état durable dans un VPC sans accès à Internet.
Critères Scala/Python
Dans votre code Scala ou Python, utilisez le planificateur Blink
( senv
,stenv
pour Scala ;s_env
,st_env
pour Python) et non l’ancien planificateur « Flink » (stenv_2
pour Scala,st_env_2
pour Python). Le projet Apache Flink recommande l’utilisation du planificateur Blink pour les cas d’utilisation en production. Il s’agit du planificateur par défaut dans Zeppelin et dans Flink.Vos paragraphes Python ne doivent pas utiliser d’invocations/affectations shell
utilisant !
ou des commandes magiques IPython, comme %timeit
ou%conda
dans des notes destinées à être déployées en tant qu’applications.Vous ne pouvez pas utiliser les classes de cas Scala comme paramètres de fonctions transmises à des opérateurs de flux de données d’ordre supérieur tels que
map
etfilter
. Pour obtenir des informations sur les classes de cas Scala, consultez CASE CLASSESdans la documentation Scala.
Critères SQL
Les instructions SELECT simples ne sont pas autorisées, car il n’existe nulle part d’équivalent à la section de sortie d’un paragraphe dans laquelle les données peuvent être fournies.
Dans un paragraphe donné, les instructions DDL (
USE
,CREATE
,ALTER
,DROP
,SET
,RESET
) doivent précéder les instructions DML (INSERT
). Cela est dû au fait que les instructions DML d’un paragraphe doivent être soumises ensemble sous la forme d’une seule tâche Flink.Il doit y avoir au maximum un paragraphe contenant des instructions DML. En effet, pour cette deploy-as-application fonctionnalité, nous ne prenons en charge que la soumission d'une seule tâche à Flink.
Pour plus d’informations et un exemple, consultez Traduire, rédiger et analyser des données de streaming en utilisant les fonctions SQL avec le service géré Amazon pour Apache Flink, Amazon Translate et Amazon Comprehend