ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド

[目次][索引][前へ][次へ]

4.3.1 クエリの再実行

トラブル発生時にトラブルの現象を再現したい場合や,集計・分析結果を再度確認したい場合など,特定の時間だけデータを再入力してクエリを実行したいときにクエリの再実行をします。

クエリの再実行には,sdptplputコマンドを使用します。再実行する対象のデータとして,タプルログファイルに取得した入力タプルの情報を使用します。コマンドを実行すると,タプルログファイルに取得したタプル情報から,タプルが入力ストリームキューに再投入されます。また,タプルの再投入が終了したあと,すべての入力ストリームキューに対してputEndメソッドが実行され,クエリグループが初期化されます。

クエリの再実行の結果は,sdptpllsコマンドを使用してタプルログに取得した出力ストリームキューのタプル情報を表示して確認します。

クエリを再実行し,実行結果を確認する場合のデータの流れを次の図に示します。

図4-2 クエリの再実行のデータの流れ

[図データ]

  1. sdptplputコマンドを実行して(タプルログAを指定),タプルを再投入します。
  2. 投入したタプルに対し,クエリが再実行されます。
  3. sdptpllsコマンドを実行して(タプルログBを指定),タプル情報を確認します。

クエリを再実行できる範囲,クエリを再実行する手順,およびクエリを再実行するときの注意事項について説明します。

<この項の構成>
(1) クエリを再実行できる範囲
(2) クエリを再実行する手順
(3) クエリを再実行するときの注意事項

(1) クエリを再実行できる範囲

クエリの再実行は,サーバモードの場合とデータソースモードの場合で再実行できる範囲が異なります。再実行できる範囲を次に示します。

タイムスタンプ調整の機能については,「11.8 タプルのタイムスタンプの調整」を参照してください。

(2) クエリを再実行する手順

取得したタプルログファイルを使用してクエリを再実行します。クエリの再実行は,タプルログを取得した環境と異なる環境でも実行できますが,デフォルト文字コードが同じ環境で実行してください。

なお,この例では,クエリの再実行をする環境はタプルログを取得した環境と異なる環境とします。

  1. クエリを再実行する環境に必要なファイルをコピーします。
    再実行するクエリグループのクエリ定義ファイル,クエリグループ用プロパティファイルおよびタプルログファイルを,タプルを取得した環境から再実行する環境にコピーします。
  2. タプルログを取得するための設定をします。
    クエリグループ用プロパティファイルのtpl.outputTriggerパラメーターにBUFFERを指定し,出力ストリームキューのタプルログを取得するようにします。また,サーバモードで取得したタプルログファイルを使用する場合だけ,stream.tupleLogModeパラメーターにtrueを指定します。
  3. 再実行するクエリグループを登録します。
    sdpcqlコマンドで再実行するクエリグループを登録します。
  4. 再実行するクエリグループを開始します。
    sdpcqlstartコマンドで再実行するクエリグループを開始します。
  5. クエリを再実行します。
    sdptplputコマンドでタプルログファイルからタプルを再投入し,クエリを再実行します。
  6. 結果を確認します。
    出力ストリームキューのタプルログファイルの内容をsdptpllsコマンドで表示し,結果を確認します。

sdpcqlコマンド,sdpcqlstartコマンド,sdptplputコマンド,またはsdptpllsコマンドについては,「7. コマンド」の「sdpcql(クエリグループの登録)」,「sdpcqlstart(クエリグループの開始)」,「sdptplput(タプルの再投入)」,または「sdptplls(タプル情報の表示)」を参照してください。

(3) クエリを再実行するときの注意事項