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
Amazon Managed Service for Apache Flink 1.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」を参照してください。