JP4659877B2 - ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム - Google Patents

ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム Download PDF

Info

Publication number
JP4659877B2
JP4659877B2 JP2008308463A JP2008308463A JP4659877B2 JP 4659877 B2 JP4659877 B2 JP 4659877B2 JP 2008308463 A JP2008308463 A JP 2008308463A JP 2008308463 A JP2008308463 A JP 2008308463A JP 4659877 B2 JP4659877 B2 JP 4659877B2
Authority
JP
Japan
Prior art keywords
stream data
control
data
query
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008308463A
Other languages
English (en)
Other versions
JP2010134599A (ja
Inventor
智 鳥飼
慎一 田中
格 西澤
常之 今木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008308463A priority Critical patent/JP4659877B2/ja
Priority to US12/457,577 priority patent/US8024350B2/en
Publication of JP2010134599A publication Critical patent/JP2010134599A/ja
Application granted granted Critical
Publication of JP4659877B2 publication Critical patent/JP4659877B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストリームデータ処理システムを制御する技術に関する。
近年、時々刻々と到着する大量のデータ(ストリームデータ)を受信し、リアルタイムで処理するストリームデータ処理システムに対する要求が高まっている。例えば、株取引を支援するファイナンシャルアプリケーションでは、株価の変動に迅速に対応することが最重要の課題の一つである。従来のデータベース管理システム(DBMS)でデータを処理する場合には、受信した株式データを一旦記憶装置に格納する必要があった。今後、さらに大量の株式データを扱う場合に、株価の変動などにリアルタイムで対応することが困難になる可能性がある。
また、ストリームデータをリアルタイムに処理するアプリケーションを個別に作成すると、開発期間の長期化、開発コストの高騰、アプリケーションを利用する業務の変化への迅速な対応が困難といった問題があり、汎用のストリームデータ処理システムが求められている。
ストリームデータ処理システムでは、まず、クエリ(問合せ)をシステムに登録し、ストリームデータの到着とともにクエリが継続的に実行される。しかし、ストリームデータは時々刻々と到着するため、すべてのデータの到着を待ってから処理を開始することは不可能である。また、システムに到着したデータは、データ処理の負荷に影響されることなく、到着順にしたがって処理される必要がある。
非特許文献1に開示された技術では、ストリームデータを、最新10分間などの時間の幅、又は最新1000件などの個数の幅を指定してストリームデータの一部を切り取りながらリアルタイム処理が実現される、スライディングウィンドウ(以下「ウィンドウ」)と呼ばれる概念を導入している。
また、データを取得するためのクエリを記述するための言語として、ウィンドウを指定可能なCQL(Continuous Query Language)が非特許文献1に開示されている。CQLは、DBMSで広く用いられているSQL(Structured Query Language)が拡張されたものであって、ウィンドウの指定が可能となっている。具体的にCQLを利用する技術などについては、例えば、特許文献2などに開示されている。
しかし、ストリームデータは、時々刻々と到着するデータであるため、ストリームデータ処理システムの処理挙動を受信したデータに基づいて変更しようとしても、区切りとなるデータを特定することができない。一方、ストリームデータを送信する側、例えばストリームデータ送信アプリケーションでは、区切りとなるデータが把握されている。そこで、ストリームデータの区切りを把握するための技術として、ストリームデータ(MPEG等の画像)を構成するパケットに付与されたパケット識別子に基づいてパケットフィルタを介して処理対象(デコード処理)を判別する技術が特許文献1に開示されている。
特開2003−298661号公報 特開2006−338432号公報 R.Motwani、J.Widom、A.Arasu、B.Babcock、S.Babu、M.Datar、G.Manku、C.Olston、J.Rosenstein、and R. Varma著:"Query Processing、 Resource Management、 and Approximation in a Data Stream Management System"、In Proc. of the 2003 Conf. on Innovative Data Systems Research(CIDR)、January 2003
しかし、特許文献1に開示された技術は、入力ストリームデータを構成するパケットに対して、必ず一意の出力処理結果があり、かつ、パケット識別子に基づいてパケットごとに独立して処理可能な場合にのみ適用可能である。非特許文献1に開示されたようなウィンドウ機構を有するストリームデータ処理システムでは、ウィンドウ内のタプルが、タプル生存個数などに基づく関連性を有することから、タプルごとに独立して処理することはできないため、特許文献1に開示された技術によって前述した課題を解決することはできない。
リアルタイムアプリケーションで利用されるストリームデータ処理システムでは、クエリの変更、特定区間の性能情報の取得など、ストリームデータ処理の制御の変更をリアルタイムアプリケーション側で把握することが必要である。
本発明は、ストリームデータ処理の制御の変更をリアルタイムアプリケーション側で判断する技術を実現することを目的とする。
本発明の代表的な一形態によれば、時刻情報が付与されたデータを時系列に受信して登録されているクエリについてデータ処理するストリームデータ処理装置を制御する方法であって、前記ストリームデータ処理装置は、前記データを受信するインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、前記記憶部には、前記データを処理するためのクエリと、前記クエリによって前記受信されたデータが処理される時に格納されるウィンドウと、前記ストリームデータ処理装置の制御内容を含む制御管理情報と、が記憶され、前記制御管理情報には、前記制御内容を識別する制御コードが含まれ、前記ストリームデータ処理装置が前記データを受信した場合は、前記制御管理情報に基づいて、前記制御コードを含むデータを生成し、前記受信したデータを前記ウィンドウに格納する場合は、前記ウィンドウに格納されるデータに前記制御コードが含まれているか否かを判定し、前記ウィンドウに格納されるデータに前記制御コードが含まれている場合には、前記データに含まれている制御コードに基づいて、前記ストリームデータ処理装置を制御することを特徴とする。
本発明の一形態によれば、ストリームデータに付与された制御コードに基づいて、リアルタイムアプリケーション側でストリームデータ処理の制御の変更を判断することが可能となる。
図1は、本発明の実施の形態のストリームデータ処理システムを含む計算機システムの一例を示す図である。
本発明の実施の形態の計算機システムは、サーバ計算機101を含む。サーバ計算機101は、時々刻々と到着するストリームデータを受信し、受信したストリームデータを処理する。
ストリームデータ処理システム107は、ストリームデータを処理し、サーバ計算機101上で実行されるプログラムとして実装される。また、サーバ計算機101に搭載される専用ハードウェアとして実装してもよい。
サーバ計算機101は、主記憶102、補助記憶装置103、出力装置104、プロセッサ105、入力装置106A及びインタフェース106Bを備える。サーバ計算機101は、例えば、ブレード型計算機システム、PCサーバなどの計算機システムであってもよい。
主記憶102は、プロセッサ105によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。主記憶102は、例えば、高速にアクセス可能な揮発性記憶媒体である。
主記憶102には、ストリームデータを処理するストリームデータ処理システム107が記憶される。ストリームデータ処理システム107は、プロセッサ105によって実行されることによって、サーバ計算機101の各構成と連携し、ストリームデータを処理する。ストリームデータ処理システム107の詳細については後述する。
補助記憶装置103は、サーバ計算機101で実行されるプログラム及びデータなどを格納する記憶装置である。補助記憶装置103には、例えば、サーバ計算機101で受信されたストリームデータを格納する。補助記憶装置103は、ネットワークなどを介して接続された外部記憶装置であってもよい。
出力装置104は、ストリームデータ処理システム107によって処理された結果124を出力する。また、サーバ計算機101の管理情報などを出力する。出力装置104は、例えば、情報を表示するディスプレイである。
プロセッサ105は、主記憶102に記憶されたプログラムを処理することによって各種処理を実行する。
入力装置106Aは、ストリームデータ処理システム107で実行させるクエリ122の入力を受け付ける。また、サーバ計算機101又はストリームデータ処理システム107を制御するためのコマンド121の入力を受け付ける。さらに、ストリームデータソース123からストリームデータの入力を直接受け付けることも可能である。インタフェース106Bは、ネットワーク125に接続される。
サーバ計算機101は、ストリームデータを送信するクライアント計算機に接続される。図1に示す計算機システムでは、クライアント計算機1(126)及びクライアント計算機2(132)がネットワーク125を介してストリームデータ処理システム107を実行するサーバ計算機101に接続されている。
ネットワーク125は、イーサネット(登録商標)、光ファイバなどで接続されるローカルエリアネットワーク(LAN)、又はLANよりも低速なインターネットを含むワイドエリアネットワーク(WAN)であってもよい。また、クライアント計算機(126、132)はパーソナルコンピュータ、ブレード型の計算機システムなどの任意のコンピュータシステムでよい。
クライアント計算機1(126)は、プロセッサ137、主記憶138及びインタフェース(I/F)139を備える。主記憶138には、プロセッサ137によって実行されるアプリケーション1(127)が記憶される。アプリケーション1(127)では、コマンド128及びクエリ129の入力を受け付け、サーバ計算機101に送信する。さらに、ストリームデータソース130から入力されたストリームデータを、I/F139を介してネットワーク125からサーバ計算機101に送信する。そして、ストリームデータがサーバ計算機101によって処理された結果を受信し、結果131を出力する。
クライアント計算機2(132)は、プロセッサ141、主記憶142及びI/F143を備える。主記憶142には、プロセッサ141によって実行されるアプリケーション2(133)が記憶される。アプリケーション2(133)では、クライアント計算機2(132)がI/F143を介してネットワーク134からストリームデータソース135からストリームデータを受信し、I/F143を介してネットワーク125からサーバ計算機101に送信する。
以上のように、サーバ計算機101は、直接ストリームデータを受信してもよいし、クライアント計算機を介してストリームデータを受信してもよい。また、受信するストリームデータの例としては、前述したファイナンシャルアプリケーションにおける株価配信情報の他に、小売業におけるPOSデータ、交通情報システムにおけるプローブカー情報、計算機システム管理におけるエラーログなどが挙げられる。
ここで、ストリームデータ処理システム107の構成について説明する。ストリームデータ処理システム107は、ストリームデータ処理システム管理部108、コマンド管理部109、クエリ管理部112、データ管理部113、クエリ処理管理部116、制御管理表119、及びクエリリポジトリ120を含む。
ストリームデータ処理システム107は、ストリームデータ処理システム管理部108によって管理される。
コマンド管理部109は、入力装置106Aを介して入力されたストリームデータ処理システムを制御するコマンド121を処理する。コマンド管理部109は、コマンド解析部110及びコマンド実行部111を含む。
コマンド解析部110は、入力されたコマンド121を構文解析する。コマンド実行部111は、コマンド121の解析結果に基づいて、制御情報を制御管理表119に登録する。制御管理表119は、制御情報及び制御内容が格納される。制御管理表119の詳細については、図5にて後述する。
なお、コマンド管理部109によって処理されるコマンドは、サーバ計算機101に直接入力されたコマンド121でもよいし、クライアント計算機1(126)に入力されたコマンド128がネットワーク125経由でサーバ計算機101に入力されたものでもよい。
クエリ管理部112は、入力装置106Aを介して入力されたクエリ122を構文解析する。さらに、解析されたクエリを最適化して実行形式を生成する。最後に、生成されたクエリ実行形式をクエリリポジトリ120に格納する。なお、クエリリポジトリ120は、サーバ計算機101の主記憶102に保持されてもよいし、サーバ計算機101に備えられる補助記憶装置103に格納されてもよい。
なお、クエリ管理部112によって処理されるクエリは、サーバ計算機101に直接入力されたクエリ122でもよいし、クライアント計算機1(126)に入力されたクエリ129がネットワーク125経由でサーバ計算機101に入力されたものでもよい。
データ管理部113は、入力装置106Aを介して入力されたストリームデータを処理する。データ管理部113は、データ入出力部114及び制御コード設定部115を含む。
データ入出力部114は、入力されたストリームデータをストリームデータ入力キューに格納する。制御コード設定部115は、ストリームデータ入力キューに格納されたストリームデータに制御管理表119に登録されている制御情報を設定する。
クエリ処理管理部116は、クエリ処理制御部117及びクエリ処理部118を含む。クエリ処理制御部117は、入力された処理対象のストリームデータに付与された制御情報と、制御管理表119に登録されている制御内容に基づいて、クエリ処理を制御する。クエリ処理部118は、クエリリポジトリ120に格納されているクエリ実行形式に基づいて、入力された処理対象のストリームデータを処理する。
クエリ処理結果は、データ入出力部114によってストリームデータ出力キューに格納される。さらに、出力装置104を介して、結果124として出力される。クエリ処理結果は、サーバ計算機101のストリームデータ処理システム107から直接出力してもよいし、ネットワーク125を経由して、クライアント計算機1(126)から結果131として出力してもよい。
なお、ストリームデータ処理システム内部でストリームデータを格納する方法、受け付けられたクエリの解析、最適化及び生成されたクエリ実行形式の登録方法などについては、特許文献2に開示された技術を用いればよい。
本発明の実施の形態で対象とするストリームデータは、時々刻々と到着し、件数が大量であるが、1件あたりのデータ量は比較的小さく、各データは論理的に独立している。本発明の実施の形態では、このようなストリームデータを処理するために、前述したようにウィンドウの概念に基づいてクエリを処理する。
ストリームデータは、DBMSで取り扱われるテーブル(表)のような静止化されたデータではなく、切れ目のないストリームデータであるため、ストリームデータのどの部分を対象とするかを指定しなければ処理することは不可能である。そこで、前述したように、指定された期間又は個数のストリームデータを区切ってデータを切り出すスライディングウィンドウ(ウィンドウ)の概念を適用する。ウィンドウは、データの生存期間(演算対象となる期間)を定める演算(ウィンドウ演算)と捉えることができる。ストリームデータは、ウィンドウ演算によって生存期間が特定され、1以上のデータ値及びタイムスタンプを含むストリームタプルが生成される。
図2は、本発明の実施の形態のクエリ処理部118の構成の一例を示すブロック図である。
クエリ処理部118は、メモリマネージャ201、ウィンドウマネージャ202、集約計算モジュール206及びクエリ処理に必要なオペレータ213を含む。
メモリマネージャ201は、ウィンドウマネージャ202、集約計算モジュール206及びクエリ処理に必要なオペレータ213を管理する。
ウィンドウマネージャ202は、クエリで指定されたウィンドウ演算をストリームデータに適用してストリームタプルを生成し、ストリームタプルのシステム内での生存期間を設定する。ストリームデータがウィンドウに挿入される時が生存期間の開始時刻、ウィンドウからストリームデータが削除される時が生存期間の終了時刻に相当する。
集約計算モジュール206は、総和計算オペレータ207、最大値計算オペレータ208、一時保存バッファ209及び集約計算処理に必要なオペレータ210を含む。一時保存バッファ209には、各オペレータによって実行された集約計算結果が一時的に保持される。
総和計算オペレータ207は、ウィンドウ内のデータの総和を計算する。最大値計算オペレータ208は、ウィンドウ内のデータの最大値を計算する。集約計算処理に必要なオペレータ210には、その他の集約計算処理に必要なオペレータが含まれ、例えば、最小値を計算する最小値計算オペレータ211及び平均値を計算する平均値計算オペレータ212が含まれる。
ここで、ウィンドウマネージャ202について、さらに詳しく説明する。ウィンドウマネージャ202は、ストリームタプル保持バッファ205、生存期間決定部203、及び差分情報生成部204を含む。
ウィンドウマネージャ202は、ストリームデータの入力を受け付けると、ストリームタプルを生成する。さらに、生成されたストリームタプルをストリームタプル保持バッファ205に格納し、生存期間決定部203に通知する。
生存期間決定部203は、ウィンドウ演算によって各ストリームタプルの生存期間を決定し、生存期間が終了するストリームタプルをストリームタプル保持バッファ205から消去する。
差分情報生成部204は、ストリームタプルがストリームタプル保持バッファ205に格納されたタイミングで、プラスタプルを生成し、差分情報として出力する。同様に、ストリームタプルがストリームタプル保持バッファ205から消去されるタイミング(ストリームタプルの生存期間が終了するタイミング)でマイナスタプルを生成し、同様に差分情報として出力する。
ストリームタプル保持バッファ205及び一時保存バッファ209は、クエリ処理部118内のメモリマネージャ201によってサーバ計算機101の主記憶102に割り当てられる。なお、要求される性能要件及び信頼性要件に適合すれば、補助記憶装置103にストリームタプル保持バッファ205及び一時保存バッファ209を割り当ててもよい。
クエリ処理に必要なオペレータ213には、所定の条件を満たすデータを選択する選択オペレータ214、及び所定の条件を満たすデータを結合する結合オペレータ215などが含まれる。
以下、本発明の実施の形態のストリームデータ処理システムの制御方法について説明する。まず、具体的な手順を説明する前に、データを取得するためのクエリ及びコマンドを示す。さらに、ストリームデータに付与される制御コードを具体例を参照しながら説明する。
図3Aは、本発明の実施の形態のストリームデータ処理システムで実行されるクエリ301を示す図である。
クエリ301は、ウィンドウ演算を含む集約処理を実行するためのクエリである。具体的には、sensorストリーム(入力されるストリームデータの識別子)のOutputカラムの値の総和を計算する。ウィンドウの指定は、[rows 2]となっており、最新2つのデータに対するウィンドウ演算を指示している。
また、ウィンドウを指定する方法としては、ウィンドウの幅をデータ数で指定するRowウィンドウ以外にも、指定された期間に到着したストリームデータを処理するRangeウィンドウがある。Rangeウィンドウの場合には、例えば、[Range 10 minutes]とすると、最新の10分間分がクエリ処理の対象となる。
図3Bは、本発明の実施の形態のストリームデータ処理システムで実行されるクエリ302を示す図である。
クエリ302は、sensorストリームのOutputカラムの値の最大値を計算する。入力されるストリームデータなどは、図3Aに示したクエリ301と同様である。
図4Aから図4Eは、本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定無し)の一例を示す図である。
図4Aに示すコマンド401から405は、コマンドが入力されると、即座に入力されたコマンドに従って処理が開始される。
具体的に各コマンドについて説明すると、コマンド401は、クエリQ1を開始するコマンドである。コマンド402は、実行されているクエリをクエリQ1からクエリQ2に変更するコマンドであって、換言すると、クエリQ1を終了してクエリQ2を開始するコマンドである。
コマンド403は、クエリQ2に対して性能情報を取得するためのモニタ処理を開始するコマンドである。コマンド404は、クエリQ2に対して性能情報を取得するためのモニタ処理を終了するコマンドである。コマンド405は、ストリームデータ処理システムを終了するコマンドである。
図4Fは、本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定有り)の一例を示す図である。
コマンド406は、入力されるとすぐにクエリQ1が開始される。そして、10:00になると、クエリQ1の実行が停止され、さらにクエリQ2の実行が開始される。さらに、11:00にクエリQ2に対して性能情報を取得するためのモニタ処理を開始し、12:00にクエリQ2に対して性能情報を取得するためのモニタ処理を終了する。そして、17:00になると、ストリームデータ処理システム107を終了させる。
図5は、本発明の実施の形態の制御管理表119の具体例を示す図である。
制御管理表119は、制御コード502、制御時刻503、制御種別504、オプション1(505)及びオプション2(506)を含む。
制御コード502は、実行される制御を識別するコードである。制御時刻503は、制御が実行される時刻である。制御種別504は、実行される制御の種類を表す。オプション1(505)及びオプション2(506)は、制御種別を補完するオプション情報であって、コマンド実行時に使用されるパラメータなどである。
図5に示す制御管理表119は、図4に示したコマンド406に対応する。前述のように、コマンド406が入力されると、コマンド解析部110によって解析され、コマンド実行部111によって解析結果が制御管理表119に登録される。
具体的に説明すると、コマンド406では、最初に時間指定無しでクエリQ1が実行される。この場合には、詳細については図7から図9を参照しながら説明するが、ストリームデータ入力キューに格納された先頭のストリームデータに制御コードが付与され、制御管理表119に登録される。クエリQ1が実行されると、制御管理表119から対応するレコードが削除される。図5には、クエリQ1の実行が開始された後の状態が示されている。また、時刻が指定されていない場合には、制御管理表119にレコードを追加せずに、入力されたコマンドに基づいて即時処理を実行するようにしてもよい。
続いて、10:00にクエリQ1の実行を停止し、クエリQ2の実行を開始することによってクエリを切り替えるChangeコマンドが実行される。このChangeコマンドに対応して、制御コード502が「1」、制御時刻503が「10:00」、制御種別504が「Change」、オプション1が「Q1」、オプション2が「Q2」であるレコードが生成される。
同様に、性能情報取得を開始する「Start Monitor」、性能情報取得を終了する「Stop Monitor」、ストリームデータ処理システム107を終了する「Shutdown」に対応するレコードがそれぞれ生成される。
図6Aは、本発明の実施の形態のサーバ計算機101に入力されるストリームデータソースの構成の一例を示す図である。
ストリームデータソースは、サーバ計算機101に対するストリームデータの送信元であるが、実体は計算機などである。図6Aに示すストリームデータソース601には、送信されるデータの一覧が示されており、データを格納するOutputカラム602が含まれる。ストリームデータソース601は、時系列順にデータが格納されており、値が30であるストリームデータ603が最初に送信される。なお、ストリームデータには複数のデータ値の組によって構成されていてもよい。
図6Bは、本発明の実施の形態の受信したストリームデータに基づいて生成されたストリームタプルの一例を示す図である。
サーバ計算機101は、ストリームデータソース601から送信されたストリームデータを受信すると、受信した時刻に基づいて、ストリームタプルを生成する。図6Bに示す例では、ストリームデータ処理システム107によってストリームデータを受け付けられた時刻をタイムスタンプとして付与するシステムタイムスタンプモードの例である。
ストリームタプル604には、System Timeカラム605、Outputカラム及び制御コードカラム607が含まれる。
System Timeカラム605には、サーバ計算機101がストリームデータを受信した時刻が格納され、例えば、「09:02」(606)などの時刻情報が設定される。Outputカラムには、受信したストリームデータが格納される。制御コードカラム607には、ストリームデータ処理システム107の制御コード設定部115で付与された制御コードが設定され、例えば、「1」(608)が設定される。
図6Cは、本発明の実施の形態の受信したストリームデータに基づいて生成されたストリームタプルの別の例を示す図である。
図6Cに示すストリームタプル609は、クライアント計算機1(126)上のアプリケーション1(127)によってストリームデータにタイムスタンプが付与されているアプリケーションタイムスタンプモードの例である。
ストリームタプル609には、AP Timeカラム610、Outputカラム602及び制御コードカラム612が含まれる。
AP Timeカラム610には、クライアント計算機上で処理されたデータに付与されたタイムスタンプが格納され、例えば、「09:01」(611)などの時刻情報が設定される。Outputカラムには、受信したストリームデータが格納される。制御コードカラム612には、ストリームデータ処理システム107の制御コード設定部115で付与された制御コードが設定され、例えば、「1」(613)が設定される。
なお、タイムスタンプモードは、ストリームデータ処理システム管理部108にあらかじめ設定されており、システムタイムスタンプモード又はアプリケーションタイムスタンプモードのいずれか一方が設定される。
以上が、本発明の実施の形態において利用されるクエリ、コマンド、制御管理表119及びストリームデータの一例である。以下、本発明の実施の形態のストリームデータ処理システム107の具体的な処理について説明する。まず、入力されたコマンド406に基づいて、制御管理表119を生成する手順について説明する。
図7は、本発明の実施の形態の制御管理表119を作成する手順を示すフローチャートである。
本処理では、プロセッサ105がコマンド実行部111を実行することによって、入力されたコマンドに基づいて制御管理表119が生成される。
プロセッサ105は、入力されたコマンドがコマンド解析部110によって解析されると、コマンド実行部111の処理を開始する(ステップ701)。本処理は、コマンド解析部110によるコマンドの解析結果に基づいて、制御コードが付与される単位で実行される。例えば、図4に示したコマンド406であれば、各行が対応する。このとき、時刻が指定されていない一行目については処理を制御するストリームデータを特定する必要がないため、制御管理表119の対応するレコードを生成しなくてもよい。
プロセッサ105は、まず、制御管理表119が存在するか否かを判定する(ステップ702)。制御管理表119の各レコードは、対応する制御の実行後に削除される。
プロセッサ105は、制御管理表119が存在しない場合には(ステップ702の結果が「No」)、制御管理表119を新たに作成し、制御コードインデックスを0に初期化する(ステップ703)。
一方、プロセッサ105は、制御管理表119が既に存在している場合には(ステップ702の結果が「Yes」)、制御管理表119から制御コードの最大値を検索し、検索された値を制御コードインデックスとして設定する(ステップ704)。
続いて、プロセッサ105は、制御コードインデックスに1加算し(ステップ705)、当該制御コードインデックスを処理対象のコマンドの制御コードとして、制御管理表119にレコードを追加する(ステップ706)。その後、コマンド実行部111の処理を終了する(ステップ707)。
続いて、受信したストリームデータに制御コードを付与し、ストリームタプルを生成する手順について説明する。
図8は、本発明の実施の形態のストリームデータに制御コードを付与する手順を示すフローチャートである。
本処理では、プロセッサ105が制御コード設定部115を実行することによって、ストリームデータに制御管理表119に格納された制御コードが付与され、ストリームタプル604又はストリームタプル609が生成される。本処理は、制御管理表119が作成された後、ストリームデータ入力キューに格納されたストリームデータに対して実行される。
プロセッサ105は、コマンドの入力を受け付け、ストリームデータの処理を開始すると、受信したストリームデータに対し、制御コード設定部115を実行する(ステップ801)。
プロセッサ105は、まず、制御管理表119に制御時刻503が設定されているか否かを判定する(ステップ802)。制御時刻503が設定されていない場合とは、例えば、図4A〜Eに示したコマンド(402、403、404、405)のように時刻の指定をせずにコマンドを入力した場合である。一方、制御時刻503が設定されている場合とは、例えば、図4に示したコマンド406の二行目以降の各コマンドに対応する。
プロセッサ105は、制御管理表119に制御時刻503が設定されていない場合には(ステップ802の結果が「No」)、制御管理表119から制御コード502を取得する(ステップ803)。
プロセッサ105は、ストリームデータ入力キューの先頭に格納されたストリームデータに、ステップ803の処理で取得された制御コード502を設定する(ステップ804)。
さらに、プロセッサ105は、ストリームデータ入力キューの先頭に格納されたストリームデータのタイムスタンプを取得する(ステップ805)。そして、制御管理表119の制御時刻503を、ステップ805の処理で取得されたタイムスタンプで更新し(ステップ806)、本処理を終了する(ステップ807)。
一方、プロセッサ105は、制御管理表119に制御時刻503が設定されている場合には(ステップ802の結果が「Yes」)、ストリームデータ入力キューに格納された最後のストリームデータのタイムスタンプを取得する(ステップ808)。
さらに、プロセッサ105は、制御管理表119から、ステップ808の処理で取得されたタイムスタンプよりも前の制御時刻503を有する制御コード502を検索し(ステップ809)、制御コード502が存在するか否かを判定する(ステップ810)。
プロセッサ105は、制御コード502が存在する場合には(ステップ810の結果が「Yes」)、ストリームデータ入力キューに格納された最後のストリームデータにステップ809の処理で取得された制御コードを設定する(ステップ811)。
プロセッサ105は、制御コード502が存在しない場合(ステップ810の結果が「No」)、又はステップ811の処理が終了した場合には、本処理を終了する(ステップ807)。
図9は、本発明の実施の形態のストリームデータを処理する手順及びストリームデータ処理システムを制御する手順を示すフローチャートである。
本処理では、プロセッサ105がクエリ処理制御部117を実行することによって、受信したストリームデータを処理する。さらに、ストリームタプル604又はストリームタプル609に付与された制御コード及び制御管理表119に登録された内容に基づいてストリームデータ処理システムを制御する。
プロセッサ105は、ストリームデータ入力キューに格納されたストリームデータが処理可能な状態になると、クエリ処理制御部117による処理を開始する(ステップ901)。
プロセッサ105は、ストリームデータ入力キューから、ストリームデータを取得し、ストリームタプルを生成する(ステップ902)。さらに、生成されたストリームタプルに制御コードが付与されているか否かを判定する(ステップ903)。
プロセッサ105は、ストリームタプルに制御コードが付与されていない場合には(ステップ903の結果が「No」)、制御処理を実行せずに、クエリ処理部118によってクエリを実行する(ステップ906)。クエリの実行が終了した後、本処理を終了する(ステップ907)。
一方、プロセッサ105は、ストリームタプルに制御コードが付与されている場合には(ステップ903の結果が「Yes」)、付与されている制御コードに基づいて、制御管理表119を検索する(ステップ904)。さらに、対応する制御コードが制御管理表119から検索されたか否かを判定する(ステップ905)。
プロセッサ105は、制御コードが制御管理表119から検索されなかった場合には(ステップ905の結果が「No」)、クエリ処理部118によってクエリを実行する(ステップ906)。すなわち、付与された制御コードが不明の場合には、制御コードが付与されていない場合と同様に、通常のクエリを実行する。クエリの実行終了後、本処理を終了する(ステップ907)。
プロセッサ105は、制御コードが制御管理表119から検索された場合には(ステップ907の結果が「Yes」)、制御管理表119から制御コードに対応する制御種別504を取得し、対応する処理を実行する(ステップ908)。
プロセッサ105は、制御種別504の値が「Change」の場合には、ウィンドウマネージャ202のストリームタプル保持バッファ205に保持されたタプルを強制的に出力する(ステップ909)。さらに、制御管理表119のオプション1(505)及びオプション2(506)で指定されたクエリの切替処理を実行する(ステップ910)。ステップ910の処理では、オプション1(505)に指定されているクエリの実行を終了し、オプション2(506)に指定されているクエリの実行を開始する。
プロセッサ105は、クエリ処理部118によってクエリを実行し(ステップ906)、さらに、制御管理表119から制御処理が完了した制御コードの行を削除する(ステップ911)。ステップ911の処理の終了後、本処理を終了する(ステップ907)。
プロセッサ105は、制御種別504の値が「Start Monitor」の場合には、制御管理表119のオプション1(505)で指定されたクエリの性能情報を取得するためのモニタ処理を開始する(ステップ912)。
プロセッサ105は、さらに、クエリ処理部118によってクエリを実行し(ステップ906)、制御管理表119から制御処理が完了した制御コードの行を削除する(ステップ911)。ステップ911の処理の終了後、本処理を終了する(ステップ907)。
プロセッサ105は、制御種別504の値が「Stop Monitor」の場合には、制御管理表119のオプション1(505)で指定されたクエリの性能情報を取得するためのモニタ処理を終了する(ステップ913)。
プロセッサ105は、制御管理表119から制御処理が完了した制御コードの行を削除し(ステップ911)、その後、本処理を終了する(ステップ907)。
プロセッサ105は、制御種別504の値が「Shutdown」の場合には、ウィンドウマネージャ202のストリームタプル保持バッファ205に保持されたタプルを強制的に出力する(ステップ909)。さらに、制御管理表119から制御処理が完了した制御コードの行を削除し(ステップ911)、その後、ストリームデータ処理システムの終了処理を実行する(ステップ914)。
以上、図7から図9までに示した手順に従って、クエリ301、クエリ302、コマンド406及びストリームタプル604を処理する流れを図10を参照しながら説明する。
図10は、本発明の実施の形態のストリームデータ処理システム全体の流れを説明する図である。
図10に示す状態では、クエリQ1(301)及びクエリQ2(302)がクエリリポジトリ120に登録され、コマンド406が実行されたことによって、クエリQ1(301)の実行が開始されている。この状態で、ストリームタプル604に示すようにストリームデータをサーバ計算機101が受信する。
図10では、縦軸を時間軸1001とし、時間の経過とともにサーバ計算機101が受信したストリームデータが各モジュールによって処理される様子が表されている。
本発明の実施の形態では、受信するストリームデータを{値}の形式と仮定しており、楕円1002で表現している。時間軸1001は、時刻09:02から10:03までの時間に対応しており、各ストリームデータがストリームデータ処理システム107に受け付けられた時刻を表している。例えば、ストリームデータ{30}は時刻09:02に、ストリームデータ{10}は時刻09:04にストリームデータ処理システム107に受け付けられたことを示している。
図10の横軸は、受け付けられたストリームデータが処理されるモジュール、及び生成されるデータを表している。さらに、図10の左側上段の角丸四角(1003)は、システムに受け付けられたストリームデータにウィンドウマネージャ202においてウィンドウ演算“[Rows 2]”を適用した結果が格納されたストリームタプル保持バッファ205の各時刻での状態を示している。
また、右側上段の角丸四角(1007)は、ウィンドウマネージャ202から出力されたストリームタプルに、総和計算オペレータ207“SUM(Output)”を適用した結果が格納されている一時保存バッファ209を示している。また、各時刻で一時保存バッファ209に格納されている値(1008)が示されている。一時保存バッファ209に格納された値を用いて指定された演算処理を実行し、処理結果1009が出力される。
前述したように、ウィンドウマネージャ202は、受け付けられたストリームデータに対し、クエリで指定されたウィンドウ演算を適用することによってストリームタプルを生成し、ストリームタプルのシステム内での生存期間を設定する。図10に示す例では、生存期間の開始時刻を黒丸、終了時刻を白丸で表現している(1005)。具体的には、ストリームデータ{30}がウィンドウ演算によってストリームタプル{30}(1004)が生成され、ストリームタプル{30}(1004)の生存期間は時刻09:02から時刻09:08までの間となることを示している。
本発明の実施の形態では、ストリームタプルの生存期間の開始時刻には、システム内部でストリームデータに増加分を表す符号を付けたタプル(以下「プラスタプル」)が生成される。また、ウィンドウからストリームデータが削除された場合、先に出力されたプラスタプルへの参照を有し、減少分を表す符号を付けたタプル(以下「マイナスタプル」)が生成される。生成されたプラスタプル及びマイナスタプルは、図10の1006に示している。以上の処理は、ウィンドウマネージャ202で実行される。
図10に示す例では、時刻09:02にはストリームデータ{30}に対応するプラスタプル{+}{30}が生成され、時刻09:08に対応するマイナスタプル{−}{30}が生成される。
ウィンドウ演算に続く、後段のクエリ処理は、プラスタプル及びマイナスタプルが出力されたタイミングでプラスタプルとマイナスタプルに基づいて生成される差分情報に対して実行される。なお、プラスタプル及びマイナスタプルについては前述の非特許文献1に概念が記載されている。
さらに、制御コード1(Change)が付与されたストリームデータ{70}を受け付けると、クエリ処理制御部117からの通知によって、ストリームタプル保持バッファ205に保持されているストリームタプルを順次出力し、クエリQ1の処理を完結させる。図10では、タプル{40}(1010)及び{20}(1011)が出力される。そして、制御管理表119の制御コード1に対応するオプション1及びオプション2の登録内容に基づいて、実行されているクエリを切り替える。具体的には、クエリQ1からクエリQ2に切り替えられる。
図10の左側下段の角丸四角は、クエリ切り替え後のストリームタプル保持バッファ205の各時刻での状態を示している。すなわち、クエリQ2に対して、システムに受け付けられたストリームデータに対して、ウィンドウマネージャ202でウィンドウ演算“[Rows 2]”を適用した結果が格納されている。
また、右側下段の角丸四角は、クエリ切り替え後、すなわちクエリQ2において、ウィンドウマネージャ202から出力されるストリームタプルに対して、最大値計算オペレータ208“MAX(Output)”を適用した結果が格納された一時保存バッファ209の各時刻における状態を示している。
図11は、本発明の実施の形態のストリームデータ処理システム107のデータ入出力部114、制御コード設定部115及びクエリ処理部118で処理されたストリームデータの状態を説明する図である。
図11に示すクエリ処理部118は、図10と同様にウィンドウマネージャ202及び集約計算モジュール206によって構成される。
状態1101は、クエリを切り替える契機で受信された値が70であるストリームデータがデータ入出力部114の入力キューに格納された状態である。
状態1102は、データ入出力部114の入力キューに新たにデータが格納された場合に、制御コード設定部115によって制御コードを設定するか否かを判定する状態である。なお、図11では、制御時刻が未設定の場合を想定している。
状態1103は、制御コード設定部115による処理の結果、クエリを切り替える契機で受信された値が70であるストリームデータに制御コードが付与された状態である。なお、制御コードが付与されたストリームデータを二重丸で表現する。
状態1104から1106までは、入力キューからストリームデータを取り出し、取り出されたストリームデータに制御コードが付与されていない場合の状態である。
状態1107は、制御コードが設定されたストリームデータを処理する状態である。制御コード付きのストリームデータを処理する場合には、図9に示した手順に基づいて、クエリ処理制御部117がクエリ処理部118を制御する。図11に示す例では、クエリを切り替えるための制御種別が「Change」である制御コードが付与されているため、ステップ909の処理を実行する。具体的には、ウィンドウマネージャ202のストリームタプル保持バッファ205に保持されているストリームタプルを強制的に出力する。
状態1108から1111は、強制的に出力されるストリームタプルを順次処理している状態である。
図12は、本発明の実施の形態のストリームデータ処理システム107で処理されたストリームデータの状態を説明する図であって、複数のウィンドウが連結されている場合を説明する図である。
図12に示す場合には、クエリ処理部118が複数のウィンドウマネージャ202で連結されている例を示している。
状態1201は、図11の状態1101と同様に、クエリを切り替える契機で受信された値が70であるストリームデータがデータ入出力部114の入力キューに格納された状態である。
状態1202は、図11の状態1102と同様に、データ入出力部114の入力キューに新たにデータが格納された場合に、制御コード設定部115によって制御コードを設定するか否かを判定する状態である。なお、図12では、図11と同様に、制御時刻が未設定の場合を想定している。
状態1203は、図11の状態1103と同様に、制御コード設定部115による処理の結果、クエリを切り替える契機で受信された値が70であるストリームデータに制御コードが付与された状態である。なお、図11と同様に、制御コードが付与されたストリームデータを二重丸で表現する。
状態1204は、入力キューからストリームデータを取り出し、取り出されたストリームデータに制御コードが付与されていない場合の状態である。
状態1205は、制御コードが設定されたストリームデータを処理する状態である。制御コード付きのストリームデータを処理する場合には、図9に示した手順に基づいて、クエリ処理制御部117がクエリ処理部118を制御する。図12に示す例では、図11と同様に、クエリを切り替えるための制御種別が「Change」である制御コードが付与されているため、ステップ909の処理を実行する。図12に示すように、複数のウィンドウ演算で構成されている場合には、ウィンドウマネージャ202が連結された順序に従って、ストリームタプル保持バッファ205に格納されたストリームタプルを出力する。
状態1206から1210は、強制的に出力されるストリームタプルを順次処理している状態である。
以上のように、本発明の実施の形態では、ストリームデータに制御コードを付与し、付与された制御コードに基づいて、ストリームデータ処理を制御することができる。
また、以上に示した実施の形態では、処理を切り替える契機となるタイミングで受信されたストリームデータに制御コードを付与していたが、ストリームデータに制御コードを付与するのではなく、制御コードのみを含む特殊タプルを用いることも可能である。以下に、特殊タプルを用いた本発明の実施の形態の変形例について説明する。
図13Aは、本発明の実施の形態の変形例のストリームデータ処理システム107によって処理されるストリームタプル1301の一例を示す図である。
図13Aには、ストリームデータ処理システム107がストリームデータを受け付けた時刻でタイムスタンプを付与するシステムタイムスタンプモードの例を示している。基本的には図6Bに示したストリームタプル604と同じであるが、制御コードのみが設定されている特殊タプル(1302)が含まれる点で相違する。
図13Bは、本発明の実施の形態の変形例のストリームデータ処理システム107によって処理されるストリームタプル1303の一例を示す図である。
図13Aには、クライアント計算機1(126)上のアプリケーション1(127)によってストリームデータにタイムスタンプが付与されるアプリケーションタイムスタンプモードの例を示している。基本的には図6Cに示したストリームタプル609と同じであるが、制御コードのみが設定されている特殊タプル(1304)が含まれる点で相違する。
以下、特殊タプルを利用してストリームデータ処理システム107を制御する手順について説明する。
図14は、本発明の実施の形態の制御コードを含む特殊タプルをストリームデータ入力キューに挿入する手順を示すフローチャートである。
本処理では、プロセッサ105が制御コード設定部115を実行することによって、制御管理表119に格納された制御コードを含む特殊タプルを生成し、ストリームデータ入力キューに生成された特殊タプルを挿入する。本処理によって、制御管理表119に基づいてストリームタプル1301又はストリームタプル1303が生成される。
プロセッサ105は、コマンドが入力され、図7に示した制御管理表119が作成されると、受信したストリームデータに対し、制御コード設定部115を実行する(ステップ1401)。
プロセッサ105は、まず、制御管理表119に制御時刻503が設定されているか否かを判定する(ステップ1402)。制御時刻503が設定されていない場合とは、例えば、図4A〜Eに示したコマンド(402、403、404、405)のように時刻の指定をせずにコマンドを入力した場合である。一方、制御時刻503が設定されている場合は、例えば、図4に示したコマンド406の二行目以降の各コマンドに対応する。
プロセッサ105は、制御管理表119に制御時刻503が設定されていない場合には(ステップ1402の結果が「No」)、制御管理表119から制御コード502を取得する(ステップ1403)。
プロセッサ105は、ストリームデータ入力キューの先頭に格納されたストリームデータからタイムスタンプを取得する(ステップ1404)。さらに、制御管理表119の制御時刻503を、ステップ1404の処理で取得されたタイムスタンプに基づいて更新する(ステップ1405)。
プロセッサ105は、ステップ1403の処理で取得された制御コードを含む特殊タプルを、ストリームデータ入力キューの先頭に格納されたストリームデータの前に挿入し(ステップ1406)、本処理を終了する(ステップ1407)。
一方、プロセッサ105は、制御管理表119に制御時刻503が設定されている場合には(ステップ1402の結果が「Yes」)、ストリームデータ入力キューに格納された最後のストリームタプルのタイムスタンプを取得する(ステップ1408)。
さらに、プロセッサ105は、制御管理表119から、ステップ1408の処理で取得されたタイムスタンプよりも前の制御時刻503を有する制御コード502を検索し(ステップ1409)、制御コード502が存在するか否かを判定する(ステップ1410)。
プロセッサ105は、制御コード502が存在する場合には(ステップ1410の結果が「Yes」)、ステップ1409の処理で取得された制御コードを含む特殊タプルを、ストリームデータ入力キューに格納された最後のストリームデータの前に挿入し(ステップ1411)、本処理を終了する(ステップ1407)。
図15は、本発明の実施の形態の変形例のストリームデータを処理する手順及びストリームデータ処理システムを制御する手順を示すフローチャートである。
本処理では、プロセッサ105がクエリ処理制御部117を実行することによって、ストリームデータを処理する。さらに、ストリームタプル1301又はストリームタプル1303に付与された制御コード及び制御管理表119に登録された内容に基づいてストリームデータ処理システムを制御する。
プロセッサ105は、ストリームデータ入力キューに格納されたストリームデータが処理可能な状態になると、クエリ処理制御部117による処理を開始する(ステップ1501)。
プロセッサ105は、ストリームデータ入力キューから、処理対象のストリームデータ又は制御コード付き特殊タプルを取得する(ステップ1502)。さらに、制御コード付き特殊タプルが取得されたか否かを判定する(ステップ1503)。
プロセッサ105は、制御コード付き特殊タプルが取得されなかった場合、すなわち、ストリームデータが取得された場合には(ステップ1503の結果が「No」)、クエリ処理部118によって通常のクエリ処理を実行し(ステップ1506)、本処理を終了する(ステップ1514)。
一方、プロセッサ105は、制御コード付き特殊タプルが取得された場合には(ステップ1503の結果が「Yes」)、特殊タプルに付与された制御コードに基づいて、制御管理表119を検索する(ステップ1504)。さらに、対応する制御コードが制御管理表119から検索されたか否かを判定する(ステップ1505)。
プロセッサ105は、制御コードが制御管理表119から検索されなかった場合には(ステップ1505の結果が「No」)、本処理を終了する(ステップ1514)。
プロセッサ105は、制御コードが制御管理表119から検索された場合には(ステップ1507の結果が「Yes」)、制御管理表119から制御コードに対応する制御種別504を取得し、対応する処理を実行する(ステップ1507)。
プロセッサ105は、制御種別504の値が「Change」の場合には、ウィンドウマネージャ202のストリームタプル保持バッファ205に保持されたタプルを強制的に出力する(ステップ1508)。さらに、制御管理表119のオプション1(505)及びオプション2(506)で指定されたクエリの切替処理を実行する(ステップ1509)ステップ1509の処理では、オプション1(505)に指定されているクエリの実行を終了し、オプション2(506)に指定されているクエリを実行する。
プロセッサ105は、制御管理表119から制御処理が完了した制御コードの行を削除し(ステップ1510)、本処理を終了する(ステップ1514)。
プロセッサ105は、制御種別504の値が「Start Monitor」の場合には、制御管理表119のオプション1(505)で指定されたクエリの性能情報を取得するためのモニタ処理を開始する(ステップ1511)。
プロセッサ105は、制御管理表119から制御処理が完了した制御コードの行を削除し(ステップ1510)、本処理を終了する(ステップ1514)。
プロセッサ105は、制御種別504の値が「Stop Monitor」の場合には、制御管理表119のオプション1(505)で指定されたクエリの性能情報を取得するためのモニタ処理を終了する(ステップ1512)。
プロセッサ105は、制御管理表119から制御処理が完了した制御コードの行を削除し(ステップ1510)、本処理を終了する(ステップ1514)。
プロセッサ105は、制御種別504の値が「Shutdown」の場合には、ウィンドウマネージャ202のストリームタプル保持バッファ205に保持されたタプルを強制的に出力する(ステップ1508)。さらに、制御管理表119から制御処理が完了した制御コードの行を削除し(ステップ1510)、その後、ストリームデータ処理システムの終了処理を実行する(ステップ1513)。
本発明の実施の形態によれば、時々刻々と到着する大量のデータをリアルタイム処理するストリームデータ処理システムにおいて、ストリームデータを参照することによって区切りとなるデータを特定することができる。したがって、入力されるストリームデータに基づいてストリームデータ処理を制御することが可能となり、リアルタイムアプリケーションによって制御可能なデータ処理基盤を提供することができる。
本発明の実施の形態によれば、特定期間のすべてのストリームデータに制御コードを付与するのではなく、処理を切り替える契機となるストリームデータにのみ制御コードを付与するため、ストリームデータを加工するためのオーバヘッドを最小限に抑えることができる。
本発明の実施の形態によれば、入力されたコマンドにしたがって制御コードをストリームデータに付与するため、ストリームデータソース側でデータに識別子を付与する処理などを必要とせずに、ストリームデータ処理システム側で処理を完結させることができる。
本発明の実施の形態によれば、特定データの到着を契機として、システムを終了させるなどの制御を行うことが可能となるため、指定された時刻において処理を完了させてからシステムを終了させるなどの運用が可能となる。
本発明の実施の形態の変形例によれば、受信したストリームデータを加工しないため、従来の演算処理オペレータをそのまま使用することが可能となる。したがって、従来のストリームデータ処理システムに本発明を適用するために必要な最小限のモジュールを追加又は変更することで、クエリ処理部118などの利用を継続することができる。
本発明の実施の形態のストリームデータ処理システムを含む計算機システムの一例を示す図である。 本発明の実施の形態のクエリ処理部の構成の一例を示すブロック図である。 本発明の実施の形態のストリームデータ処理システムで実行されるクエリを示す図である。 本発明の実施の形態のストリームデータ処理システムで実行されるクエリを示す図である。 本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定無し)の一例を示す図である。 本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定無し)の一例を示す図である。 本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定無し)の一例を示す図である。 本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定無し)の一例を示す図である。 本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定無し)の一例を示す図である。 本発明の実施の形態のストリームデータ処理システムに入力されるコマンド(時間指定有り)の一例を示す図である。 本発明の実施の形態の制御管理表の具体例を示す図である。 本発明の実施の形態のサーバ計算機に入力されるストリームデータソースの構成の一例を示す図である。 本発明の実施の形態の受信したストリームデータに基づいて生成されたストリームタプルの一例を示す図である。 本発明の実施の形態の受信したストリームデータに基づいて生成されたストリームタプルの別の例を示す図である。 本発明の実施の形態の制御管理表を作成する手順を示すフローチャートである。 本発明の実施の形態のストリームデータに制御コードを付与する手順を示すフローチャートである。 本発明の実施の形態のストリームデータを処理する手順及びストリームデータ処理システムを制御する手順を示すフローチャートである。 本発明の実施の形態のストリームデータ処理システム全体の流れを説明する図である。 本発明の実施の形態のストリームデータ処理システムのデータ入出力部、制御コード設定及びクエリ処理部で処理されたストリームデータの状態を説明する図である。 本発明の実施の形態のストリームデータ処理システムで処理されたストリームデータの状態を説明する図であって、複数のウィンドウが連結されている場合を説明する図である。 本発明の実施の形態の変形例のストリームデータ処理システムによって処理されるストリームタプルの一例を示す図である。 本発明の実施の形態の変形例のストリームデータ処理システムによって処理されるストリームタプルの一例を示す図である。 本発明の実施の形態の変形例の制御コードを含む特殊タプルをストリームデータ入力キューに挿入する手順を示すフローチャートである。 本発明の実施の形態の変形例のストリームデータを処理する手順及びストリームデータ処理システムを制御する手順を示すフローチャートである。
符号の説明
101 サーバ計算機
102 主記憶
103 補助記憶装置
104 出力装置
105 プロセッサ
106A 入力装置
106B インタフェース
107 ストリームデータ処理システム
108 ストリームデータ処理システム管理部
109 コマンド管理部
110 コマンド解析部
111 コマンド実行部
112 クエリ管理部
113 データ管理部
114 データ入出力部
115 制御コード設定部
116 クエリ処理管理部
117 クエリ処理制御部
118 クエリ処理部
119 制御管理表
120 クエリリポジトリ
121 コマンド
122 クエリ
123 ストリームデータソース
124 結果
125 ネットワーク
126 クエリ計算機1
127 アプリケーション1
128 コマンド
129 クエリ
130 ストリームデータソース
131 結果
132 クエリ計算機2
132 アプリケーション2
134 ネットワーク
135 ストリームデータソース
201 メモリマネージャ
202 ウィンドウマネージャ
203 生存期間決定部
204 差分情報生成部
205 ストリームタプル保持バッファ
206 集約計算モジュール
207 総和計算オペレータ
208 最大値計算オペレータ
209 一時保存バッファ
210 集約計算処理に必要なオペレータ
211 最小値計算オペレータ
212 平均値計算オペレータ
213 クエリ処理に必要なオペレータ
214 選択オペレータ
215 結合オペレータ
301 クエリ
302 クエリ
401〜406 コマンド
502 制御コード
503 制御時刻
504 制御種別
505 オプション1
506 オプション2
601 ストリームデータソース
602 Outputカラム
603 ストリームデータ
604 ストリームタプル
605 System Timeカラム
607 制御コードカラム
609 ストリームタプル
610 AP Timeカラム
612 制御コードカラム

