ドラフトデバッグを有効にしてデプロイメントの実行をシミュレートし、出力を確認し、SELECT 文と INSERT 文のビジネスロジックを検証できます。 この機能は開発効率を向上させ、データ品質低下のリスクを軽減します。 このトピックでは、Apache Flink 用の Realtime Compute の SQL ドラフトをデバッグする方法について説明します。
背景情報
ドラフトデバッグ機能を使用すると、フルマネージド Flink のコンソールでドラフトロジックの正しさを検証できます。 デバッグプロセス中は、結果テーブルのタイプに関係なく、データは結果テーブルに書き込まれません。 ドラフトデバッグ機能を使用する場合、アップストリームのオンラインデータを使用するか、デバッグデータを指定できます。 count(*)
などの更新操作を含む UPSERT 文だけでなく、複数の SELECT 文または INSERT 文を含む複雑なドラフトをデバッグできます。
制限事項
ドラフトデバッグ機能を使用するには、セッションクラスタを作成する必要があります。
デバッグできるのは SQL ドラフトのみです。
CREATE TABLE AS 文または CREATE DATABASE AS 文を含むドラフトはデバッグできません。
VVR 4.0.8 以前を使用する Apache Flink 用 Realtime Compute のセッションクラスタの MySQL CDC ソーステーブルのデータはデバッグできません。 これは、MySQL CDC ソーステーブルが追加専用モードで書き込まれていないためです。
デフォルトでは、Apache Flink 用 Realtime Compute は最大 1,000 件のデータレコードを読み取り、それを超えるとデータの読み取りが停止します。
使用上の注意
セッションクラスタを作成すると、クラスタリソースが消費されます。 リソース消費量は、クラスタの作成時に選択した構成に基づいています。
セッションクラスタは、開発環境とテスト環境に適しています。 実稼働環境ではセッションクラスタを使用しないでください。 セッションクラスタでドラフトをデバッグすると、JobManager のリソース使用率が増加します。 実稼働環境でセッションクラスタを使用すると、JobManager の再利用メカニズムがデプロイメント間の安定性に悪影響を及ぼします。 次のような安定性の問題が発生する可能性があります。
JobManager に障害が発生した場合、JobManager 上で実行されているクラスタのすべてのデプロイメントが影響を受けます。
TaskManager に障害が発生した場合、TaskManager 上でタスクを実行しているデプロイメントが影響を受けます。
同じ TaskManager 上で実行されているタスクのプロセスが分離されていない場合、タスクが互いに影響を受ける可能性があります。
セッションクラスタがデフォルトの構成を使用している場合は、次の点に注意してください。
単一の小さなデプロイメントの場合、クラスタ内のそのようなデプロイメントの総数は 100 以下にすることをお勧めします。
複雑なデプロイメントの場合、デプロイメントの並列度を 512 に制限します。単一のクラスタでは、中規模のデプロイメント (それぞれ並列度 64) の数を 32 に制限します。そうしないと、ハートビートタイムアウトなどの問題が発生し、クラスタの安定性に影響を与える可能性があります。 この場合、ハートビート間隔とハートビートタイムアウト期間を増やす必要があります。
より多くのタスクを並行して実行する場合は、セッションクラスタのリソース構成を増やす必要があります。
手順
ステップ 1:セッションクラスタを作成する
セッションクラスタページに移動します。
Apache Flink 用 Realtime Compute コンソール にログインします。
管理するワークスペースを見つけ、[アクション] 列の [コンソール] をクリックします。
左側のナビゲーションウィンドウで、
を選択します。
セッションクラスタページの左上隅にある [セッションクラスタの作成] をクリックします。
パラメータを構成します。
次の表にパラメータを示します。
セクション
パラメータ
説明
[標準]
[名前]
作成するセッションクラスタの名前。
[デプロイメントターゲット]
ドラフトがデプロイされるキュー。 キューの作成方法の詳細については、「キューの管理」をご参照ください。
[状態]
クラスタの望ましい状態。 有効な値:
[実行中]: クラスタは構成後も実行を続けます。
[停止]: クラスタは構成後に停止し、クラスタにデプロイされたデプロイメントも停止します。
[ラベルキー]
[ラベル] セクションでデプロイメントのラベルを構成できます。 これにより、[概要] ページでデプロイメントを効率的に見つけることができます。
[ラベル値]
該当なし
[構成]
[エンジンバージョン]
現在のデプロイメントで使用される Flink エンジンのバージョン。 エンジンバージョンの詳細については、「エンジンバージョン」と「ライフサイクルポリシー」をご参照ください。 推奨バージョンまたは安定バージョンを使用することをお勧めします。 エンジンバージョンは次のタイプに分類されます。
[推奨]: 最新のメジャーバージョンの最新のマイナーバージョン。
[安定]: プロダクトのサービス期間内にあるメジャーバージョンの最新のマイナーバージョン。 以前のバージョンの欠陥は、このようなバージョンで修正されています。
[標準]: プロダクトのサービス期間内にあるその他のマイナーバージョン。
[非推奨]: プロダクトのサービス期間を超えたバージョン。
[flink 再起動ポリシー]
有効な値:
[障害率]: 指定された間隔内の障害の数が上限を超えた場合、JobManager が再起動されます。
このオプションを選択する場合は、[障害率間隔]、[間隔ごとの最大障害数]、および [再起動試行間の遅延] パラメータを構成する必要があります。
[固定遅延]: JobManager は一定の間隔で再起動されます。
このオプションを選択する場合は、[再起動試行回数] と [再起動試行間の遅延] パラメータを構成する必要があります。
[再起動なし]: タスクが失敗しても JobManager は再起動されません。
重要このパラメータを空のままにすると、デフォルトの Apache Flink 再起動ポリシーが使用されます。 この場合、タスクが失敗し、チェックポイントが無効になっていると、JobManager は再起動されません。 チェックポイントを有効にすると、JobManager が再起動されます。
[その他の構成]
taskmanager.numberOfTaskSlots: 1
などのその他の Flink 設定を構成します。[リソース]
[taskmanager の数]
デフォルトでは、値は並列度と同じです。
[jobmanager CPU コア]
デフォルト値:1。
[jobmanager メモリ]
最小値:1 GiB。 推奨値:4 GiB。 JobManager メモリは MiB 単位でも測定できます。 たとえば、このパラメータを 1024 MiB または 1.5 GiB に設定できます。
[taskmanager CPU コア]
デフォルト値:2。
[taskmanager メモリ]
最小値:1 GiB。 推奨値:8 GiB。 TaskManager メモリは MiB 単位でも測定できます。 たとえば、このパラメータを 1024 MiB または 1.5 GiB に設定できます。
各 TaskManager のスロット数と、TaskManager で使用可能なリソース量を指定することをお勧めします。 スロット数は、taskmanager.numberOfTaskSlots パラメータで指定されます。 このパラメータを構成するときは、次の点に注意してください。
単一の小さなデプロイメントの場合、単一スロットの CPU とメモリの比率を 1:4 に設定し、各スロットに少なくとも 1 CPU コアと 2 GiB のメモリを構成することをお勧めします。
複雑なデプロイメントの場合、各スロットに少なくとも 1 CPU コアと 4 GiB のメモリを構成することをお勧めします。 デフォルトのリソース構成を使用する場合は、各 TaskManager に 2 つのスロットを構成できます。
各 TaskManager にデフォルトのリソース構成を使用し、スロット数を 2 に設定することをお勧めします。
重要TaskManager リソースが不足していると、TaskManager 上で実行されているデプロイメントの安定性に影響します。 さらに、スロット数を少なく設定すると、TaskManager のオーバーヘッドをタスクに効果的に分散できないため、リソースが十分に活用されません。
TaskManager に大量のリソースを構成すると、TaskManager 上で多数のデプロイメントが実行されることになります。 TaskManager に障害が発生した場合、すべてのデプロイメントが影響を受けます。
[ロギング]
[ルートログレベル]
次のログレベルがサポートされており、重要度の低い順にリストされています。
TRACE: DEBUG ログよりも詳細な情報を記録します。
DEBUG: システムの状態を記録します。
INFO: 重要なシステム情報を記録します。
WARN: 潜在的なエラーに関する情報を記録します。
ERROR: 発生したエラーと例外に関する情報を記録します。
[ログレベル]
ログの名前とレベル。
[ロギングプロファイル]
ログテンプレート。 デフォルトまたはカスタムのプロファイルテンプレートを選択できます。
説明Flink と Kubernetes や Yarn などのリソースオーケストレーションフレームワークとの統合に関連するオプションの詳細については、「リソースオーケストレーションフレームワーク」をご参照ください。
[セッションクラスタの作成] をクリックします。
セッションクラスタが作成された後、ドラフトのデバッグまたはデプロイメントで使用できます。
ステップ 2:ドラフトをデバッグする
左側のナビゲーションウィンドウで、
を選択します。 デバッグする SQL ドラフトを選択します。SQL エディターの右上隅にある [デバッグ] をクリックします。 [デバッグ] ダイアログボックスが表示されます。 [セッションクラスタ] ドロップダウンリストからセッションクラスタを選択します。 次に、[次へ] をクリックします。
デバッグデータを構成します。
デバッグにオンラインデータを使用する場合は、[確認] をクリックします。
モックデータを使用する場合は、[モックデータテンプレートのダウンロード] をクリックし、テンプレートにモックデータを入力してから、[モックデータのアップロード] をクリックしてテンプレートをアップロードします。
次の表に、このステップのパラメータを示します。
パラメータ
説明
[モックデータテンプレートのダウンロード]
テンプレートは、ソーステーブルのスキーマに適合しています。
[モックデータのアップロード]
モックデータを使用してドラフトをデバッグするには、モックデータテンプレートをダウンロードし、テンプレートを編集し、テンプレートをアップロードします。 次に、[モックデータを使用する] を選択します。
モックデータファイルの使用に関する制限:
CSV ファイルのみがサポートされています。
CSV ファイルには、id(INT) などのテーブルヘッダーが含まれている必要があります。
CSV ファイルには最大 1,000 件のデータレコードを含めることができ、1 MB を超えることはできません。
[データプレビュー]
モックデータをアップロードした後、ソーステーブル名の左側にある
アイコンをクリックしてデータをプレビューし、モックデータをダウンロードします。
[コードプレビュー]
デバッグ機能は、ソーステーブルと結果テーブルの DDL 文を自動的に変更します。 ただし、ドラフトコードは変更されません。 [コードプレビュー] の下部でコードの詳細をプレビューできます。
[確認] をクリックします。
[確認] をクリックすると、デバッグ結果が SQL スクリプトエディターの下部に表示されます。
参照
ドラフトを開発およびデバッグした後にドラフトをデプロイする方法については、「デプロイメントの作成」をご参照ください。
ドラフトがデプロイされた後にドラフトのデプロイメントを開始する方法については、「デプロイメントの開始」をご参照ください。
Flink JAR ドラフトと Flink Python ドラフトをデバッグする方法については、「JAR ドラフトの開発」または「Python API ドラフトの開発」をご参照ください。
SQL ドラフトを作成およびデプロイし、ドラフトのデプロイメントを開始する方法については、「SQL デプロイメントの使用を開始する」をご参照ください。