Déployez 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éployez 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/ou de Scala etSQL. 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éussisseSQL, il doit y avoir au moins un paragraphe contenant le code source (Flink 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. Au lieu de cela, vous pouvez mettre à jour l'application déployée via le AWS Management Console AWS Command Line Interface ou AWS API pour modifier le parallélisme et/ou ParallelismPer KPU les paramètres 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, vous VPC devez disposer d'un accès Internet. Si vous VPC n'avez pas accès à Internet, consultezDéployez en tant qu'application à l'état durable 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/assignations shell utilisant des commandes IPython magiques telles que ! %timeit ou contenues %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 plus d'informations sur les classes de cas Scala, consultez CASECLASSESla documentation Scala.

SQLcritères

  • Les SELECT instructions simples ne sont pas autorisées, car il n'existe nulle part d'équivalent à la section de sortie d'un paragraphe où les données peuvent être fournies.

  • Dans un paragraphe donné, DDL les déclarations (USE,CREATE,ALTER,, DROPSET,RESET) doivent précéder les déclarations DML (INSERT). Cela est dû au fait que les DML instructions d'un paragraphe doivent être soumises ensemble dans le cadre d'une seule tâche Flink.

  • Il devrait y avoir au plus un paragraphe contenant DML des déclarations. 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 Translate, redact and analysis streaming data using SQL functions with Amazon Managed Service for Apache Flink, Amazon Translate et Amazon Comprehend.