耐久性のある状態のアプリケーションとしてデプロイする - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

耐久性のある状態のアプリケーションとしてデプロイする

コードを構築して Amazon S3 にエクスポートできます。ノートに書いたコードを、継続的に実行されるストリーム処理アプリケーションに昇格させることができます。Apache Flink 用 Managed Service で Apache Flink アプリケーションを実行するには、2 つのモードがあります。Studio ノートブックでは、コードをインタラクティブに開発し、コードの結果をリアルタイムで表示し、ノート内で可視化することができます。ノートをストリーミング・モードで実行するようにデプロイすると、Apache Flink 用 Managed Service は、継続的に実行され、ソースからデータを読み取り、デスティネーションに書き込み、長時間実行されるアプリケーションの状態を維持し、ソースストリームのスループットに基づいて自動的にオートスケールするアプリケーションを作成します。

注記

アプリケーションコードをエクスポートする S3 バケットは、スタジオノートブックと同じリージョンにある必要があります。

Studio ノートパソコンからノートパソコンを導入するには、次の条件を満たす必要があります。

  • 段落は順番に並べる必要があります。アプリケーションをデプロイすると、メモ内のすべての段落が、メモに表示されるように順番に (left-to-right, top-to-bottom) 実行されます。この順序は、ノートの [すべての段落を実行] を選択することで確認できます。

  • コードは Python と Scala SQLと の組み合わせですSQL。現在、 では Python と Scala を一緒にサポートしていません deploy-as-application。

  • ノートには、「%flink %flink.ssql %flink.pyflink %flink.ipyflink %md」のインタープリタのみを使用してください。

  • Zeppelin コンテキスト」オブジェクト z の使用はサポートされていません。何も返さないメソッドは、警告をログに記録する以外に何もしません。その他のメソッドは Python の例外を発生させたり、Scala でのコンパイルに失敗したりします。

  • 1 つのノートの結果が 1 つの Apache Flink ジョブになる必要があります。

  • 動的フォーム」を持つ Notes は、アプリケーションとしてデプロイすることはできません。

  • %md (Markdown) 段落は、アプリケーションとしてデプロイする際にスキップされます。なぜなら、これらの段落には、結果のアプリケーションの一部として実行するのに適さない、人間が読める文書が含まれていると考えられるからです。

  • Zeppelin 内で実行するために無効化された段落は、アプリケーションとしてデプロイする際にスキップされます。無効化された段落が互換性のないインタプリタを使用していても、例えば %flink and %flink.ssql インタプリタを含むノートの %flink.ipyflink では、アプリケーションとしてノートをデプロイする際にスキップされ、エラーにはなりません。

  • アプリケーションデプロイを成功させるにはSQL、実行が有効になっているソースコード (Flink 、 PyFlink または Flink Scala) が少なくとも 1 つの段落に存在する必要があります。

  • 段落内のインタプリタディレクティブで並列度を設定しても(例えば %flink.ssql(parallelism=32) )、ノートからデプロイされたアプリケーションでは無視されます。代わりに、 を通じてデプロイされたアプリケーションを更新 AWS Command Line Interface して AWS Management Console、 AWS APIアプリケーションに必要な並列処理のレベルに応じて並列処理や ParallelismPerKPU設定を変更したり、デプロイされたアプリケーションの自動スケーリングを有効にしたりできます。

  • 耐久性のある状態のアプリケーションとしてデプロイする場合は、 にインターネットアクセスVPCが必要です。にインターネットアクセスVPCがない場合は、「」を参照してくださいインターネットにアクセスできない に耐久性のある状態のアプリケーションとしてデプロイVPCする

Scala/Python の基準

  • Scala または Python のコードでは、古い「Flink」プランナー(Scala 用 stenv_2 、Python 用 st_env_2 )ではなく、「Blinkプランナー」(Scala 用 senvstenv 、Python 用 s_envst_env )を使用してください。Apache Flink プロジェクトでは、Zeppelin および Flink のデフォルトのプランナーである Blink プランナーを本番ユースケースで使用することを推奨しています。

  • Python の段落では、 を使用したシェル呼び出し/割り当て!、またはアプリケーションとしてデプロイするためのメモ%conda%timeit や などのIPythonマジックコマンドを使用してはなりません。

  • Scala ケースクラスは、 mapfilter などの高階データフローオペレータに渡される関数のパラメーターとして使用することはできません。Scala ケースクラスの詳細については、Scala ドキュメントCASECLASSESの「」を参照してください。

SQL 基準

  • データを配信できる段落の出力セクションに相当する場所がないため、単純なSELECTステートメントは許可されません。

  • 任意の段落では、DDLステートメント (USE、、CREATEALTER、、RESET) は DML (INSERT) DROP SETステートメントの前に存在する必要があります。これは、段落内のDMLステートメントを 1 つの Flink ジョブとしてまとめて送信する必要があるためです。

  • DML ステートメントを含む段落が 1 つまで存在する必要があります。これは、この機能 deploy-as-applicationでは、Flink への 1 つのジョブの送信のみがサポートされているためです。

詳細と例については、「Amazon Managed Service for Apache Flink、Amazon Translate 、および Amazon Comprehend のSQL関数を使用したストリーミングデータの翻訳、編集、分析」を参照してください。