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 コネクタ このコネクタには、at-least-once保証を提供するシンクが含まれています。 github: Opensearch Connector
Amazon DynamoDB コネクタ このコネクタには、at-least-once保証を提供するシンクが含まれています。 Amazon DynamoDB シンク
MongoDB コネクタ このコネクタには、at-least-once保証を提供するソースとシンクが含まれています。 MongoDB コネクタ
Flink プランナーで Hive を切り離す

Hive ダイアレクトは、追加の JAR スワップなしで直接使用できます。

FLINK-26603: Flink プランナーで Hive を切り離す
RocksDBWriteBatchWrapper で WAL をデフォルトで無効にする

これにより、復旧時間が短縮されます。

FLINK-32326: RocksDBWriteBatchWrapper で WAL をデフォルトで無効にする

ウォーターマークの整列を有効にすると、ウォーターマークの集約パフォーマンスが向上します。

ウォーターマークの調整を有効にする際のウォーターマークの集約パフォーマンスが向上し、関連するベンチマークが追加されました。

FLINK-32524: ウォーターマーク集約パフォーマンス
ウォーターマークの配置を本番稼働用に準備する JobManager をオーバーロードする大きなジョブのリスクを排除 FLINK-32548: ウォーターマークの配置を準備する

非同期シンクの設定可能な RateLimitingStratey

RateLimitingStrategy では、スケーリングする対象、スケーリングするタイミング、スケーリングする量の決定を設定できます。

FLIP-242: 非同期シンクの設定可能な RateLimitingStrategy の導入

テーブルと列の統計を一括取得する

クエリのパフォーマンスが向上しました。 FLIP-247: 特定のパーティションのテーブルおよび列統計の一括取得

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: Akka を 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 この修正は、テーブル 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 バージョンの互換性」を参照してください。

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 を引き続き使用できます。詳細については、「Studio ノートブックの作成」を参照してください。

サブタスクがバックプレッシャーされている場合のウォーターマークのアイドル状態が正しくない

サブタスクがバックプレッシャーされている場合、ウォーターマークの生成には既知の問題があります。これは Flink 1.19 以降で修正されています。これは、Flink ジョブグラフにバックプレッシャーがかかっている場合、遅延レコードの数の急増として表示されます。この修正をプルするには、最新の Flink バージョンにアップグレードすることをお勧めします。詳細については、「サブタスクがバックプレッシャー/ブロックされたときのウォーターマークアイドルタイムアウトアカウンティングが正しくない」を参照してください。