Déploiement en tant qu’application à état durable - Service géré pour Apache Flink

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 Zeppelin n’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 et filter. Pour obtenir des informations sur les classes de cas Scala, consultez CASE CLASSES dans 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.