Amazon Managed Service for Apache Flink 1.19 - Managed Service for Apache Flink

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

Amazon Managed Service for Apache Flink 1.19

Managed Service for Apache Flink は、Apache Flink バージョン 1.19.1 をサポートするようになりました。このセクションでは、Apache Flink 1.19.1 の Managed Service for Apache Flink サポートで導入された主な新機能と変更点について説明します。

注記

過去にサポートされていたバージョンの Apache Flink を使用していて、既存のアプリケーションを Apache Flink 1.19.1 にアップグレードする場合は、インプレースの Apache Flink バージョンアップグレードを使用してアップグレードできます。詳細については、「Apache Flink のインプレースバージョンアップグレードを使用する」を参照してください。インプレースのバージョンアップグレードでは、スナップショット、ログ、メトリクス、タグ、Flink 設定など、Apache Flink バージョン全体で、単一の ARN に対するアプリケーションのトレーサビリティを保持します。

Apache Flink 1.19.1 では、SQL API の改善がされ、名前付きパラメータ、カスタムソースの並列度、さまざまな Flink 演算子ごとの異なる状態 TTL などが利用可能になりました。

サポートされている機能および関連ドキュメント
サポートされている機能 説明 Apache Flink ドキュメントリファレンス
SQL API: SQL Hint を使用した異なる状態 TTL の設定をサポート ユーザーは、ストリームの通常の結合とグループ集計で状態 TTL を設定できるようになりました。 FLIP-373: Configuring Different State TTLs using SQL Hint
SQL API: 関数と呼び出しプロシージャの名前付きパラメータのサポート ユーザーは、関数で名前付きパラメータが使えるようになり、パラメータの順序に依存する必要がなくなりました。 FLIP-378: Support named parameters for functions and call procedures
SQL API: SQL ソースの並列度の設定 ユーザーは SQL ソースの並列度を指定できるようになりました。 FLIP-367: Support Setting Parallelism for Table/SQL Sources
SQL API: セッションウィンドウ TVF のサポート ユーザーはセッションウィンドウ Table-Valued 関数を使用できるようになりました。 FLINK-24024: Support session Window TVF
SQL API: ウィンドウ TVF 集約が変更ログ入力をサポート ユーザーは、変更ログ入力でウィンドウ集約を実行できるようになりました。 FLINK-20281: Window aggregation supports changelog stream input

Python 3.11 をサポートする

Flink は Python 3.11 をサポートするようになりました。Python 3.10 より 10~60% 速く動きます。詳細については、「What's New in Python 3.11」を参照してください。 FLINK-33030: Add python 3.11 support
TwoPhaseCommitting シンクのメトリクスを提供する ユーザーは、2 つのフェーズのコミットシンクでコミッターのステータスに関する統計を表示できます。 FLIP-371: Provide initialization context for Committer creation in TwoPhaseCommittingSink

ジョブの再起動とチェックポイントのためのトレースレポーター

ユーザーは、チェックポイントの所要時間やリカバリの傾向に関するトレースを監視できるようになりました。Amazon Managed Service for Apache Flink では、デフォルトで Slf4j トレースレポーターが有効になっているため、ユーザーはアプリケーションの CloudWatch Logs を通じてチェックポイントとジョブのトレースをモニタリングできます。 FLIP-384: Introduce TraceReporter and use it to create checkpointing and recovery traces
注記

サポートケースを送信することで、次の機能をオプトインできます。

オプトイン機能と関連ドキュメント
オプトイン機能 説明 Apache Flink ドキュメントリファレンス
ソースがバックログを処理しているときにチェックポイント間隔をより長く使用するサポート これはオプトイン機能です。ユーザーは特定のジョブ要件に応じて設定を調整する必要があるためです。 FLIP-309: Support using larger checkpointing interval when source is processing backlog
System.out と System.err を Java ログにリダイレクトする これはオプトイン機能です。Amazon Managed Service for Apache Flink では、デフォルトの動作として System.out および System.err の出力は無視されます。これは、本番環境におけるベストプラクティスがネイティブの Java ロガーを使用することであるためです。 FLIP-390: Support System out and err to be redirected to LOG or discarded