Claims (8)

  1. 時刻情報が付与されたデータを時系列に受信し、ウィンドウ単位で、登録されているクエリについてデータ処理するストリームデータ処理装置を制御するストリームデータ処理制御方法であって、
    前記ストリームデータ処理装置は、前記データを受信するインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、
    前記ストリームデータ処理装置は、
    前記データを処理するためのクエリと、前記ストリームデータ処理装置のシャットダウン、前記クエリの実行開始、実行するクエリの変更又は前記クエリの性能情報取得開始/終了のうち少なくとも一つの入力された制御コマンド及び該制御コマンドの実行順位を示す制御コードが対応付けられた制御管理情報と、を前記記憶部に記憶し、
    前記制御管理情報に基づいて、前記インタフェースを介して受信したデータに前記制御コードが含まれたデータを生成し、
    前記受信したデータを前記ウィンドウに格納する際、該受信したデータに前記制御コードが含まれているか否かを判定し、
    前記判定の結果、前記制御コードが含まれている場合は、前記データに含まれている制御コードに対応する前記制御コマンドを実行することを特徴とするストリームデータ処理制御方法。
  2. 前記ストリームデータ処理制御装置は、
    前記制御コマンドを実行する時刻情報の入力を更に受け、該時刻情報を、前記制御コマンド及び制御コードと対応付けて前記制御管理情報として前記記憶部に記憶し、
    前記受信したデータのうち、前記受信したデータに含まれた時刻情報が前記制御コマンドを実行する時刻情報以後の時刻であるデータに対し、対応する前記制御コードが含まれたデータを生成することを特徴とする請求項1に記載のストリームデータ処理制御方法。
  3. 前記ストリームデータ処理装置は、
    前記制御管理情報に前記時刻情報が含まれていない場合は、前記ウィンドウに格納される前の前記受信したデータであって、最も古い時刻情報を有するデータに対し、前記制御コードを付与することを特徴とする請求項2に記載のストリームデータ処理制御方法。
  4. 前記データは、前記ストリームデータ処理装置によって受信された時刻が前記時刻情報として付与されることを特徴とする請求項1〜3の何れか一項に記載のストリームデータ処理制御方法。
  5. 前記データに付与される時刻情報は、前記データの送信元で付与されることを特徴とする請求項1〜3の何れか一項に記載のストリームデータ処理制御方法。
  6. 前記ストリームデータ処理装置は、
    前記インタフェースを介して受信したデータとは別に、前記ストリームデータ処理装置によって新たに生成し、該新たに生成したデータを用いて前記制御コードが含まれたデータを生成することを特徴とする請求項1に記載のストリームデータ処理制御方法。
  7. 時刻情報が付与されたデータを時系列に受信し、ウィンドウ単位で、登録されているクエリについてデータ処理するストリームデータ処理装置であって、
    前記ストリームデータ処理装置は、前記データを受信するインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、
    前記プロセッサは、
    前記データを処理するためのクエリと、前記ストリームデータ処理装置のシャットダウン、前記クエリの実行開始、実行するクエリの変更又は前記クエリの性能情報取得開始/終了のうち少なくとも一つの入力された制御コマンド及び該制御コマンドの実行順位を示す制御コードが対応付けられた制御管理情報と、を前記記憶部に記憶し、
    前記制御管理情報に基づいて、前記インタフェースを介して受信したデータに前記制御コードが含まれたデータを生成し、
    前記受信したデータを前記ウィンドウに格納する際、該受信したデータに前記制御コードが含まれているか否かを判定し、
    前記判定の結果、前記制御コードが含まれている場合は、前記データに含まれている制御コードに対応する前記制御コマンドを実行することを特徴とするストリームデータ処理装置。
  8. 時刻情報が付与されたデータを時系列に受信し、ウィンドウ単位で、登録されているクエリについてデータ処理するストリームデータ処理装置に実行させるプログラムであって、
    前記ストリームデータ処理装置は、前記データを受信するインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、
    前記データを処理するためのクエリと、前記ストリームデータ処理装置のシャットダウン、前記クエリの実行開始、実行するクエリの変更又は前記クエリの性能情報取得開始/終了のうち少なくとも一つの入力された制御コマンド及び該制御コマンドの実行順位を示す制御コードが対応付けられた制御管理情報と、を前記記憶部に記憶する手順と、
    前記制御管理情報に基づいて、前記インタフェースを介して受信したデータに前記制御コードが含まれたデータを生成する手順と、
    前記受信したデータを前記ウィンドウに格納する際、該受信したデータに前記制御コードが含まれているか否かを判定する手順と、
    前記判定の結果、前記制御コードが含まれている場合は、前記データに含まれている制御コードに対応する前記制御コマンドを実行する手順と、
    を実行させることを特徴とするプログラム。
