ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド
それぞれのウィンドウ演算の例を示します。
ここでは,次の図に示す構成のストリームデータが到着した場合を例に,それぞれのウィンドウの指定によって作成される入力リレーションについて説明します。
図2-6 ウィンドウ演算の例で使用するタプルの構成
図の横軸は時間軸です。右に行くほど時間が経過しています。t1〜t6は,タプルが到着した時刻を示します。また,各タプルは,「銘柄名,値上がり率」で構成されています。
ここでは,[ROWS 3]を指定した場合のウィンドウ演算の例について説明します。この指定は,入力リレーション内に同時に生存するタプル数が3であることを示します。
[ROWS 3]を指定した場合の入力リレーション内の各タプルの生存期間について,次の図に示します。
図2-7 [ROWS 3]を指定した場合の入力リレーション内の各タプルの生存期間
時刻がt1,t2,t3と経過していく中で,「(A社,1.0)」「(A社,0.8)」「(B社,1.1)」のタプルが順次到着し,入力リレーションに生成されていきます。
時刻t4に「(A社,1.0)」のタプルが到着して,同時生存タプル数が3を超えた時点で,入力リレーション内でいちばん古いタプルの生存期間が終了します。この例では,時刻t1に生成された「(A社,1.0)」のタプルが入力リレーションから削除されて,時刻t4に到着した「(A社,1.0)」のタプルが新たに入力リレーションに生成されます。
ここでは,[RANGE 1 SECOND]を指定した場合のウィンドウ演算の例について説明します。この指定は,入力リレーション内の各タプルの生存期間を1秒とすることを示します。
リレーション内に生成された各タプルは,その後到着するタプルの個数には関係なく,1秒たつと消滅します。
[RANGE 1 SECOND]を指定した場合の入力リレーション内の各タプルの生存期間について,次の図に示します。
図2-8 [RANGE 1 SECOND]を指定した場合の入力リレーション内の各タプルの生存期間
t1〜t4の時刻に到着したタプルは,ほかのタプルの到着状況に関係なく,1秒たつと消滅します。
ここでは,[NOW]を指定した場合のウィンドウ演算の例について説明します。この指定は,入力リレーション内に現時刻のタプルだけを保持することを示します。
[NOW]を指定した場合の入力リレーション内の各タプルの生存期間について,次の図に示します。
図2-9 [NOW]を指定した場合の入力リレーション内の各タプルの生存期間
[NOW]を指定した場合,入力リレーション内のタプルは到着した時刻にだけ生存しています。一度演算処理が実行されたタプルは入力リレーションから消滅します。
ここでは,[PARTITION BY 銘柄名 ROWS 1]を指定した場合のウィンドウ演算の例について説明します。この指定は,入力リレーション内に銘柄ごとに,ROWSに指定した個数ずつのタプルを保持することを示します。
[PARTITION BY 銘柄名 ROWS 1]を指定した場合の入力リレーション内の各タプルの生存期間について,次の図に示します。
図2-10 [PARTITION BY 銘柄名 ROWS 1]を指定した場合の入力リレーション内の各タプルの生存期間
この指定は,銘柄名A社およびB社ごとに,タプルを1個ずつ保存する指定です。
時刻t1に到着した「(A社,1.0)」のタプルが入力リレーションに生存している状態で時刻t2に「(A社,0.8)」のタプルが到着すると,t1に到着した「(A社,1.0)」のタプルが消滅して「(A社,0.8)」のタプルが入力リレーション内に生成されます。続いて時刻t3に「(B社,1.1)」のタプルが到着した場合は,銘柄名が異なるため,「(A社,0.8)」のタプルは消滅しないまま,新たに「(B社,1.1)」のタプルが生成されます。時刻t2に到着した「(A社,0.8)」のタプルは時刻t4に「(A社,1.0)」のタプルが到着するまで,時刻t3に到着した「(B社,1.1)」のタプルは時刻t6に「(B社,1.3)」のタプルが到着するまで,それぞれ入力リレーション内で保持されます。
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.