Apache Flink 1.19.1 リリースドキュメントについては、「Apache Flink Documentation v1.19.1」を参照してください。

Logging Trace Reporter がデフォルトで有効化されました

Apache Flink 1.19.1 では、チェックポイントとリカバリのトレースが導入され、ユーザーはチェックポイントやジョブのリカバリの問題をより適切にデバッグできるようになりました。Amazon Managed Service for Apache Flink では、これらのトレースは CloudWatch ログストリームに記録され、ユーザーはジョブの初期化に要した時間を分析したり、チェックポイントの履歴サイズを記録したりできます。

デフォルトのリスタートストラテジーが指数関数的遅延になりました

Apache Flink 1.19.1 では、指数関数的遅延のリスタートストラテジーが大幅に改善されています。Flink 1.19.1 以降の Amazon Managed Service for Apache Flink では、Flink ジョブはデフォルトで指数関数的遅延のリスタートストラテジーを使用します。つまり、ユーザージョブは一時的なエラーから迅速に回復しますが、ジョブの再起動が続いても外部システムをオーバーロードしません。

バックポートされたバグ修正

Amazon Managed Service for Apache Flink のバックポートは、Flink コミュニティからの重大な問題を修正します。つまり、ランタイムは Apache Flink 1.19.1 リリース時とは異なります。以下は、バックポートしたバグ修正のリストです。

バックポートされたバグ修正
Apache Flink JIRA リンク 説明
FLINK-35531 この修正は、1.17.0 で発生した HDFS への書き込み速度低下を引き起こすパフォーマンスの低下に対処します。
FLINK-35157 この修正は、ウォーターマークアラインメントを持つソースがサブタスクを終了した場合に Flink ジョブがスタックする問題に対処します。
FLINK-34252 この修正は、ウォーターマーク生成において誤った IDLE ウォーターマーク状態が発生する問題に対処します。
FLINK-34252 この修正は、システム呼び出しを減らすことで、ウォーターマークの生成中のパフォーマンスの低下に対処します。
FLINK-33936 この修正は、Table API におけるミニバッチ集約時に重複レコードが発生する問題に対処します。
FLINK-35498 この修正は、Table API の UDF において名前付きパラメータを定義する際に引数名が競合する問題に対処します。
FLINK-33192 この修正は、タイマーのクリーンアップが不適切なためにウィンドウ演算子で発生していたステートメモリリークの問題に対処します。
FLINK-35069 この修正は、ウィンドウの終了時にタイマーをトリガーする際に Flink ジョブがスタックしてしまう問題に対処します。
FLINK-35832 この修正は、IFNULL が誤った結果を返す問題に対処します。
FLINK-35886 この修正は、バックプレッシャーされたタスクがアイドル状態と見なされる問題に対処します。
コンポーネント バージョン
Java 11 (推奨)
Python (パイソン)

3.11

Kinesis Data Analytics Flink ランタイム (aws-kinesisanalytics-runtime) 1.2.0
Connector 使用可能なコネクタの詳細については、「Apache Flink connectors」を参照してください。
「Apache Beam (Beamアプリケーションのみ)

バージョン 2.61.0 から。詳細については、「Flink Version Compatibility」を参照してください。

Amazon Managed Service for Apache Flink Studio

Studio は、Apache Zeppelin ノートブックを利用して、Apache Flink ストリーム処理アプリケーションの開発、コード・デバッグ、実行のための単一インターフェースの開発体験を提供します。Flink 1.19 のサポートを有効にするには、Zeppelin の Flink インタプリタのアップグレードが必要です。この作業は Zeppelin コミュニティでスケジュールされており、完了したらこれらのメモを更新します。Amazon Managed Service for Apache Flink Studio で Flink 1.15 を引き続き使用できます。詳細については、「Creating a Studio notebook」を参照してください。