JP2008308463A 2008-12-03 2008-12-03 ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム Expired - Fee Related JP4659877B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008308463A JP4659877B2 (ja) 2008-12-03 2008-12-03 ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム
US12/457,577 US8024350B2 (en) 2008-12-03 2009-06-16 Stream data processing control method, stream data processing apparatus, and stream data processing control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008308463A JP4659877B2 (ja) 2008-12-03 2008-12-03 ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム

Publications (2)

Publication Number Publication Date
JP2010134599A JP2010134599A (ja) 2010-06-17
JP4659877B2 true JP4659877B2 (ja) 2011-03-30

Family

ID=42223742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008308463A Expired - Fee Related JP4659877B2 (ja) 2008-12-03 2008-12-03 ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム

Country Status (2)

Country Link
US (1) US8024350B2 (ja)
JP (1) JP4659877B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433716B2 (en) * 2009-08-31 2013-04-30 Sap Ag Runtime query modification in data stream management
JP5664230B2 (ja) * 2010-12-28 2015-02-04 コニカミノルタ株式会社 画像読み込みシステムおよび読み込み画像処理システム
US9361342B2 (en) * 2011-10-10 2016-06-07 Hewlett Packard Enterprise Development Lp Query to streaming data
US9438656B2 (en) 2012-01-11 2016-09-06 International Business Machines Corporation Triggering window conditions by streaming features of an operator graph
US9430117B2 (en) 2012-01-11 2016-08-30 International Business Machines Corporation Triggering window conditions using exception handling
US9158795B2 (en) * 2012-09-28 2015-10-13 International Business Machines Corporation Compile-time grouping of tuples in a streaming application
US9497250B2 (en) 2012-10-29 2016-11-15 International Business Machines Corporation Runtime grouping of tuples in a streaming application
JP6021741B2 (ja) 2013-06-05 2016-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 時空間データベースの処理方法、プログラム及びシステム
US10331672B2 (en) * 2013-06-21 2019-06-25 Hitachi, Ltd. Stream data processing method with time adjustment
US9471639B2 (en) 2013-09-19 2016-10-18 International Business Machines Corporation Managing a grouping window on an operator graph
CA2962760C (en) * 2014-10-08 2022-07-19 Signalfx, Inc. Real-time reporting based on instrumentation of software
US9804951B2 (en) * 2014-10-08 2017-10-31 Signalfx, Inc. Quantization of data streams of instrumented software
US9846574B2 (en) 2014-12-19 2017-12-19 Signalfx, Inc. Representing result data streams based on execution of data stream language programs
US10394692B2 (en) 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software
US10579603B2 (en) 2015-04-17 2020-03-03 International Business Machines Corporation Removing sets of tuples in a streaming environment
US10558670B2 (en) 2015-09-30 2020-02-11 International Business Machines Corporation Smart tuple condition-based operation performance
US10733209B2 (en) 2015-09-30 2020-08-04 International Business Machines Corporation Smart tuple dynamic grouping of tuples
US10657135B2 (en) * 2015-09-30 2020-05-19 International Business Machines Corporation Smart tuple resource estimation
US10296620B2 (en) 2015-09-30 2019-05-21 International Business Machines Corporation Smart tuple stream alteration
US9497244B1 (en) * 2016-01-29 2016-11-15 International Business Machines Corporation Mission tuples in a streaming application environment
JP2018133037A (ja) * 2017-02-17 2018-08-23 オムロン株式会社 制御装置
US12118565B2 (en) 2019-12-20 2024-10-15 Capital One Services, Llc Transaction exchange platform with a pause microservice to pause processing of workflows
US11080120B2 (en) 2019-12-20 2021-08-03 Capital One Services, Llc Transaction exchange platform with watchdog microservice
US12045833B2 (en) 2019-12-20 2024-07-23 Capital One Services, Llc Transaction exchange platform with a messenger microservice to update transactions
US12100009B2 (en) 2019-12-20 2024-09-24 Capital One Services, Llc Transaction exchange platform with a watchdog microservice to handle stalled transactions
US11023528B1 (en) 2019-12-20 2021-06-01 Capital One Services, Llc Transaction exchange platform having configurable microservices
US10789600B1 (en) * 2019-12-20 2020-09-29 Capital One Services, Llc Transaction exchange platform with snapshot microservice
US12100010B2 (en) 2019-12-20 2024-09-24 Capital One Services, Llc Transaction exchange platform defining conditions for the processing of transaction objects
US10891615B1 (en) * 2019-12-20 2021-01-12 Capital One Services, Llc Transaction exchange platform having streaming transaction data and microservices
US12118566B2 (en) 2019-12-20 2024-10-15 Capital One Services, Llc Removing duplicate transactions from a transaction exchange platform
US11037168B1 (en) 2019-12-20 2021-06-15 Capital One Services, Llc Transaction exchange platform with watchdog microservice
US12056713B2 (en) 2019-12-20 2024-08-06 Capital One Services, Llc Transaction exchange platform with a validation microservice for validating transactions before being processed
US12118567B2 (en) 2019-12-20 2024-10-15 Capital One Services, Llc Detecting and preventing duplicate transactions on a transaction exchange platform
US12045242B2 (en) 2022-07-07 2024-07-23 Capital One Services, Llc Transaction exchange platform with classification microservice to generate alternative workflows

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338432A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd ストリームデータ処理システムのクエリ処理方法
JP2007328716A (ja) * 2006-06-09 2007-12-20 Hitachi Ltd ストリームデータ処理方法
JP2008262046A (ja) * 2007-04-12 2008-10-30 Hitachi Ltd 会議可視化システム、会議可視化方法、及び集計処理サーバ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3808394B2 (ja) 2002-04-02 2006-08-09 松下電器産業株式会社 ストリームデータ処理装置、ストリームデータ処理方法、プログラム、及び、媒体
US7536396B2 (en) * 2006-03-21 2009-05-19 At&T Intellectual Property Ii, L.P. Query-aware sampling of data streams
US7673065B2 (en) * 2007-10-20 2010-03-02 Oracle International Corporation Support for sharing computation between aggregations in a data stream management system
US8949810B2 (en) * 2008-06-16 2015-02-03 International Business Machines Corporation Method for high-performance data stream processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338432A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd ストリームデータ処理システムのクエリ処理方法
JP2007328716A (ja) * 2006-06-09 2007-12-20 Hitachi Ltd ストリームデータ処理方法
JP2008262046A (ja) * 2007-04-12 2008-10-30 Hitachi Ltd 会議可視化システム、会議可視化方法、及び集計処理サーバ

