Amazon Managed Service for Apache Flink 1.18 - 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.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 ドキュメントリファレンスでサポートされている機能
サポートされている機能 説明 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」を参照してください。

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」を参照してください。