Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
Amazon Managed Service for Apache Flink 1.18
Managed Service for Apache Flink は、Apache Flink バージョン 1.18.1 をサポートするようになりました。Apache Flink 1.18.1 の Managed Service for Apache Flink サポートで導入された主要な新機能と変更について説明します。
注記
過去にサポートされていたバージョンの Apache Flink を使用していて、既存のアプリケーションを Apache Flink 1.18.1 にアップグレードする場合は、インプレースの Apache Flink バージョンアップグレードを使用してアップグレードできます。インプレースのバージョンアップグレードでは、スナップショット、ログ、メトリクス、タグ、Flink 設定など、Apache Flink バージョン全体で、単一の ARN に対するアプリケーションのトレーサビリティを保持します。この機能は、RUNNING および READY 状態で使用できます。詳細については、「Apache Flink のインプレースバージョンアップグレードを使用する」を参照してください。
| サポートされている機能 | 説明 | Apache Flink ドキュメントリファレンス |
|---|---|---|
| Opensearch コネクタ | このコネクタには、シンクが含まれており、少なくとも 1 回保証を提供します。 | github: Opensearch Connector |
| Amazon DynamoDB コネクタ | このコネクタには、シンクが含まれており、少なくとも 1 回保証を提供します。 | Amazon DynamoDB Sink |
| MongoDB Connector | このコネクタには、ソースとシンクが含まれており、少なくとも 1 回保証を提供します。 | MongoDB Connector |
| Flink プランナーで Hive を切り離す |
Hive ダイアレクトは、追加の JAR スワップなしで直接使用できます。 |
FLINK-26603: Decouple Hive with Flink planner |
| RocksDBWriteBatchWrapper で WAL をデフォルトで無効にする |
これにより、復旧時間が短縮されます。 |
FLINK-32326: Disable WAL in RocksDBWriteBatchWrapper by default |
|
ウォーターマークアライメントを有効化したときのウォーターマーク集約性能を改善する |
ウォーターマークアライメントを有効化したときのウォーターマーク集約性能を改善し、関連するベンチマークを追加します。 |
FLINK-32524: Watermark aggregation performance |
| ウォーターマークアライメントを本番稼働用に準備する | JobManager をオーバーロードする大きなジョブのリスクを排除する | FLINK-32548: Make watermark alignment ready |
|
非同期シンクの設定可能な RateLimitingStratey |
RateLimitingStrategy では、スケーリングする対象、スケーリングするタイミング、スケーリングする量の決定を設定できます。 |
FLIP-242: Introduce configurable RateLimitingStrategy for Async Sink |
|
テーブルと列の統計を一括取得する |
クエリパフォーマンスが向上しました。 | FLIP-247: Bulk fetch of table and column statistics for given partitions |
Apache Flink 1.18.1 リリースドキュメントについては、「Apache Flink 1.18.1 Release Announcement
Apache Flink 1.18 における Amazon Managed Service for Apache Flink の変更点
Akka を Pekko に置き換えました
Apache Flink は、Apache Flink 1.18 で Akka を Pekko に置き換えました。この変更は、Apache Flink 1.18.1 以降の Managed Service for Apache Flink で完全にサポートされています。この変更により、アプリケーションを修正する必要はありません。詳細については、「FLINK-32468: Replace Akka by Pekko
スレッドモードで PyFlink ランタイム実行をサポートする
この Apache Flink の変更により、Pyflink ランタイムフレームワークの新しい実行モードであるプロセスモードが導入されました。プロセスモードは、別のプロセスではなく、同じスレッドで Python ユーザー定義関数を実行できるようになりました。
バックポートされたバグ修正
Amazon Managed Service for Apache Flink のバックポートは、Flink コミュニティからの重大な問題を修正します。つまり、ランタイムは Apache Flink 1.18.1 リリース時とは異なります。以下は、バックポートしたバグ修正のリストです。
| Apache Flink JIRA リンク | 説明 |
|---|---|
| FLINK-33863 |
この修正は、圧縮されたスナップショットの状態復元が失敗した場合の問題に対処します。 |
| FLINK-34063 |
この修正は、スナップショット圧縮が有効になっているときにソース演算子が分割を失う問題を解決します。Apache Flink は、すべてのチェックポイントとセーブポイントに対してオプションの圧縮 (デフォルト: オフ) を提供します。Apache Flink は Flink 1.18.1 で、スナップショット圧縮を有効化した場合にオペレータの状態が正しく復元されないというバグを特定しました。これにより、データが失われたり、チェックポイントから復元できなくなる可能性があります。 |
| FLINK-35069 |
この修正は、ウィンドウの終了時にタイマーをトリガーする際に Flink ジョブがスタックしてしまう問題に対処します。 |
| FLINK-35097 |
この修正は、Table API ファイルシステムコネクタ内の重複レコードの問題に raw 形式で対処します。 |
| FLINK-34379 |
この修正は、動的テーブルフィルタリングを有効にするときの OutOfMemoryError の問題に対処します。 |
| FLINK-28693 |
この修正は、ウォーターマークに columnBy 式がある場合に Table API がグラフを生成できないという問題に対処します。 |
| FLINK-35217 |
この修正は、特定の Flink ジョブの障害モードにおいてチェックポイントが破損する問題に対処します。 |
コンポーネント
| コンポーネント | バージョン |
|---|---|
| Java | 11 (推奨) |
| Scala |
バージョン 1.15 以降、Flink は Scala に依存しません。参考までに、MSF Flink 1.18 は Scala 3.3 (LTS) に対して検証されています。 |
| Apache Flink Flink ランタイム用 Managed Service(aws-kinesis-analytics-Runtime) | 1.2.0 |
| AWS Kinesis Connector (flink-connector-kinesis)[Source] |
4.2.0~1.18 |
| AWS Kinesis Connector (flink-connector-kinesis)[Sink] |
4.2.0~1.18 |
| 「Apache Beam (Beamアプリケーションのみ) |
バージョン 2.57.0 から。詳細については、「Flink Version Compatibility |
既知の問題
Amazon Managed Service for Apache Flink Studio
Studio は、Apache Zeppelin ノートブックを利用して、Apache Flink ストリーム処理アプリケーションの開発、コード・デバッグ、実行のための単一インターフェースの開発体験を提供します。Flink 1.18 のサポートを有効にするには、Zeppelin の Flink インタプリタのアップグレードが必要です。この作業は Zeppelin コミュニティでスケジュールされており、完了したらこれらのメモを更新します。Amazon Managed Service for Apache Flink Studio で Flink 1.15 を引き続き使用できます。詳細については、「Creating a Studio notebook」を参照してください。
サブタスクがバックプレッシャーされている場合のウォーターマークのアイドル状態が正しくない
サブタスクがバックプレッシャー状態にある場合、ウォーターマーク生成に既知の不具合がありますが、Flink 1.19 以降では修正されています。これは、Flink ジョブグラフにバックプレッシャーがかかっている場合、遅延レコード数の急増として現れることがあります。この修正をプルするには、最新の Flink バージョンにアップグレードすることをお勧めします。詳細については、「Incorrect watermark idleness timeout accounting when subtask is backpressured/blocked