

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Managed Service for Apache Flink 2.2
<a name="flink-2-2"></a>

Amazon Managed Service for Apache Flink が Apache Flink バージョン 2.2 をサポートするようになりました。これは、サービスの最初のメジャーバージョンアップグレードです。このページでは、Flink 2.2 で導入された機能と、Flink 1.x からのアップグレードに関する重要な考慮事項について説明します。

**注記**  
Flink 2.2 では、慎重な計画が必要な重大な変更が導入されています。1.x からアップグレード[Flink 2.2 アップグレードのステート互換性ガイド](state-compatibility.md)する前に、以下の重要な変更と廃止の完全なリストと を確認してください。

## Amazon Managed Service for Apache Flink 2.2 の新機能
<a name="flink-2-2-whats-new"></a>

Amazon Managed Service for Apache Flink 2.2 では、アップグレード時に既存のアプリケーションが破損する可能性のある動作変更が導入されています。次のセクションの Flink API の変更とともに、これらを注意深く確認してください。

**プログラムによる設定処理**
+ MSF Flink 2.2 では、 `env.getConfig().set()`または同様の APIsようになりました。「[プログラムによる Flink 設定プロパティ](programmatic-configuration.md)」を参照してください。
+ お客様は、サポートチケットを通じて特定の設定の変更をリクエストできます ([「変更可能な設定](https://docs.aws.amazon.com/managed-flink/latest/java/reference-modifiable-settings.html)」を参照)

**メトリクスの削除**
+ `fullRestarts` メトリクスは Flink 2.2 で削除されました。代わりに `numRestarts`メトリクスを使用します。
+ KDS コネクタの `bytesRequestedPerFetch`メトリクスは、Flink AWS コネクタバージョン 6.0.0 (Flink 2.2 と互換性のあるコネクタバージョンのみ) で削除されました。
+ `uptime` および `downtime`メトリクスはどちらも Flink 2.2 で非推奨としてマークされ、間もなく削除されます。を新しいメトリクス `uptime`に置き換えます`runningTime`。`downtime` を `restartingTime`、、`cancellingTime`および の 1 つ以上に置き換えます`failingTime`。
+ サポートされている[メトリクスの完全なリストについては、「メトリクスとディメンション」ページ](https://docs.aws.amazon.com/managed-flink/latest/java/metrics-dimensions.html)を参照してください。

**認証情報以外の IMDS 呼び出しがブロックされました**
+ これらの許可されたエンドポイントは、 AWS SDK の **DefaultCredentialsProvider** (`/latest/meta-data/iam/security-credentials/`) と **DefaultAwsRegionProviderChain** (`/latest/dynamic/instance-identity/document`) によって使用され、アプリケーションの認証情報とリージョンを自動的に設定します。
+ 非認証情報 IMDS 呼び出し (`EC2MetadataUtils.getInstanceId()`、、`EC2MetadataUtils.getInstanceType()`、 など`EC2MetadataUtils.getAvailabilityZone()`) に依存する AWS SDK 関数を使用するアプリケーションは`EC2MetadataUtils.getLocalHostName()`、これらの呼び出しを試行するときに HTTP 4xx エラーを受け取ります。
+ アプリケーションがインスタンスメタデータまたは許可されたパス外のその他の情報に IMDS を使用する場合は、代わりに環境変数またはアプリケーション設定を使用するようにコードをリファクタリングします。

**読み取り専用ルートファイルシステム**
+ セキュリティを向上させるために、 以外の依存関係`/tmp`はデフォルトの flink 作業ディレクトリになります。 `java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)`
+ ファイルシステムの依存関係は、コードから直接生成することも、依存関係に含まれるライブラリから間接的に生成することもできます。ファイルシステムの直接的な依存関係をコード`/tmp/`の に上書きします。ライブラリからの間接的なファイルシステムの依存関係については、ライブラリ設定の上書きを使用してファイルシステムのオペレーションを にリダイレクトします`/tmp/`。

## 重大な変更と廃止
<a name="flink-2-2-breaking-changes"></a>

Managed Service for Apache Flink 2.2 で導入された重大な変更と廃止の概要を以下に示します。これらの重大な変更を導入する [Apache Flink 2.0 の完全なリリースノート](https://nightlies.apache.org/flink/flink-docs-stable/release-notes/flink-2.0/)については、「Apache Flink 2.0 リリースノート」を参照してください。

**DataSet API の削除**
+ Flink 2.0 以降では、バッチ処理用のレガシー DataSet API が完全に削除されました。すべてのバッチ処理で、統合 DataStream API を使用する必要があります。
+ DataSet API を使用するアプリケーションは、アップグレードする前に DataStream API に移行する必要があります。[DataSet から DataStream への変換については、「Apache Flink 移行ガイド](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/dataset_migration/)」を参照してください。

**Java 11 および Python 3.8 を削除**
+ Java 11 のサポートは完全に削除されました。Java 17 はデフォルトの推奨ランタイムです。
+ Python 3.8 のサポートが削除されました。Python 3.12 がデフォルトになりました。

**レガシーコネクタクラスの削除**
+ レガシー `SourceFunction` および `SinkFunction`インターフェイスは、新しい統合ソース (FLIP-27) およびシンク (FLIP-143) APIs に置き換えられました。これにより、境界付き/無制限の二元性、チェックポイントの調整の改善、よりクリーンなプログラミングモデルのサポートが向上します。
+ Kinesis Data Streams の場合は、 から `KinesisStreamsSource`と `KinesisStreamsSink` を使用します`flink-connector-aws-kinesis-streams:6.0.0-2.0`。

**Scala API が削除されました**
+ Flink Scala API が削除されました。Flink の Java API は、JVM ベースのアプリケーション用にサポートされている単一の API になりました。
+ アプリケーションが Scala で記述されている場合でも、Scala コードから Flink の Java API を使用できます。主な変更点は、Scala 固有のラッパーと暗黙的な変換が利用できなくなることです。Scala [アプリケーションの更新の詳細については、「アプリケーションと Flink バージョンのアップグレード](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/ops/upgrading/)」を参照してください。

**状態の互換性に関する考慮事項**
+ バージョン 2.24 から 5.6 にアップグレードした Kryo シリアライザーは、状態互換性の問題を引き起こす可能性があります。
+ コレクション (`HashMap`、、`HashSet`) を持つ POJOs には`ArrayList`、状態互換性の問題がある可能性があります。
+ Avro と Protobuf のシリアル化は影響を受けません。
+ アプリケーションのリスクレベルをトリアージするための詳細な評価[Flink 2.2 アップグレードのステート互換性ガイド](state-compatibility.md)については、「」を参照してください。

## サポートされている Apache Flink 2.2 の機能
<a name="flink-2-2-supported-features"></a>

**ランタイムと言語のサポート**


****  

| 機能 | 説明 | ドキュメント | 
| --- | --- | --- | 
| Java 17 ランタイム | Java 17 がデフォルトおよび推奨ランタイムになりました。Java 11 のサポートは削除されました。 | [Java の互換性](https://nightlies.apache.org/flink/flink-docs-stable/zh/docs/deployment/java_compatibility/) | 
| Python 3.12 のサポート | Python 3.12 がサポートされるようになりました。Python 3.8 のサポートは削除されました。 | [PyFlink ドキュメント](https://nightlies.apache.org/flink/flink-docs-release-2.2/docs/dev/python/overview/) | 

**状態管理とパフォーマンス**


****  

| 機能 | 説明 | ドキュメント | 
| --- | --- | --- | 
| RocksDB 8.10.0 | RocksDB アップグレードで I/O パフォーマンスが向上しました。 | [状態バックエンド](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/ops/state/state_backends/) | 
| シリアル化の改善 | Map、List、Set 専用シリアライザー。Kryo を 2.24 から 5.6 にアップグレードしました。 | [タイプシリアル化](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/datastream/fault-tolerance/serialization/types_serialization/) | 

**SQL およびテーブル API の機能**


****  

| 機能 | 説明 | ドキュメント | 
| --- | --- | --- | 
| バリアントデータ型 | 文字列解析を繰り返すことなく半構造化データ (JSON) をネイティブにサポート。 | [データ型](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/types/) | 
| デルタ結合 | 各キーの最新バージョンのみを維持することで、ストリーミング結合の状態要件を減らします。カスタマー管理のインフラストラクチャ (Apache Fluss など) が必要です。 | [結合](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/sql/queries/joins/) | 
| StreamingMultiJoinOperator | マルチウェイ結合を単一の演算子として実行し、中間マテリアライズメントを排除します。 | [FLIP-516](https://cwiki.apache.org/confluence/display/FLINK/FLIP-516) | 
| ProcessTableFunction (PTF) | キーごとの状態とタイマーを使用して、SQL でステートフルでイベント駆動型のロジックを直接有効にします。 | [ユーザー定義関数](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/functions/udfs/) | 
| ML\$1PREDICT 関数 | SQL から直接ストリーミング/バッチテーブルの登録済み ML モデルを呼び出します。ModelProvider 実装 (例: flink-model-openai) をバンドルする必要があります。ModelProvider ライブラリは Managed Service for Apache Flink によって出荷されません。 | [ML 予測](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/sql/queries/model-inference/) | 
| モデル DDL | CREATE MODEL ステートメントを使用して、ML モデルをファーストクラスカタログオブジェクトとして定義します。 | [ステートメントの作成](https://nightlies.apache.org/flink/flink-docs-release-2.1/docs/dev/table/sql/create/#create-model) | 
| ベクトル検索 | Flink SQL API は、ベクトルデータベースの検索をサポートしています。現在、オープンソースのVectorSearchTableSource実装は利用できません。お客様は独自の実装を提供する必要があります。 | [Flink SQL](https://nightlies.apache.org/flink/flink-docs-stable/release-notes/flink-2.2/#support-vector_search-in-flink-sql) | 

**DataStream API の機能**


****  

| 機能 | 説明 | ドキュメント | 
| --- | --- | --- | 
| FLIP-27 ソース API | レガシー SourceFunction に代わる新しい統合ソースインターフェイス。 | [[Sources]](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/datastream/sources/) (出典) | 
| FLIP-143 シンク API | レガシー SinkFunction に代わる新しい統合シンクインターフェイス。 | [シンク](https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/datastream/sinks/) | 
| 非同期 Python DataStream | AsyncFunction を使用した Python DataStream API のノンブロッキング I/O オペレーション。 | [非同期 I/O](https://nightlies.apache.org/flink/flink-docs-release-2.2/docs/dev/python/datastream/operators/async_io/) | 

## コネクタの可用性
<a name="flink-2-2-connectors"></a>

Flink 2.2 にアップグレードする場合、コネクタの依存関係を Flink 2.2 ランタイムと互換性のあるバージョンに更新する必要があります。Flink コネクタは Flink ランタイムとは独立してリリースされ、すべてのコネクタにまだ Flink 2.2 互換リリースがあるわけではありません。次の表は、Amazon Managed Service for Apache Flink でよく使用されるコネクタの可用性をまとめたものです。


**Flink 2.2 のコネクタの可用性**  

| コネクタ | Flink 1.20 バージョン | Flink 2.0\$1 バージョン | 注意事項 | 
| --- | --- | --- | --- | 
| Apache Kafka | flink-connector-kafka 3.4.0-1.20 | flink-connector-kafka 4.0.0-2.0 | Flink 2.2 に推奨 | 
| Kinesis Data Streams (ソース) | flink-connector-kinesis 5.0.0-1.20 | flink-connector-aws-kinesis-streams 6.0.0-2.0 | Flink 2.2 に推奨 | 
| Kinesis Data Streams (シンク) | flink-connector-aws-kinesis-streams 5.1.0-1.20 | flink-connector-aws-kinesis-streams 6.0.0-2.0 | Flink 2.2 に推奨 | 
| Amazon Data Firehose | flink-connector-aws-kinesis-firehose 5.1.0-1.20 | flink-connector-aws-kinesis-firehose 6.0.0-2.0 | Flink 2.0 と互換性があります | 
| Amazon DynamoDB | flink-connector-dynamodb 5.1.0-1.20 | flink-connector-dynamodb 6.0.0-2.0 | Flink 2.0 と互換性があります | 
| Amazon SQS | flink-connector-sqs 5.1.0-1.20 | flink-connector-sqs 6.0.0-2.0 | Flink 2.0 と互換性があります | 
| FileSystem (S3、HDFS) | Flink にバンドル | Flink にバンドル | Flink ディストリビューションに組み込まれている — 常に利用可能 | 
| JDBC | flink-connector-jdbc 3.3.0-1.20 | 2.x 用にまだリリースされていない | Flink 2.x 互換リリースは利用できません | 
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | 2.x 用にまだリリースされていない | Flink 2.x 互換リリースは利用できません | 
| Elasticsearch | レガシーコネクタのみ | 2.x 用にまだリリースされていない | OpenSearch コネクタへの移行を検討する | 
| Amazon Managed Service for Prometheus | flink-connector-prometheus 1.0.0-1.20 | 2.x 用にまだリリースされていない | Flink 2.x 互換リリースは利用できません | 
+ アプリケーションが Flink 2.x リリースをまだ持っていないコネクタに依存している場合は、コネクタが互換性のあるバージョンをリリースするのを待つか、代替バージョンに置き換えることができるかどうかを評価する (JDBC カタログやカスタムシンクを使用するなど) という 2 つのオプションがあります。
+ コネクタバージョンを更新するときは、アーティファクト名の変更に注意してください。一部のコネクタはメジャーバージョン間で名前が変更されました (たとえば、一部の中間バージョン`flink-connector-aws-firehose`では Firehose コネクタが から `flink-connector-aws-kinesis-firehose` に変更されました）。
+ ターゲットランタイムでサポートされている正確なアーティファクト名とバージョンについては、Amazon [Managed Service for Apache Flink コネクタのドキュメント](https://docs.aws.amazon.com/managed-flink/latest/java/how-flink-connectors.html)を必ず確認してください。

## サポートされていない機能や実験的な機能
<a name="flink-2-2-unsupported"></a>

Amazon Managed Service for Apache Flink 2.2 では、以下の機能はサポートされていません。
+ **マテリアライズドテーブル**: 継続的に維持され、クエリ可能なテーブルスナップショット。
+ **カスタムテレメトリの変更**: カスタムメトリクスレポーターとテレメトリ設定。
+ **ForSt State Backend**: Disaggregated State Storage (オープンソースで実験的）。
+ **Java 21**: オープンソースでの実験サポート。 Managed Service for Apache Flink ではサポートされていません。

## 既知の問題
<a name="flink-2-2-known-issues"></a>

**Amazon Managed Service for Apache Flink Studio**

Amazon Managed Service for Apache Flink の Flink 2.2 は Studio アプリケーションをサポートしていません。詳細については、「[Creating a Studio notebook](https://docs.aws.amazon.com/managed-flink/latest/java/how-zeppelin-creating.html)」を参照してください。

**Kinesis Connector EFO**
+ コネクタ v5.0.0 および v6.0.0 で導入された EFO (拡張ファンアウト/SubscribeToShard) パス`KinesisStreamsSource`で を使用するアプリケーションは、Kinesis ストリームがリシャーディングされると失敗することがあります。これはコミュニティの既知の問題です。詳細については、「[FLINK-37648](https://issues.apache.org/jira/browse/FLINK-37648)」を参照してください。
+ コネクタ v5.0.0 および v6.0.0 で導入された EFO (拡張ファンアウト/SubscribeToShard) パス`KinesisStreamsSource`で を使用するアプリケーションは、Flink アプリケーションにバックプレッシャーがかかっている場合にデッドロックが発生し、1 つ以上の TaskManagers でのデータ処理が完全に停止`KinesisStreamsSink`する可能性があります。アプリケーションを復旧するには、強制停止オペレーションとアプリケーション開始オペレーションが必要です。これは、コミュニティ内の既知の問題のサブケースです。詳細については、「[FLINK-34071](https://issues.apache.org/jira/browse/FLINK-34071)」を参照してください。

## アップグレードエクスペリエンス
<a name="flink-2-2-upgrade"></a>

Amazon Managed Service for Apache Flink は、アプリケーション設定、ログ、メトリクス、タグ、および状態とバイナリに互換性がある場合はアプリケーション状態を保持するインプレースバージョンアップグレードをサポートしています。手順については、「[Flink 2.2 へのアップグレード: 完全なガイド](flink-2-2-upgrade-guide.md)」を参照してください。

状態互換性リスクの評価とアップグレード中の互換性のない状態の処理に関するガイダンスについては、「」を参照してください[Flink 2.2 アップグレードのステート互換性ガイド](state-compatibility.md)。

## 次の手順
<a name="flink-2-2-next-steps"></a>
+ Flink 2.2 を初めて使用する場合 Apache Flink 2.2 の詳細なドキュメントについては、[「Apache Flink 2.2 のドキュメント](https://nightlies.apache.org/flink/flink-docs-release-2.2/)」を参照してください。
+ アップグレードを計画していますか? 「[Flink 2.2 へのアップグレード: 完全なガイド](flink-2-2-upgrade-guide.md)」を参照してください。
+ 状態の互換性に関する懸念はありますか? 「[Flink 2.2 アップグレードのステート互換性ガイド](state-compatibility.md)」を参照してください。

質問や問題については、「」を参照[Managed Service for Apache Flink をトラブルシューティングする](troubleshooting.md)するか、 AWS サポートにお問い合わせください。