Also Published As

Publication number Publication date
US8024350B2 (en) 2011-09-20
US20100138438A1 (en) 2010-06-03
JP2010134599A (ja) 2010-06-17

Similar Documents

Publication Publication Date Title
JP4659877B2 (ja) ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム
US11695830B1 (en) Multi-threaded processing of search responses
US11184467B2 (en) Multi-thread processing of messages
JP5377897B2 (ja) ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム
JP5337447B2 (ja) ストリームデータ処理方法、及びシステム
US20180129579A1 (en) Systems and Methods with a Realtime Log Analysis Framework
US9251221B1 (en) Assigning scores to objects based on search query results
US8117146B2 (en) Computing the values of configuration parameters for optimal performance of associated applications
CN111030857A (zh) 网络告警方法、装置、系统与计算机可读存储介质
JP2004280528A (ja) データベースシステム、サーバ、問い合わせ投入方法及びデータ更新方法
US11537576B2 (en) Assisted problem identification in a computing system
JP2007334580A (ja) 支援装置、プログラム、情報処理システム及び支援方法
CN108519908A (zh) 一种任务动态管理方法和装置
US20060026282A1 (en) Method and apparatus for supporting a system management
JP2002123516A (ja) ウェブサイト評価システム、ウェブサイト評価方法、記録媒体
CN111522890B (zh) 一种金融数据处理方法、装置、系统和存储介质
WO2015097896A1 (ja) 入力操作用のダイアログ表示可否判定方法及び計算機システム
JP6531597B2 (ja) 解析処理プログラム、解析処理方法および解析処理装置
JPH10283371A (ja) データベース装置
CN117421362A (zh) 数据库动态切换方法、装置、设备及介质
JP2010066922A (ja) データベース管理方法、データベース管理プログラム、および、データベース管理システム
JP2006209316A (ja) データベースアクセス管理システム、管理方法及びそのプログラム
JP2001067327A (ja) 情報処理装置および情報処理方法、並びに記録媒体
JPH11328190A (ja) データベース検索方法及びデータベース管理システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101227

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4659877

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees