Bereitstellen als Anwendung mit dauerhaftem Zustand - Managed Service für Apache Flink

Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bereitstellen als Anwendung mit dauerhaftem Zustand

Sie können Ihren Code erstellen und zu Amazon S3 exportieren. Sie können den Code, den Sie in Ihrer Notiz geschrieben haben, in eine kontinuierlich laufende Stream-Verarbeitungsanwendung umwandeln. Es gibt zwei Arten, eine Apache-Flink-Anwendung auf Managed Service für Apache Flink auszuführen: Mit einem Studio-Notebook haben Sie die Möglichkeit, Ihren Code interaktiv zu entwickeln, die Ergebnisse Ihres Codes in Echtzeit anzuzeigen und ihn in Ihrer Notiz zu visualisieren. Nachdem Sie eine Notiz für die Ausführung im Streaming-Modus bereitgestellt haben, erstellt Managed Service für Apache Flink eine Anwendung für Sie, die kontinuierlich ausgeführt wird, Daten aus Ihren Quellen liest, in Ihre Ziele schreibt, den Status lang laufender Anwendungen beibehält und automatisch auf der Grundlage des Durchsatzes Ihrer Quellströme skaliert.

Anmerkung

Der S3-Bucket, in den Sie den Anwendungscode exportieren, muss sich in derselben Region wie Ihr Studio-Notebook befinden.

Sie können eine Notiz aus Ihrem Studio-Notebook nur bereitstellen, wenn sie die folgenden Kriterien erfüllt:

  • Die Absätze müssen der Reihe nach angeordnet werden. Wenn Sie Ihre Anwendung bereitstellen, werden alle Absätze innerhalb einer Notiz nacheinander ausgeführt (left-to-right, top-to-bottom), so wie sie in Ihrer Notiz erscheinen. Sie können diese Reihenfolge überprüfen, indem Sie in Ihrer Notiz Alle Absätze ausführen wählen.

  • Ihr Code ist eine Kombination aus Python und SQL oder Scala und SQL. Wir unterstützen Python und Scala derzeit nicht zusammen für deploy-as-application.

  • Ihre Notiz darf nur die folgenden Interpreter enthalten: %flink, %flink.ssql, %flink.pyflink, %flink.ipyflink, %md.

  • Die Verwendung des Zeppelin-Kontext-Objekts z wird nicht unterstützt. Methoden, die nichts zurückgeben, tun nichts, außer eine Warnung zu protokollieren. Andere Methoden lösen Python-Ausnahmen aus oder können nicht in Scala kompiliert werden.

  • Eine Notiz muss zu einem einzigen Apache-Flink-Auftrag führen.

  • Notizen mit dynamischen Formularen werden für die Bereitstellung als Anwendung nicht unterstützt.

  • %md-Absätze (Markdown) werden bei der Bereitstellung als Anwendung übersprungen, da davon ausgegangen wird, dass sie menschenlesbare Dokumentation enthalten, die für die Ausführung als Teil der resultierenden Anwendung nicht geeignet ist.

  • Absätze, die für die Ausführung in Zeppelin deaktiviert sind, werden bei der Bereitstellung als Anwendung übersprungen. Selbst wenn ein deaktivierter Absatz einen inkompatiblen Interpreter verwendet, z. B. %flink.ipyflink in einer Notiz mit %flink- and %flink.ssql-Interpretern, wird er bei der Bereitstellung der Notiz als Anwendung übersprungen und führt nicht zu einem Fehler.

  • Damit die Anwendungsbereitstellung erfolgreich ist, muss mindestens ein Absatz mit Quellcode (Flink SQL PyFlink oder Flink Scala) vorhanden sein, der für die Ausführung aktiviert ist.

  • Das Einstellen von Parallelität in der Interpreter-Direktive innerhalb eines Absatzes (z. B. %flink.ssql(parallelism=32)) wird in Anwendungen, die über eine Notiz bereitgestellt werden, ignoriert. Stattdessen können Sie die bereitgestellte Anwendung über die AWS Command Line Interface oder AWS API aktualisieren AWS Management Console, um die Parallelismus- und/oder ParallelismPer KPU-Einstellungen entsprechend dem Grad der Parallelität zu ändern, den Ihre Anwendung benötigt, oder Sie können Autoscaling für Ihre bereitgestellte Anwendung aktivieren.

  • Wenn Sie als Anwendung mit einem dauerhaften Zustand bereitstellen, muss Ihre VPC über Internetzugang verfügen. Wenn Ihre VPC keinen Internetzugang hat, finden Sie weitere Informationen unter Bereitstellen als Anwendung mit dauerhaftem Zustand in einer VPC ohne Internetzugang.

Scala/Python-Kriterien

  • Verwenden Sie in Ihrem Scala- oder Python-Code den Blink-Planer (senv, stenv für Scala; s_env, st_env für Python) und nicht den älteren „Flink“-Planer (stenv_2 für Scala, st_env_2 für Python). Das Apache-Flink-Projekt empfiehlt die Verwendung des Blink-Planers für Produktionsanwendungen. Dies ist der Standardplaner in Zeppelin und Flink.

  • Ihre Python-Absätze dürfen keine Shell-Aufrufe/Zuweisungen mit ! oder magische IPython-Befehle wie %timeit oder %conda in Notizen verwenden, die als Anwendungen bereitgestellt werden sollen.

  • Sie können Scala-Fallklassen nicht als Parameter von Funktionen verwenden, die an Datenflussoperatoren höherer Ordnung wie map und filter übergeben werden. Informationen zu Scala-Fallklassen finden Sie unter FALLKLASSEN in der Scala-Dokumentation.

SQL-Kriterien

  • Einfache SELECT-Anweisungen sind nicht zulässig, da es kein Äquivalent zum Ausgabeabschnitt eines Absatzes gibt, in den die Daten übermittelt werden können.

  • In jedem Absatz müssen DDL-Anweisungen (USE, CREATE, ALTER, DROP, SET, RESET) den DML-(INSERT)-Anweisungen vorangehen. Dies liegt daran, dass DML-Anweisungen in einem Absatz zusammen als ein einziger Flink-Auftrag eingereicht werden müssen.

  • Es darf höchstens einen Absatz geben, der DML-Anweisungen enthält. Das liegt daran, dass wir für diese deploy-as-application Funktion nur das Senden eines einzelnen Jobs an Flink unterstützen.

Weitere Informationen und ein Beispiel finden Sie unter Übersetzen, Redigieren und Analysieren von Streaming-Daten mithilfe von SQL-Funktionen mit Amazon Managed Service für Apache Flink, Amazon Translate und Amazon Comprehend.