Realtime Compute 開発プラットフォームは、Realtime Compute ジョブ用のオンラインデバッグ機能を提供します。 ローカルデバッグと比較して、オンラインデバッグはより多くのリソースを消費しますが、より信頼できる方法でビジネスロジックを検証します。

オンラインデバッグは、実際のデータストレージリソースを使用して、デバッグでの出力と本番環境での出力の違いを効果的に減らし、デバッグの段階で問題を特定するのに役立ちます。

手順

  1. ジョブの開発 ジョブの開発方法の詳細については、次をご参照ください: ジョブの開発
  2. データ ストレージリソースのデータ定義言語 (DDL) ステートメントの type パラメーターを変更します。
    • ソーステーブル: type = 'random'
    • 結果テーブル: type = 'print'
  3. ジョブを公開します。 ジョブの公開方法の詳細については、「ジョブの公開」をご参照ください。
  4. ジョブを開始します。 ジョブの開始方法の詳細については、「ジョブの開始」をご参照ください。

コネクタ

Realtime Compute 開発プラットフォームは、オンラインデバッグ用に次の 2 種類のコネクタを提供します。
  • Random ソーステーブル: 対応するタイプのランダムデータを定期的に生成します。
  • Print 結果テーブル: 計算結果を生成します。

コネクタテーブルパラメーター

  • ランダムテーブルパラメーター
    パラメーター 説明
    type 必須。 コネクタのタイプ。 値はランダムにのみ設定できます。
    interval 任意。 データ生成の時間間隔 (ミリ秒単位)。 デフォルト値: 500。
  • プリントテーブルパラメーター
    パラメーター 説明
    type 必須。 コネクタのタイプ。 値はプリントにのみ設定できます。
    ignoreWrite 任意。 書き込み操作を無視するかどうかを指定します。 デフォルト値: false。 有効値は次のとおりです。
    • false: データが結果テーブルに書き込まれ、対応するログが生成されます。
    • true: データは結果テーブルに書き込まれません。 結果テーブルは空で、ログは生成されません。

  • テストコード
    CREATE TABLE random_source (
      instr VARCHAR
    ) WITH (
      type = 'random'
    );
    
    CREATE TABLE print_sink(
      instr VARCHAR,
      substr VARCHAR,
      num INT
    )with(
      type = 'print'
    );
    
    INSERT INTO print_sink
    SELECT
      instr,
      SUBSTRING(instr,0,5) AS substr,
      CHAR_LENGTH(instr) AS num
    FROM random_source
  • テスト結果

オンラインデバッグ結果の照会手順

  • オンラインデバッグ結果を照会する前に、ジョブの公開およびジョブの開始を実行済みであることを確認します。
  • オンラインデバッグは計算ユニット (CU) をいくらか消費します。

オンラインデバッグの結果を照会するには、次の手順に従います。

  1. Realtime Compute Console にログインします。
  2. 上部のナビゲーションバーで [管理] をクリックして、[管理] ページに移動します。
  3. [ジョブ名] フィールドの下にある対象のジョブ名をクリックして、[ジョブ管理] ページに移動します。
  4. [頂点トポロジー] セクションで、対応する結果テーブルのノードをクリックします。
  5. 頂点の実行ページの上部で、[サブタスクリスト] をクリックし、[アクション] 列の [ログの表示] をクリックして [ログの表示] ページに移動します。
  6. 対応するログを表示します。
    • プリント結果テーブルの出力

      taskmanager.out の [アクション] 列で [ログの表示] をクリックします。

    • UDX ログ

      ユーザー定義の拡張子 (「UDX の概要」) を使用している場合、次の 2 つの方法のいずれかを使用してログを表示できます。

      • System.out メソッドまたは System.err メソッド

        taskmanager.out または taskmanager.err の [アクション] 列の [ログの表示] をクリックします。

      • SLF4J Logger メソッド

        taskmanager.log の [アクション] 列の [ログの表示] をクリックします。