このトピックでは、Realtime Compute for Apache Flink の2022年9月19日リリースの主な機能とバグ修正について説明します。
概要
2022年9月19日、Realtime Compute for Apache Flink は、プラットフォームとエンジンのアップデート、コネクタのアップデート、パフォーマンスの最適化、バグ修正を含む新しいバージョンをリリースしました。このリリースには、Apache Flink 1.13 ベースの VVR-4.0.15 と Apache Flink 1.15 ベースの VVR-6.0.2 が含まれています。主なアップデートは次のとおりです。
このリリースでは、Apache Flink 1.15 をベースにした初のエンタープライズグレードの Flink エンジンである VVR 6.0.2 が導入されました。このバージョンには、ウィンドウテーブル値関数、CAST 関数、型システム、JSON 関数の機能強化など、オープンソースコミュニティの主要な機能とパフォーマンスの最適化が統合されています。
状態管理は、ユーザーにとって大きな関心事でした。このリリースでは、チェックポイントとセーブポイントの管理を「ステータスセット管理」という単一の機能に統合しました。これにより、セーブポイントの作成と回復の速度が大幅に向上し、セーブポイントのサイズが削減され、全体的な成功率と安定性が向上します。
また、以前の動作とは異なり、デプロイメントがキャンセルされてもセーブポイントは削除されなくなりました。チェックポイントとセーブポイントは明確に区別され、セーブポイントを明示的に作成および管理できます。使いやすさの向上に加えて、Gemini 状態バックエンドの最適化により、大幅なコスト削減が実現します。新しいステータスセット管理により、年間の OSS ストレージコストを 15% から 40% 削減できます。また、プラットフォームでは、別のデプロイメントで作成されたセーブポイントからデプロイメントを開始することもでき、A/B テストやその他のデュアル実行シナリオが簡素化されます。
リソース使用率を向上させるため、スケジュールチューニングを導入しました。ワークロードに予測可能なトラフィックのピークと谷がある場合、ポリシーを作成して、特定の時間にデプロイメントリソースを事前設定されたサイズに自動的に調整できます。これにより、手動での介入なしにリソースのスケーリングを管理し、人件費を削減できます。
デプロイメントの診断を支援するため、ヘルススコアを導入しています。この機能は、起動から実行までのライフサイクル全体でデプロイメントを分析し、ストリーミングデプロイメントを維持するための診断情報と推奨事項を提供します。
より良い統合のために、プラットフォームは新しい OpenAPI オペレーションのセットを提供するようになり、その機能を独自のサービスに統合できるようになりました。
リアルタイムリスク管理は、Flink の主要なユースケースです。以前、一部のお客様に連続イベントシーケンスに対する複雑系イベント処理 (CEP) の新機能をプレビューとして提供し、本番環境で正常に検証されました。
このリリースでは、一連の CEP の機能強化を一般提供します。まず、要望の多かった CEP ルールのホットアップデート機能が利用可能になりました。これにより、ビジネスのピーク時間中にデプロイメントを再起動することなくルールを更新でき、以前はルール更新中にリスク管理システムが直面していた10分間のサービス中断をなくし、ビジネスの可用性を大幅に向上させます。次に、CEP SQL 構文を新しい拡張機能で強化し、その表現力を向上させました。これにより、複雑な DataStream API デプロイメントをよりシンプルな SQL デプロイメントに変換でき、開発効率を向上させ、データリネージシステムとの統合を容易にします。最後に、このリリースでは、ルールマッチングに関する詳細なインサイトを提供するために、いくつかの新しい CEP メトリクスが導入されています。
その他の最適化には、パフォーマンスの向上が含まれます。Flink SQL のデュアルストリーム結合演算子に対して、キーバリュー分離を自動的に有効にするようになりました。この最適化により、ユーザー設定を必要とせずに、デュアルストリーム結合デプロイメントのパフォーマンスが大幅に向上します。また、Hive カタログでサポートされる Hive のバージョンを 2.1.0-2.3.9 および 3.1.0-3.1.3 に拡張しました。コネクタについては、Tablestore からの読み取り、および JDBC コネクタをソーステーブル、ディメンションテーブル、結果テーブルで使用するためのサポートが追加されました。
新機能
機能 | 説明 | ドキュメント |
ステータスセット管理 | ステータスセット管理は、すべてのステートフルな Flink デプロイメントにおいて、状態管理をデプロイメントの開始および停止操作から切り離します。デプロイメントを停止してもセーブポイントは削除されなくなりました。専用の管理ページを使用して、スケジュールに基づいてセーブポイントを作成および削除できます。 | |
スケジュールチューニング | トラフィックのピークと谷が予測可能な Flink デプロイメントに対して、カスタムスケジューリングポリシーを定義できます。指定された時間に、デプロイメントのリソースはトラフィックの変動に対応するために事前設定されたサイズに自動的に調整され、手動でのスケーリングが不要になります。 | |
ヘルススコア | ヘルススコア機能は、エキスパートルールを適用してデプロイメントの起動中および実行中の問題を検出し、実用的な推奨事項を提供します。この機能は、デプロイメントの状態をよりよく理解し、それに応じてパラメーターを調整するのに役立ちます。 | |
メンバー権限付与の改善 | 権限付与プロセスが改善されました。ユーザー情報を手動で入力する代わりに、権限を付与する際にすべての RAM ユーザーのリストから選択できるようになりました。 | |
動的な複雑系イベント処理 (CEP) | CEP は、リアルタイムデータストリームにパターンマッチング機能を提供します。このリリースは、オープンソースの Flink CEP を基盤としており、デプロイメントルールをデータベースで外部化して動的にロードできるようにします。これは DataStream API を通じて公開されます。 | |
CEP SQL の機能強化 | MATCH_RECOGNIZE 文を使用すると、SQL を使用して CEP ルールを記述できます。このリリースでは、オープンソースの Flink MATCH_RECOGNIZE 文に、タイムアウトしたマッチの出力や さらに、新しいメトリクスが導入されました:
| |
Kafka へのデータベース同期のサポート | この機能を使用すると、データは対応する Upsert Kafka テーブルに同期されます。MySQL サービスの代わりに Kafka のテーブルを直接使用できるため、複数のデプロイメントによる MySQL サービスへの負荷が軽減されます。 | |
DDL を使用した Hologres 結果テーブルでのパーティションテーブルの定義 | Hologres 結果テーブルを作成する際に、PARTITION BY を使用してパーティションテーブルを定義できます。 | |
Hologres ディメンションテーブルでの非同期リクエストのタイムアウト設定 | 非同期リクエストに | |
Hologres カタログでテーブルを作成する際のテーブルプロパティの設定 | 適切なテーブルプロパティを設定すると、システムがデータを効率的に整理およびクエリするのに役立ちます。Hologres カタログを使用してテーブルを作成する際に、WITH 句で物理テーブルプロパティを設定できるようになりました。 | |
MaxCompute sink コネクタが Binary 型をサポート |
| |
Hive カタログがより多くの Hive バージョンをサポート | このバージョンは Hive 2.1.0-2.3.9 および 3.1.0-3.1.3 をサポートします。 | |
Tablestore ソースコネクタのリリース | Tablestore からの増分ログの読み取りをサポートします。 | |
JDBC コネクタのリリース | コミュニティの JDBC コネクタが組み込みになりました。 | |
Message Queue for Apache RocketMQ ソーステーブルの並列度がトピックのパーティション数を超えることが可能に | このモードでは、消費が開始される前に、トピックパーティションの潜在的な増加に備えてリソースを事前に割り当てることができます。 | |
Message Queue for Apache RocketMQ 結果テーブルのメッセージキーの設定 | Message Queue for Apache RocketMQ に書き込む際にメッセージキーを設定できるようになりました。 | |
AnalyticDB for MySQL カタログのサポート | このカタログを使用すると、AnalyticDB for MySQL テーブルを手動で登録することなく、AnalyticDB for MySQL から直接メタデータを読み取ることができます。これにより、開発効率が向上し、データの正確性が保証されます。 |
パフォーマンスの最適化
このリリースでは、ネイティブセーブポイントフォーマットが導入され、以前は大規模なステートを持つデプロイメントで標準フォーマットのセーブポイントで発生していたタイムアウトの問題が解決されます。これにより、デプロイメント全体の安定性が大幅に向上します。
メトリック
改善点
セーブポイント完了時間
平均で 5〜10 倍の改善。増分ステートサイズが小さくなるにつれて比率は増加します。一部の典型的なデプロイメントでは、改善は最大で 100 倍になることがあります。
デプロイメント回復時間
平均で約 5 倍の改善。ステートサイズが大きくなるにつれて比率は増加します。
セーブポイントの領域オーバーヘッド
平均で 2 倍の領域オーバーヘッド削減。ステートサイズが大きくなるにつれて比率は増加します。
セーブポイントのネットワークオーバーヘッド
平均で 5〜10 倍のネットワークオーバーヘッド削減。増分ステートサイズが小さくなるにつれて比率は増加します。
デュアルストリーム結合演算子は、パフォーマンスを最適化するためにキーバリュー分離をいつ有効にするかを自動的に推論するようになりました。SQL デプロイメントでは、デュアルストリーム結合演算子がデプロイメントの特性を自動的に分析し、キーバリュー分離を有効にしてパフォーマンスを最適化します。典型的なシナリオでの性能テストでは、平均パフォーマンスが 40% 以上向上しました。詳細については、「パフォーマンス専有型 Flink SQL の最適化」および「エンタープライズグレードの状態バックエンドの設定」をご参照ください。
デプロイメントの起動が平均で 15% 高速化されました。
バグ修正
デプロイメントの変更時刻が誤って更新される問題を修正しました。
一部のデプロイメントが一時停止して再起動した後に状態を判断できない問題を修正しました。
Alibaba Finance Cloud から JAR ファイルをローカルにアップロードできない問題を修正しました。
実行中のデプロイメントが使用する総リソースがページの統計と一致しない問題を修正しました。
デプロイメント診断ログでページナビゲーションが失敗する問題を修正しました。
Kafka カタログから直接アップサート Kafka テーブルを読み取る際のエラーを修正しました。
複数のユーザー定義関数 (UDF) を使用したネストされた操作で中間結果を使用する際の NullPointerException を修正しました。
mysql-cdc における、異常なチャンク分割、メモリ不足 (OOM) エラー、初期データと増分データのタイムゾーンの不一致などの問題を修正しました。詳細については、「MySQL CDC ソーステーブル」をご参照ください。