JP5154366B2 - ストリームデータ処理プログラム及び計算機システム - Google Patents

ストリームデータ処理プログラム及び計算機システム Download PDF

Info

Publication number
JP5154366B2
JP5154366B2 JP2008276685A JP2008276685A JP5154366B2 JP 5154366 B2 JP5154366 B2 JP 5154366B2 JP 2008276685 A JP2008276685 A JP 2008276685A JP 2008276685 A JP2008276685 A JP 2008276685A JP 5154366 B2 JP5154366 B2 JP 5154366B2
Authority
JP
Japan
Prior art keywords
time
information
procedure
processing
control information
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
JP2008276685A
Other languages
English (en)
Other versions
JP2010108044A (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 JP2008276685A priority Critical patent/JP5154366B2/ja
Priority to US12/606,641 priority patent/US8095690B2/en
Publication of JP2010108044A publication Critical patent/JP2010108044A/ja
Application granted granted Critical
Publication of JP5154366B2 publication Critical patent/JP5154366B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Technology Law (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストリームデータ処理システムにおけるシステム内部、およびシステム間の時刻制御情報の生成方法に関する。
ストレージ装置に格納されたデータに対する処理を実行するデータベース管理システム(以下、DBMSとする)に対して、時々刻々と到着するデータをリアルタイム処理するデータ処理システムに対する要求が高まっている。
このような時々刻々と到着するデータをストリームデータと定義し、該ストリームデータのリアルタイム処理に好適なデータ処理システムとして、ストリームデータ処理システムが提案されている。例えば、非特許文献1には、ストリームデータ処理システムSTREAMが開示されている。
ストリームデータ処理システムでは、従来のDBMSとは異なり、まずクエリ(問い合わせ)をシステムに登録し、データの到来と共に該クエリが継続的に実行される。前記STREAMでは、ストリームデータを効率的に処理するために、ストリームデータの一部を切り取るスライディングウィンドウと呼ばれる概念を導入し、データに対して生存期間を付与している。スライディングウィンドウ指定を含むクエリの記述言語の好適な例としては非特許文献1に開示されているCQL(Continuous Query Language)をあげることができる。CQLは、DBMSで広く用いられているSQL(Structured Query Language)のFROM句に、ストリーム名に続いて括弧を用いることにより、スライディングウィンドウを指定する拡張が施されている。
SQLに関しては、非特許文献2に開示されるものが知られている。上記スライディングウィンドウを指定する代表的な方法としては、(1)切り取るデータ列の数を指定する方法、そして(2)切り取るデータ列の時間間隔を指定する方法の2種類をあげることができる。例えば、非特許文献1の第二節に示された“Rows 50 Preceding”は50行分のデータを処理対象として切り取る(1)の好適な例であり、そして“Range 15 Minutes Preceding”は15分間分のデータを処理対象として切り取る(2)の好適な例である。データの生存期間は、(1)の場合、50個のデータが到着するまでとなり、(2)の場合、15分間となる。スライディングウィンドウによって切り取られたストリームデータはメモリ上に保持され、クエリ処理に使用される。
ストリームデータ処理では、複数のデータソースを組合せた解析によるイベント抽出、あるいは一定時間内に発生したイベントの抽出といった処理を実現するために、データが発生していない期間においても時刻を進めるためのハートビートタプル(以下ではHBT(Heart Beat Tuple)と省略して表記する)を、データ処理システムの内部で定期的に発生させて処理する必要があった。HBTは、HBTであることを表すHBTフラグ、および発生した時刻情報を有する。
例えば、2入力以上の前記データソースを結合する結合演算では、2入力以上の前記データソースのうち、時刻の古い順に取得するが、第一の入力に前記データソースからの入力があり、第二の入力に前記データソースからの入力がない場合、前記第二の入力に前記第一の入力のデータソースの時刻以前のデータが入力されるかもしれないため、前記第一の入力を処理できず、処理待ちが発生してしまう。そのような場合に、前記第一の入力のデータソースの時刻以後の時刻情報を有するHBTが前記第二の入力のデータソースに入力されることで、前記第一の入力を処理することができ、処理待ちは解消する。
公知の方法として、各クエリがyield(出力キューにデータあり)、more(入力キューにデータあり)という2つの状態を保持し、次の実行すべきオペレータを決定する方式が非特許文献3に開示されている。非特許文献3に開示されている方式は、実行木を入力側から実行できるところまで実行し、次の実行できるオペレータまでバックトラックする。ストリームデータの入力までバックトラックした場合に、Enabling Time−Stamps(ETS、HBT相当)を流す。
また、別の公知の方法として、分散する入力ソースにおける複数の物理時間に対して、1個の論理時間を与える方法であり、Output Bookmarkという値に応じて、バッファ内で並べ替える方法が特許文献2に開示されている。
米国特許第5,495,600号公報 US2008/0072221A1Event Stream Conditioning 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)、[online]、2003年1月、[平成20年10月15日検索]、インターネットURL<http://infolab.usc.edu/csci599/Fall2002/paper/DS1_datastreammanagementsystem.pdf> C. J. Date, Hugh Darwen著:"A Guide to SQL Standard (4th Edition)",米国、Addison−Wesley Professional発行、1996年11月8日発行,ISBN: 021964260 Optimizing Timestamp Management in Data Stream Management Systems,Yijian Bai,Hetal Thakkar,Haixun Wang,Carlo Zaniolo,IEEE 23rd International Conference on Data Engineering,2007.ICDE 2007,15-20 April 2007 Page:1334 − 1338.
例えば、株式の売買を行うシステムでは、株価の変動にいかに迅速に反応できるかがシステムの最重要の課題の一つであり、従来のDBMSのように株式のデータを一旦記憶装置に格納してから、該格納データに関して検索を行うような方法では、株価変動のスピードに即応できず、ビジネスチャンスを逃してしまうことになりかねない。例えば、特許文献1では、記憶されているクエリが周期的に実行される機構を開示しているが、株価のようにデータが入ってきた瞬間にクエリを実行することが重要なリアルタイムデータ処理には適用が困難であった。
非特許文献2では、HBTを内部で定期的に発生して処理するので、処理タイミングがHBTに束縛されるため、HBT送信間隔がデータ発生からイベント抽出までの平均レイテンシとして現れてしまう。レイテンシを短縮するためにはHBTの生成レートを上げる必要があり、CPU負荷上昇やスループット低下にオーバヘッドとなっていた。
また、複数の計算機において、第一の計算機における時刻情報を用いて第二の計算機においてストリームデータ処理を行う場合に、第一の計算機における時刻情報を第二の計算機に送信する必要があり、上述した問題と同様の問題が生じる。
非特許文献3でも、例えば、マイナスタプルを生成する(Negative Tuple法)rangeウィンドウオペレータ、RStreamオペレータなど、データ入力以外にもHBTが生成される場合があり、前記文献に開示されている方法では対応できない。また、クエリが多数登録され、実行木が長くなった場合に、バックトラック回数が多くなる問題もある。
また、特許文献2では、HBTは定期的であるため、レイテンシを短縮するためにはHBTの生成レートを上げる必要があり、CPU負荷上昇やスループット低下にオーバヘッドとなってしまう問題が残る。
したがって、ストリームデータ処理システムは、ファイナンシャルアプリケーション、交通情報システム、流通システム、トレーサビリティシステム、センサモニタリングシステム、計算機システム管理に代表される、リアルタイム処理が必要とされる応用に対する適用が期待されている。
すなわち、ストリームデータ処理では、複数のデータソースを組合せた解析によるイベント抽出、あるいは一定時間内に発生したイベントの抽出といった処理を実現するために、データが発生していない期間においても時刻を進めるための時刻制御情報を、データ処理システムの内部で定期的に発生させて処理する必要があった。しかしながら、処理タイミングが時刻制御情報によって決定されるため、時刻制御情報送信間隔がデータ発生からイベント抽出までの平均レイテンシ(所定時間内のレイテンシ)として現れてしまう。つまり、時刻を進めるための時刻制御情報を待つ期間に、実行可能な処理がある場合では、データ処理システム内の処理開始時刻が時刻制御情報によって束縛され、この時刻制御情報を待つ時間がレイテンシとなって現れる。レイテンシを短縮するためには時刻制御情報の生成レートを上げる必要があり、CPU負荷の上昇やスループットが低下することによりオーバヘッドとなっていた。
また、複数の計算機において、第一の計算機における時刻情報を用いて第二の計算機においてストリームデータ処理を行う場合に、第一の計算機における時刻情報を第二の計算機に送信する必要があり、上述した問題と同様の問題が生じる。
本発明は上記問題点に鑑みてなされたものであり、本発明の目的は、ストリームデータ処理において時刻制御情報を必要なとき挿入することである。
本発明は、計算機に入力されたストリームデータを受け付けて、ウィンドウによって前記ストリームデータの処理対象が定義されるデータに対して処理し、時刻が進んだことを表す時刻制御情報を前記ストリームデータに加えて生成するストリームデータ処理プログラムにおいて、受け付けた該ストリームデータの時刻情報を、前記時刻制御情報を生成する時刻制御情報生成部が前記時刻制御情報を生成する時刻である発火時刻として次回発火時刻保持領域に保持する。また、前記ストリームデータの処理内容を表す問合せから前記ストリームデータを受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する処理モジュールを抽出し、前記抽出した処理モジュール、および前記ストリームデータを受け付けた時刻情報から前記発火時刻を算出し、前記次回発火時刻保持領域に保持する。そして、前記次回発火時刻保持領域に保持された前記発火時刻において、前記時刻制御情報生成部が前記時刻制御情報を挿入する。
本発明を適用することにより、時刻制御情報の量を削減しつつ、低レイテンシであるストリームデータ処理を実現できる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、ストリームデータ処理サーバ100のハードウェア環境を示す。ストリームデータ処理サーバ100は、ひとつの計算機で実行され、演算処理を行うCPU11と、ストリームデータ21やストリームデータ処理のプログラムを格納するメモリ12と、データを格納するディスク装置13と、CPU11とディスク装置13やネットワーク112を接続するインターフェース14を含んでいる。なお、ストリームデータ処理サーバ100が複数の計算機で実行されても構わない。
ストリームデータ21として入力されるデータは、温度センサノード101、湿度センサノード102、等のセンサノードがあり、ネットワーク105を介してセンサ基地局108やクレードル109に接続されている。また、RFIDタグ103がネットワーク106を介してRFID(Radio Frequency Identification)リーダー110に接続されている。また、携帯電話104がネットワーク107を介して携帯電話基地局111に接続されている。また、株価情報を配信する株式提供サーバ118をストリームデータ21として入力しても構わない。
ネットワーク112には、前記センサ基地局108、前記クレードル109、前記RFIDリーダー110、前記携帯電話基地局111、前記株式提供サーバ118、センサネットミドルウェア、RFIDミドルウェア等のアプリケーションを実行する中継計算機113、ストリームデータ処理サーバ100に対してコマンドを入力する計算機115と、ストリームデータ処理サーバ100が出力する出力結果23を利用する計算機117が接続される。
センサ基地局108は、温度センサノード101、湿度センサノードの測定結果(例えば、温度や湿度)を出力し、RFIDリーダー110は読み取ったRFIDタグ103の情報を出力する。携帯電話基地局111は、携帯電話104の情報を出力する。これらの出力がストリームデータ21として、ストリームデータ処理サーバ100へ入力される。前記センサ基地局108、前記クレードル109、前記RFIDリーダー110、前記携帯電話基地局111、前記株式情報提供サーバ118はネットワーク112を介して直接ストリームデータ21が前記ストリームデータ処理サーバ100に入力されても、中継計算機113で処理をした後に前記ストリームデータ処理サーバ100にストリームデータ21が入力されても構わない。
また、ユーザ114が指令したコマンド22、または計算機115により生成されたコマンド22は、ネットワーク112を介して前記ストリームデータ処理サーバ100に入力される。
前記ストリームデータ処理サーバ100で処理された結果である出力結果23は、ネットワーク112を介してユーザ116が利用する計算機117上に出力される。
ここで、前記ストリームデータ処理サーバ100、前記中継計算機113、前記計算機115及び前記計算機117は、パーソナルコンピュータ、ワークステーションなどの任意のコンピュータシステムで構成され、同一の計算機でも良いし、異なる計算機でも構わない。また、前記ユーザ114、前記ユーザ116は同一のユーザでも良いし、異なるユーザでも構わない。また、ネットワーク105、106、107、112は、イーサネット(登録商標)、光ファイバ、FDDI(Fiber Distributed Data Interface)、無線等で接続されるローカルエリアネットワーク(LAN)、若しくはLANよりも低速なインターネットを含んだワイドエリアネットワーク(WAN)、若しくは公衆電話網、若しくは将来に渡って発明される類似の技術でも差し支えない。
ここで、上記図1に示した記憶装置15は、メモリ12の所定の領域とディスク装置13の所定の領域から構成される。ストリームデータ21は、主にメモリ12上の記憶装置15に格納され、問い合わせに対して高速な検索を可能にする。時々刻々と変化するストリームデータ21には、検索対象となるデータをメモリ12上の記憶装置15に格納しておき、検索の用途が済んだデータはディスク装置13上の記憶装置15に格納することができる。例えば、ストリームデータ21が温度センサノード101の測定値(温度など)の場合、ユーザ114が監視したい測定値は本日の値であり、昨日以前のものは高速に検索できなくても問題は生じない。このため、本日の測定値をメモリ12上に格納し、昨日以前の測定値をアーカイブとしてディスク装置13上に格納することができる。ここで、記憶装置15は、メモリ、ディスク、テープ、フラッシュメモリなどのいかなる記憶媒体で構わない。また、記憶装置15は、複数の記憶媒体から構成される階層構造となっていてもよい。また、記憶装置15は、将来に渡って発明される類似の技術でも差し支えない。
図1において、ストリームデータ処理サーバ100は、I/F14を介してセンサ基地局105、またはRFIDリーダー110、または中継計算機113上で実行されるアプリケーションからリアルタイムに送信された情報をストリームデータ21として入力し、ユーザ114、または計算機115上で実行されるアプリケーションにより入力されたコマンド22に基づき、入力されたストリームデータ21を有意な情報に変換して、出力結果23を生成し、ユーザ116、または計算機117上で実行されるアプリケーションへ提供するストリームデータ処理を実行する計算機(またはサーバ)である。ストリームデータは複数のストリームデータ211、212、・・・、21nから構成される。
前記計算機115は、ネットワーク112を介してストリームデータ処理サーバ100に接続されている。ここで、前記計算機115上で実行されるアプリケーション、前記計算機116上で実行されるアプリケーション、前記計算機117上で実行されるアプリケーションは、同一のアプリケーションでも良いし、異なるアプリケーションでも構わない。
ここで、本実施形態で扱うストリームデータ21は、映像や音声の配信で用いられるストリームとは異なり、ひとつのストリームデータが有意な情報に対応するものである。また、ストリームデータ処理サーバ100がセンサ基地局105、またはRFIDリーダー110、または中継計算機113上で実行されるアプリケーションから前記ストリームデータ処理サーバ100が受信するストリームデータ21は、連続的あるいは間欠的であり、ストリームデータ毎に異なる製品の情報や異なる要素が含まれる。
図2は本発明の一実施形態が適用されたストリームデータ処理サーバ、及び関連するシステム構成を示すブロック図である。
ストリームデータ処理サーバ100は、CPU11、メモリ12、DISK13、I/F14から構成され、前記メモリ12は、オペレーティングシステム(OS)200、コマンド入力部210、ストリームデータ処理部220から構成される。なお、ストリームデータ処理部220及びコマンド入力部210はプログラムで構成され、DISK13等の記憶媒体に格納される。ストリームデータ処理を行う際には、CPU11がストリームデータ処理部220及びコマンド入力部210をメモリ12へロードして実行する。
コマンド入力部210は、前記ユーザ114、または前記計算機115上で実行されるアプリケーションにより入力されたコマンドを受け付ける。次に、ストリームデータ処理部220は、前記コマンド入力部210で受け付けた前記ストリームデータを有意な情報に変換する処理内容を表す問合せに基づいて、ストリームデータ21の情報を有意な情報に変換してから出力する。
図2において、本発明の概要を説明する。ストリームデータ処理サーバ100は、ユーザ114、または計算機115上で実行されるアプリケーションが入力した問合せに基づいて、問合せ実行部230は前記ストリームデータ21を読み出し、有意な情報に変換した後、出力結果23を出力する。ここで、有意な情報とは、例えば、図1に示した温度センサノード101の測定値は、測定値のデータ系列のままではユーザ114、116が理解できないので、一定時間の温度の平均値に変換した情報である。
以下では、前記ストリームデータ処理サーバ100の構成を詳細に説明する。
コマンド入力部210は、ユーザ114が計算機115から指令したコマンド22、または計算機115上で実行されるアプリケーションから入力されるコマンド22を受け付けるインターフェース(以下、I/F)を備える。前記コマンドがストリームデータに係るコマンドの場合、ストリームデータ処理部220は、前記コマンド入力部210から入力された前記ストリームデータを登録または変更するコマンドを表すストリームデータ登録・変更コマンドを受け付けて、ストリームデータを管理するテーブル(図示省略)を更新する。
前記コマンドが問合せに係るコマンドの場合、ストリームデータ処理部220は、前記コマンド入力部210から入力された前記問合せを登録または変更するコマンドを表す問合せ登録・変更コマンドを受け付けた場合、問合せを管理するテーブル(図示省略)を更新し、前記問合せコマンドに対応するストリームデータの処理内容を表す問合せ実行部226を生成または変更する。また、ストリームデータ処理部220は、生成した実行木226を問い合わせ処理部226に送信し、格納させる。
ストリームデータ処理部220は、ストリームデータ受信部221、問合せ実行木スケジューラ222、次回発火時刻計算部223、HBT(Heart Beat Tuple)生成部224、問合せ実行木解析部225、問合せ実行部226、入力ストリームデータ保持バッファ231、システム時刻保持領域232、HBT生成用データ処理時刻保持領域233、次回発火時刻保持領域234、問合せ実行木解析結果管理テーブル235、オペレータ連結キュー236、出力結果保持バッファ237から構成される。
入力ストリームデータ保持バッファ231は、I/F14を介して前記ストリームデータ処理サーバ100に入力された前記ストリームデータ21を保持するバッファである。システム時刻保持領域232は、システムの現在時刻を保持する領域である。なお、本実施形態では、システムの現在時刻は、前記ストリームデータ処理サーバ100が有する絶対時刻情報(例えば、前記OS200が管理する現在時刻)とする。また、前記システムの現在時刻は、前記ストリームデータ処理サーバ100の外部から入力される時刻情報により更新される値でもよい。例えば、前記ストリームデータ21に付与される時刻情報を用いて、最新の時刻情報を含む該ストリームデータ21が入力された場合に、前記システムの現在時刻を更新してもよい。
ストリームデータ受信部221は、前記入力ストリームデータ保持バッファ231のデータを取得し、前記システム時刻保持領域232に保持されるシステムの現在時刻を前記ストリームデータ21に付与し、HBT生成部224に出力する。
問合せ実行部226は、ストリームデータ21を処理する内容を表したもので、ウィンドウ演算、選択演算、射影演算、結合演算、集計演算等の処理モジュールが木構造になっている。以下では、該処理モジュールをオペレータ、該木構造を実行木と呼ぶ。問合せ実行部226中の実行木は、前記コマンド入力部210に問合せに係るコマンドが入力される場合に生成される。問合せ実行部226は、HBT生成部224から出力されたデータを受信し、実行木の各オペレータが処理した結果を出力結果保持バッファ237に格納する。前記各オペレータが処理した途中結果は、オペレータ連結キュー236に格納される。なお、問合せ実行部226の実行木については、本願出願人が提案した特開2008−123426に開示されるものと同様であるので、ここでは詳述しない。
問合せ実行木スケジューラ222は、HBT生成部224、および問合せ実行部226中のオペレータの実行順序を制御する。
オペレータ連結キュー236は、前記各オペレータが処理した途中結果を保持するバッファである。出力結果保持バッファ237は、前記問合せ実行部226が出力した処理結果を格納するバッファである。出力結果保持バッファ237に格納される出力結果は、I/F14を介して図1に示した前記計算機117に出力される。
問合せ実行木解析部225は、前記問合せ実行部226中の実行木を解析し、前記ストリームデータを受け付けた時刻とは異なる時刻に前記HBTを生成するオペレータを抽出し、該オペレータ、および問合せの設定情報を問合せ実行木解析結果管理テーブル235に格納する。問合せ実行木解析結果管理テーブル235は、前記問合せ実行木解析部225で解析した結果を格納するテーブルである。
次回発火時刻計算部223は、前記問合せ実行木解析結果管理テーブル235を参照し、入力ストリームデータの時刻情報、および前記問合せ実行木解析結果管理テーブル235に格納されている前記問合せの設定情報に基づいて前記次回発火時刻を計算し、次回発火時刻保持領域234に該次回発火時刻を保持する。
ここで、次回発火時刻とは、ストリームデータ21の到着以外で問い合わせ実行部226における処理を開始する時刻である。
前記次回発火時刻計算部223は、前記問合せ実行部226において、前記問合せ実行木解析部225で抽出したオペレータが実行される場合に呼び出される。次回発火時刻保持領域234は、前記次回発火時刻計算部223で算出した該次回発火時刻を保持する領域である。
HBT生成部224は、前記ストリームデータ21を前記ストリームデータ受信部221より取得し、HBT生成用データ処理時刻保持領域233に該ストリームデータ21の受信時刻を格納し、前記問合せ実行部226に出力する。HBT生成用データ処理時刻保持領域233は、前記HBT生成部224が前記ストリームデータ21を処理した最終時刻を保持する領域である。
また、HBT生成部224は、前記システム時刻保持領域232、前記HBT生成用データ処理時刻保持領域233、前記次回発火時刻保持領域234を参照し、詳細は後述するが、前記システム時刻保持領域232に保持されるシステムの現在時刻、前記次回発火時刻保持領域234に保持される次回発火時刻、前記HBT生成用データ処理時刻保持領域233に保持されるHBT生成部が処理した最終時刻から、前記発火時刻において、前記HBTを前記問合せ実行部226に出力する。
ここで、前記ストリームデータ21、出力結果23、後述するHBT、オペレータが処理のために保持する一時保存データは、タプル形式(レコード形式)、XML形式、CSVファイル等のいかなるデータ形式でもよい。以下では、タプル形式を用いる例を説明する。
ここで、前記ストリームデータ21、出力結果23、後述するHBT、及びオペレータが処理のために保持する一時保存データは、データの実体を持つ必要はなく、データの一部、若しくは全部をデータの実体を指し示すポインタを含んでいても構わない。
図3a、図3bは、ストリームデータ21の好適なデータフォーマットの例を模式的に表した図である。図示の例では、それぞれ、図3aにおいて温度センサノード101が出力した温度ストリームデータ(S1)211、図3bにおいて湿度センサノード102が出力した湿度ストリームデータ(S2)212を示す。
図3aの温度ストリームデータ(S1)211はレコード形式であり、レコードを構成する温度センサIDカラム302、機器IDカラム303、温度カラム304、システムタイムスタンプカラム305がセグメントに相当し、前記温度センサIDカラム302、前記機器IDカラム303、前記温度カラム304、前記システムタイムスタンプカラム305の組み合わせをタプル301とする。
ここで、前記システムタイムスタンプカラム305の値は、前記温度ストリームデータ(S1)211が前記ストリームデータ処理サーバ100に入力された場合に、前記ストリームデータ処理サーバ100が前記ストリームデータ処理サーバ100に到着した時刻情報を付与する。
なお、前記システムタイムスタンプカラム305は、前記ストリームデータ処理サーバ100に入力される前に付与された時刻情報を用いてもよい。例えば、前記システムタイムスタンプカラム305の値は、前記温度ストリームデータ(S1)211が前記ストリームデータ処理サーバ100に入力される前に付与された時刻情報であり、前記温度センサ101、または前記センサ基地局106、または前記中継計算機113で実行センサネットミドルウェア等のアプリケーション上等で付与されても良い。
図3bの湿度ストリームデータ(S2)212はレコード形式であり、レコードを構成する湿度センサIDカラム312、機器IDカラム313、湿度カラム314、システムタイムスタンプカラム315がセグメントに相当し、前記湿度センサIDカラム312、前記機器IDカラム313、前記湿度カラム314、前記システムタイムスタンプカラム315の組み合わせをタプル311とする。
ここで、前記システムタイムスタンプカラム315の値は、前記湿度ストリームデータ(S2)212が前記ストリームデータ処理サーバ100に入力された場合に、前記ストリームデータ処理サーバ100が前記ストリームデータ処理サーバ100に到着した時刻情報を付与する。
なお、前記システムタイムスタンプカラム315は、前記ストリームデータ処理サーバ100に入力される前に付与された時刻情報を用いてもよい。例えば、前記システムタイムスタンプカラム315の値は、前記湿度ストリームデータ(S2)212が前記ストリームデータ処理サーバ100に入力される前に付与された時刻情報であり、前記温度センサ101、または前記センサ基地局106、または前記中継計算機113で実行センサネットミドルウェア等のアプリケーション上等で付与されても良い。
図4は、前記コマンド入力部210において、前記ストリームデータ処理サーバ100に前記ストリームデータ21を登録・設定する際の好適なコマンドの記述例である。
ストリーム登録コマンド401は、前記ユーザ114が計算機115から指示し、または前記クライアント計算機115上で実行される前記アプリケーション116から前記コマンド入力部210を通して登録される。ストリーム登録コマンド401は、前記温度ストリームデータ(S1)211が整数型(int型)を保持する温度センサIDと、整数型(int型)を保持する機器IDと、浮動小数点型(double型)を保持する温度と、から構成されるストリームデータを登録するコマンドであることを表している。これらは、前記図3に示した前記温度センサIDカラム302、前記機器IDカラム303、前記温度カラム304、にそれぞれ対応する。
また、ストリーム登録コマンド402は、前記湿度ストリームデータ(S2)212が整数型(int型)を保持する湿度センサIDと、整数型(int型)を保持する機器IDと、浮動小数点型(double型)を保持する湿度と、から構成されるストリームデータを登録するコマンドであることを表している。これらは、前記図3に示した前記湿度センサIDカラム312、前記機器IDカラム313、前記温度カラム314、にそれぞれ対応する。
前記コマンド入力部210において、前記ストリームデータ処理サーバ100に前記ストリームデータ21を登録・設定するコマンドは、前記コマンドを管理するテーブル形式に変形し、記憶媒体に保持してもよい。
本実施形態では、前記システムタイムスタンプカラム305および前記システムタイムスタンプカラム315は、自動的に含まれるものとしているが、前記ストリーム登録コマンド411において、「register stream 温度ストリーム (タイムスタンプ timestamp、温度センサID int、機器ID int、温度 double);」のように明示的に指定してもよい。
また、本実施形態では、コマンドをコマンドラインインターフェース(CLI)形式で登録した例を表したが、これに限定されるものではない。例えば、グラフィックユーザーインターフェース(GUI)を用いて上記と同様の意味の入力をしてもよく、表形式や設定ファイル、XMLファイルによる入力でもよい。以下のコマンドにおいても同様とする。
また、本実施形態では、タイムスタンプを「9:00」のような時間、及び分の形式で表しているが、「2007/9/21 9:00:00 JST」のような日付、及び
秒を含めた形式に代表される他の形式でもよい。以下の図においても、同様とする。
図5は、コマンド入力部210において、前記ストリームデータ処理サーバ100に問合せ登録コマンドを登録・設定する際の好適なコマンドの記述例である。
問合せ登録コマンド501は、前記ユーザ114、または前記クライアント計算機115上で実行される前記アプリケーション116から前記コマンド入力部210を通して登録される。
問合せ登録コマンド501は、前記温度ストリーム(S1)211の過去2分間([Range 2 minute])、及び前記湿度ストリーム(S2)212において湿度センサIDごとの最新1個([Partition by S1 温度センサID rows 1])に対して、前記温度ストリーム(S1)211の温度が20度以上である条件(S1.温度>=20)と、前記湿度ストリーム(S2)212の湿度が60%以上である条件(S2.湿度>=60)とを満たし、前記温度ストリーム(S1)211の温度センサIDと、前記湿度ストリーム(S2)212の湿度センサIDとが一致する場合に、前記温度ストリーム(S1)211のタプルと前記湿度ストリーム(S2)212のタプルを結合し(WHERE S1.温度センサID=S2.湿度センサID)、機器IDごとに(GROUP BY S1.機器ID)温度の平均値(Avg(S1.温度))、及び湿度の平均値(Avg(湿度))を計算し、温度センサID、温度の平均値、湿度の平均値のタプルの増分のみをストリーム化して(ISTREAM)、1分間遅延させて(<1 minute>)出力する処理を表す問合せであることを表している。
問合せ登録コマンド502は、前記問合せ登録コマンド501の「[Range 2 minute]」が「[Jumping 10 minute]」へと変更になっており、10分間隔で処理対象が切り替わることを表している。例えば、時間ウィンドウ(Range 2 minute)が9:01に入力されたデータは9:03まで処理対象となり、9:04に入力されたデータは9:06まで処理対象となるのに対し、ジャンピングウィンドウ(Junping 10 minute)は9:01に入力されたデータも9:04に入力されたデータも9:00−9:10(9:10を含まない)に処理対象となり、9:10において9:10−9:20が処理対象となる。また、問合せ登録コマンド502は、前記問合せ登録コマンド501の「ISTREAM()<1 minute>」が「RSTREAM[5 minute]」へと変更になっており、5分ごとに平均値のタプル集合を出力する。
前記コマンド入力部210において、前記ストリームデータ処理サーバ100に問合せ登録コマンドを登録・設定するコマンドは、前記コマンドを管理するテーブル形式に変形し、記憶媒体に保持してもよい。
図6は、問合せ実行部226の一例を表した説明図である。
問合せ実行部226は、図5に示した前記問合せ登録コマンド501が実行された場合に生成される問合せ実行部226を表している。問合せ実行部226は、処理を行うオペレータ、及びオペレータ間をつなぐオペレータ連結キュー236から構成される。本説明図では、左端が入力で右端が出力となっている。入力データとして、ストリームデータ21を入力する。ここで、前記ストリームデータとして入力されるデータ列のうち、個々のデータをタプル601とする。タプル601は前記オペレータで処理され、オペレータ連結キュー236に格納される。前記タプル601は、図2で示した前記ストリームデータ受信部221と、HBT生成部224で処理された後、オペレータ連結キュー236を介して問合せ実行部226に入力される。また、実行木241の問合せの処理結果は出力結果23として出力する。出力結果23を別のストリームデータ21として再入力することも可能である。
前記オペレータは、処理内容によって種類が異なる。図6に示すウィンドウオペレータ611、612は、前記ストリームデータ21からデータ列の数を指定し、または、切り取るデータ列の時間間隔を指定してデータ列を切り取り、ストリームデータをタプル集合へと変換する処理を行う。切り取られたタプルは、ウィンドウオペレータ611、612中に保持される。選択オペレータ613、614は、予め設定された条件に基づいて図3に示した前記タプル301、311を出力するか否かを決定する処理を行う。結合オペレータ615は、2入力以上のストリームデータ21を所定の条件のもとに結合する処理を行う。集計オペレータ616は、合計、平均、最大、最小などの予め設定した集計処理を行う。ストリーム化オペレータ617は、タプル集合を出力結果23としてのストリームデータ21へと変換する処理を行う。図6に示したオペレータ以外に、前記タプル203のカラムの一部のみを出力する処理を行う射影オペレータ等がある。
実行木2411は、図5に示した前記問合せ登録コマンド501、502が実行された場合に生成される実行木241を表している。実行木2411は、温度ストリームデータ211、湿度ストリームデータ212を入力とする。ウィンドウオペレータ611は、温度ストリームデータ211の過去2分間([Range 2 minute])を、ウィンドウオペレータ611に保持し、ウィンドウに新たに入ったタプル、およびウィンドウから出たタプルを選択オペレータ613に出力する。
ウィンドウオペレータ612は、湿度ストリームデータ212の湿度センサIDごとの最新1個([Partition by S1 湿度センサID rows 1])を、ウィンドウオペレータ612に保持し、ウィンドウに新たに入ったタプル、およびウィンドウから出たタプルを選択オペレータ614に出力する。
選択オペレータ613は、前記ウィンドウオペレータ611が出力したタプルに対して、温度が20度以上である条件(S1.温度>=20)を満たすタプルを結合オペレータ615に出力する。
選択オペレータ614は、前記ウィンドウオペレータ612が出力したタプルに対して、湿度が60%以上である条件(S2.湿度>=60)を満たすタプルを結合オペレータ615に出力する。
結合オペレータ615は、前記選択オペレータ613が出力したタプルの温度センサIDと、前記選択オペレータ614が出力したタプルの湿度センサIDとが一致する場合に、それぞれのタプルを結合し(WHERE S1.温度センサID=S2.湿度センサID)、集計オペレータ616に出力する。なお、結合オペレータ616は、結合対象のタプルを選択するため、一時保存領域に前記選択オペレータ613、前記選択オペレータ614の出力したタプルを保持する。なお、一時保存領域に保持するタプルは、データの実体であっても、ウィンドウオペレータ611、612へのポインタを含むデータであっても構わない。
集計オペレータ616は、前記結合オペレータ615の出力タプルに対して、温度ストリームデータ211の機器IDごとに(GROUP BY S1.機器ID)温度の平均値(Avg(S1.温度))、及び湿度の平均値(Avg(S2.湿度))を計算し、温度センサID、温度の平均値、湿度の平均値をストリーム化オペレータ617に出力する。なお、集計オペレータ616は、集計値を算出するためのタプルを一時保存領域に保持する。
ストリーム化オペレータ617は、前記集計オペレータ616の出力タプルの増分のみをストリーム化して1分間遅延させた上で(ISTREAM<1 minute>)出力結果231として出力する。
上記実行木2411の動作の一例は、次のようになる。
例えば、前記ストリームデータ211にタプル(温度センサID、機器ID、温度)=(1001、201、23℃)が9:00に入力されたとする。ストリームデータ受信部221において、前記タプルに対して図3に示した前記システムタイムスタンプカラム305に現在のシステム時刻情報が付与され、タプル6011(温度センサID、機器ID、温度、システムタイムスタンプ)=(1001、201、23℃、9:00)が出力される。
また、HBT生成部2241はデータが発生していない期間においても問い合わせ実行部226内の時刻を進めるためのハートビートタプル(HBT)6041を出力する。HBT6041は、HBTであることを表すHBTフラグ、およびシステムタイムスタンプを有し、例えば、9:03に出力されたHBT6041は「(HBT、9:03)」となる。HBTは各オペレータが受信すると、各オペレータが管理するオペレータ処理時刻を更新し、次のオペレータ連結キュー236に格納される。HBTの生成方法は後述する。
タプル6011は、ウィンドウオペレータ611において、過去2分間([Range 2 minute])で切り取られるウィンドウにおいて、処理対象となる期間(生存期間)が9:00から9:02までとなる。
ウィンドウオペレータ611は、タプル6011の生存期間を表すため、タプルの生存期間開始時にタプルの生存期間が開始したことを表すプラスフラグを有するプラスタプル6021を出力し、タプルの生存期間終了時にタプルの生存期間が終了したことを表すマイナスフラグを有するマイナスタプル6031を出力する。前記タプルのプラスタプル6021は「(+、1001、201、23℃、9:00)」となり、マイナスタプル6031は「(−、1001、201、23℃、9:00)」となる。
前記ウィンドウオペレータ611は、プラスタプル6021は受信時に出力し、出力したタプルを一時保存領域に保持しておく。そして、前記HBT6041を受信すると、HBT6042をオペレータ連結キュー236に格納する。また、前記ウィンドウオペレータ611が管理する前記オペレータ処理時刻が「9:00」から「9:03」に更新され、前記マイナスタプル6031を出力することができる。9:03に出力されたHBT6041を用いて前記マイナスタプル6031を出力する場合、9:02から9:03までの時間が問い合わせ実行部2261のレイテンシとして表れてしまう。このレイテンシが前記課題で述べたレイテンシである。前記マイナスタプル6031を出力するレイテンシを短縮するためには、ウィンドウオペレータ611が9:02に前記HBTを受信する必要がある。
なお、マイナスタプル6031はネガティブタプル(Negative Tuple)と表現される場合もある。また、本方式以外に、タプルに生存期間終了を埋め込んで処理する等、上記生存期間を表す方式はいかなる方式でも構わない。
また、前記HBT6041は結合オペレータ615のように2入力以上を扱うオペレータでも必要となる。例えば、結合オペレータ615は、時刻の古い順にオペレータ連結キュー2362、オペレータ連結キュー2363からタプルを取得する。
例えば、プラスタプル6022は「(+、1001、201、21℃、8:40)」が前記オペレータ連結キュー2362中、プラスタプル6023は「(+、1001、201、69%、8:30)」が前記オペレータ連結キュー2363中にある場合、前記プラスタプル6023を先に前記オペレータ連結キュー2363中から結合オペレータ615が取得する。次に、結合オペレータ615が前記プラスタプル6022を前記オペレータ連結キュー2362中から取得しようとするが、前記オペレータ連結キュー2363に8:40以前のデータが格納されるかもしれないため、前記プラスタプル6022を取得できない。ここで、HBT6043「(HBT、8:45)」が前記オペレータ連結キュー2363に格納されると、前記結合オペレータ615は、前記プラスタプル6022を取得し、処理を実行する。
また、集計オペレータ616では、ゴーストと呼ばれる生存開始と生存終了のタイムスタンプが同一であり、生存期間がないタプルが生成されることがある。例えば、集計対象のタプルの湿度カラムの値が「64、66、68、70、72」である場合に、湿度カラムの平均値は「68」となる。ここで、タイムスタンプ「8:20」において、マイナスタプル6032「(−、64、8:20)」が到着した場合に、湿度の平均値は「66、68、70、72」の平均となるため「69」となり、集計値「69」を有するプラスタプルが生成される。しかしながら、同じタイムスタンプのプラスタプル6024「(+、74、8:20)」が到着した場合に、湿度の平均値は「66、68、70、72、74」の平均となるため「70」となり、集計値「69」を有するマイナスタプル、および集計値「70」を有するプラスタプルが生成される。すなわち、前記集計値「69」を有するプラスタプルは、生存期間がないタプルとなる。前記集計オペレータ611でゴーストを除去する場合、8:20以後のシステムタイムスタンプを有するタプルが到着すればよく、例えば、8:25のシステムタイムスタンプを有するHBT6043「(HBT、8:45)」が到着すると8:40の集計値が確定するため、前記集計値「70」を有するプラスタプルを出力することができる。
なお、本実施形態では、集計オペレータ616でゴーストを除去したが、他のオペレータで除去しても構わない。例えば、ストリーム化オペレータ617でゴーストを除去しても構わない。また、すべての集計オペレータ617がゴースト除去機能を有するとしているが、コマンドラインインターフェース(CLI)形式、グラフィックユーザーインターフェース(GUI)、表形式、設定ファイル、XMLファイルによる入力により、オペレータごとにゴースト除去機能をオンオフしてもよい。また、ゴースト除去機能を有する平均をAVG_Gなどの問合せ上に記述してもよい。
また、本実施形態に示す実行木中のプラスタプル、およびHBTは、オペレータ連結キュー内、およびグラフ構造において親子関係にあるオペレータ上では、時刻の逆転はなく、入力側のタイムスタンプが新しく、出力側のタイムスタンプが古い値となる。
図7は、問合せ実行木解析結果管理テーブル235の構成例を表した説明図である。
対象オペレータカラム701には、図6の前記問合せ実行木解析部225で抽出した該オペレータを格納する。設定項目カラム702には、前記問合せ実行木解析部225で抽出したオペレータに設定されているウィンドウのサイズ、遅延サイズ、出力間隔などの設定項目を格納する。前回実行時刻カラム703には、前記ジャンピングウィンドウ(Jumping Window)や定期的な間隔で出力するストリーム化オペレータ(RStream)の場合に、該オペレータが前回処理を実行し、出力した時刻を格納する。
例えば、行704は、図5に示した問合せ登録コマンド501から生成された実行木を解析した結果、抽出したオペレータの問合せ実行木解析結果管理テーブル235を表している。抽出方法の詳細は後述する。
行704は、対象オペレータカラム701の値が「ウィンドウオペレータ611(Range Window)」、設定項目カラム702の値が「スライディングウィンドウサイズ=2分」、前回実行時刻カラム703の値が「―」であることを表している。
ここで、問合せ実行木解析結果管理するテーブルは、図7に示した表形式の他に、設定ファイル、XMLファイルなど任意の形式でよい。以下のテーブルにおいても、同様とする。
図8は、ストリームデータ処理サーバ100の全体の処理を表したフローチャートである。この処理はストリームデータ処理サーバ100の管理者がストリームデータ処理部220を起動することなどで開始される。
まず、図2に示した前記問合せ実行木解析部225が登録クエリのクエリ実行木から発火オペレータを抽出し、前記問合せ実行木解析結果管理テーブル235に登録する(802)。前記ステップ802の処理の詳細内容は図9で後述する。なお、発火オペレータは、ストリームデータ21の到着を待たずに処理を開始する必用のあるオペレータを指し、例えば、所定の時間間隔で処理結果を出力するオペレータなど、処理に関する時間的制約を有するオペレータである。
次に、HBT生成部224でストリームデータ21を受け付けた時刻情報を他のHBT生成用データ処理時刻保持領域233に保持する(803)。前記ステップ803の処理の詳細内容は図10で後述する。
次に、次回発火時刻計算部223で次回発火時刻を計算し、次回発火時刻保持領域234に保持する(804)。前記ステップ804の処理の詳細内容は図11で後述する。
次に、前記HBT生成部224で前記次回発火時刻保持領域234に保持された発火時刻において、HBTを挿入(発生)する(805)。前記ステップ805の処理の詳細内容は図12で後述する。
次に、前記コマンド入力部210でシステム終了コマンドを受け付けたか否かを判定する(806)。前記ステップ806でNOと判定された場合は、前記ステップ802に戻り、前記ステップ806でYESと判定された場合は、前記ストリームデータ処理サーバ100の処理を終了する(807)。
図9は、図8に示した前記ステップ802の発火オペレータの抽出及び登録処理を表したフローチャートである。
下記に示すステップ903からステップ912までの処理を図2に示した問合せ実行部226中の全オペレータに対して問合せ実行木解析部225が繰り返す(902)。
まず、対象オペレータが時間を表すスライディングウィンドウオペレータ(Range Window)か否かを判定する(903)。前記ステップ903でYESと判定された場合は、問合せ実行木グラフ解析結果管理テーブル235に該対象オペレータ、および該スライディングウィンドウサイズを登録する(904)。
前記ステップ904が終了した場合、または前記ステップ903でNOと判定された場合、対象オペレータが時間を表すジャンピングウィンドウオペレータ(Jumping Window)か否かを判定する(905)。前記ステップ905でYESと判定された場合は、問合せ実行木グラフ解析結果管理テーブル235に該対象オペレータ、および該ジャンピングウィンドウサイズを登録する(906)。
前記ステップ906が終了した場合、または前記ステップ905でNOと判定された場合、対象オペレータが時間を表す遅延を発生させるストリーム化オペレータ(IStream、DStream、IDStream)か否かを判定する(907)。前記ステップ907でYESと判定された場合は、問合せ実行木グラフ解析結果管理テーブル235に該対象オペレータ、および該遅延サイズを登録する(908)。
前記ステップ908が終了した場合、または前記ステップ907でNOと判定された場合、対象オペレータが時間を表す定期的な間隔で出力するストリーム化オペレータ(RStream)か否かを判定する(909)。前記ステップ909でYESと判定された場合は、問合せ実行木グラフ解析結果管理テーブル235に該対象オペレータ、および該出力間隔を登録する(910)。
前記ステップ910が終了した場合、または前記ステップ909でNOと判定された場合、対象オペレータがゴーストを除去する機能を有するオペレータ(Sum、Count、Average、Min、Max、Median、Variable、Standard Deviation、Limit)か否かを判定する(911)。前記ステップ911でYESと判定された場合は、問合せ実行木グラフ解析結果管理テーブル235に該対象オペレータ、および最小時間単位(例えば、1ミリ秒、1ナノ秒、1ミリ秒の下に通し番号を持つなど)を登録する(912)。
前記ステップ912が終了した場合、または前記ステップ911でNOと判定された場合、前記ステップ902に戻り、再び前記ステップ903から前記ステップ912までを繰り返す。全オペレータに対して処理が終了した場合、前記ステップ802の処理を終了する(913)。
以下では、図5に示した問合せ登録コマンド501、問合せ登録コマンド502、および図6に示した問合せ実行部2261を用いて、図7に示した問合せ実行木解析結果管理テーブル235を上記図9の処理で作成する例を示す。
図5に示した問合せ登録コマンド501を登録すると、図6に示した問合せ実行部2261が生成される。ストリームデータ処理部220は前記問合せ実行部2261に対して、図9のフローチャートを実行する。
まず、ウィンドウオペレータ611は、時間を表すスライディングウィンドウオペレータ(Range window、[Range 2 minute])であるため、前記ステップ903でYESと判定され、「ウィンドウオペレータ611」、および「スライディングウィンドウサイズ=2分」が問合せ実行木解析結果管理テーブル235の行704に登録される。
次に、ウィンドウオペレータ612は、グループ別行ウィンドウ(Partitioned window、[Partition by S1 湿度センサID rows 1])であるため、前記ステップ903、905、907、909、911でいずれもNOと判定される。同様に、選択オペレータ613、選択オペレータ614、結合オペレータ615も、前記ステップ903、905、907、909、911でいずれもNOと判定される。
集計オペレータ616は、ゴーストを除去する機能を有するオペレータ(Avg(S1.温度)、Avg(S2.湿度))であるため、前記ステップ911でYESと判定され、「集計オペレータ616」、および「時刻最小単位」が問合せ実行木解析結果管理テーブル235の行705に登録される。
ストリーム化オペレータ617は、遅延を発生させるストリーム化オペレータ(ISTREAM()<1 minute>)であるため、前記ステップ907でYESと判定され、「ストリーム化オペレータ617」、および「遅延サイズ=1分」が問合せ実行木解析結果管理テーブル235の行706に登録される。
また、図5に示した問合せ登録コマンド502を登録すると、図6に示した問合せ実行部2261と同様の問合せ実行部226が生成され、図9のフローチャートを実行する。
前記問合せ登録コマンド502の[Jumping 10 minute]の記述は、時間を表すジャンピングウィンドウオペレータ(Jumping window)を生成するため、前記ステップ905でYESと判定され、「ウィンドウオペレータxxx」、および「ジャンピングウィンドウサイズ=10分」が問合せ実行木解析結果管理テーブル235の行707に登録される。
また、前記問合せ登録コマンド502のRSTREAM[5 minute]の記述は、時間を表すジャンピングウィンドウオペレータ(RStream)を生成するため、前記ステップ909でYESと判定され、「ウィンドウオペレータyyy」、および「出力間隔=5分」が問合せ実行木解析結果管理テーブル235の行708に登録される。
なお、本実施形態では、すべての集計オペレータがゴースト除去機能を有するとしているが、コマンドラインインターフェース(CLI)形式、グラフィックユーザーインターフェース(GUI)、表形式、設定ファイル、XMLファイルによる入力により、オペレータごとにゴースト除去機能をオンオフしてもよい。また、ゴースト除去機能を有する平均をAVG_Gなどの問合せ上に記述してもよい。
上記処理によって、処理の開始に時間的制約のある発火オペレータが、問合せ実行木グラフ解析結果管理テーブル235に登録される。
図10は、図8に示した前記ステップ803のストリームデータの入力及び登録処理を表したフローチャートである。
まず、HBT生成部224は、図2に示したストリームデータ受信部221で該ストリームデータ21を受け付けた否かを判定する(1002)。前記ステップ1002でYESと判定された場合は、該ストリームデータ21を受け付けたHBT生成部224以外の次回発火時刻保持領域234に受け付けたストリームデータ21の入力時刻情報を登録し(1003)、HBT生成部224でHBT生成用データ処理時刻保持領域233の最終データ入力時刻を受け付けたストリームデータ21の入力時刻情報の値に更新する(1004)。
前記ステップ1004が終了した場合、または前記ステップ1002でNOと判定された場合は、前記ステップ803の処理を終了する(1005)。
図11は、図8に示した前記ステップ804の次回発火時刻計算処理を表したフローチャートである。
まず、次回発火時刻計算部223は、対象オペレータが時間を表すスライディングウィンドウオペレータ(Range Window)か否かを判定する(1102)。前記ステップ1102でYESと判定された場合は、次回発火時刻保持領域234に前記問合せ実行部226中の該対象オペレータに入力したタプルに付与されている該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル235に登録されている該スライディングウィンドウサイズの値を登録する(1103)。
前記ステップ1103が終了した場合、または前記ステップ1102でNOと判定された場合、次回発火時刻計算部223は対象オペレータが時間を表すジャンピングウィンドウオペレータ(Jumping Window)か否かを判定する(1104)。前記ステップ1104でYESと判定された場合は、次回発火時刻保持領域234に前記問合せ実行部226中の該対象オペレータで前回処理を実行した該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル235に登録されている該ジャンピングウィンドウサイズの値を登録する(1105)。
前記ステップ1105が終了した場合、または前記ステップ1104でNOと判定された場合、次回発火時刻計算部223は対象オペレータが時間を表す遅延を発生させるストリーム化オペレータ(IStream、DStream、IDStream)か否かを判定する(1106)。前記ステップ1106でYESと判定された場合は、次回発火時刻保持領域234に前記問合せ実行部226中の該対象オペレータに入力したタプルに付与されている該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル235に登録されている該遅延サイズの値を登録する(1107)。
前記ステップ1107が終了した場合、または前記ステップ1106でNOと判定された場合、次回発火時刻計算部223は対象オペレータが時間を表す定期的な間隔で出力するストリーム化オペレータ(RStream)か否かを判定する(1108)。前記ステップ1108でYESと判定された場合は、次回発火時刻保持領域234に前記問合せ実行部226中の該対象オペレータで前回処理を実行した該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル235に登録されている該出力間隔の値を登録する(1109)。
前記ステップ1109が終了した場合、または前記ステップ1108でNOと判定された場合、次回発火時刻計算部223は対象オペレータがゴーストを除去する機能を有するオペレータ(Sum、Count、Average、Min、Max、Median、Variable、Standard Deviation、Limit)か否かを判定する(1110)。前記ステップ1110でYESと判定された場合は、次回発火時刻保持領域234に前記問合せ実行部226中の該対象オペレータに入力したタプルに付与されている該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル235に登録されている最小時刻単位の値を登録する(1111)。
前記ステップ1111が終了した場合、または前記ステップ1110でNOと判定された場合、前記ステップ804の処理を終了する(1112)。
上記処理により、次回発火時刻保持領域234には、問合せ実行部226中のオペレータで前回処理を実行した時刻情報に、問合せ実行木グラフ解析結果管理テーブル235に登録されている時刻情報の和が格納される。すなわち、次回発火時刻保持領域234には、各オペレータが次回に処理を開始すべき時刻である次回発火時刻が格納される。
図12は、図8に示した前記ステップ805のHBT挿入(または発生)処理を表したフローチャートである。
まず、図2に示した前記HBT生成部224は前記システム時刻保持領域232に保持される現在のシステム時刻を取得する(1202)。次に、前記HBT生成部224で前記次回発火時刻保持領域234に保持される最古の次回発火システム時刻を取得する(1203)。次に、HBT生成部224で該現在のシステム時刻と該次回発火システム時刻を比較し、該現在のシステム時刻の値が該次回発火システム時刻の値以上(現在のシステム時刻の値>=次回発火システム時刻)か否かを判定する(1204)。
前記ステップ1204でYESと判定された場合は、前記HBT生成部224で前記HBT用データ処理時刻保持領域233に保持される最終データ入力時刻を取得し、前記HBT生成部224で該最終データ入力時刻と前記ステップ1203で取得した該次回発火システム時刻を比較し、該最終データ入力時刻が該次回発火システム時刻よりも小さい(最終データ入力時刻<次回発火システム時刻)か否かを判定する(1206)。
前記ステップ1206でYESと判定された場合は、前記HBT生成部224で前記HBT生成用データ処理時刻保持領域233に保持される最終データ入力時刻を前記ステップ1202で取得した該次回発火システム時刻の値に更新し(1207)、前記HBT生成部224で該次回発火システム時刻のHBTを送信する(1208)。
前記ステップ1208が終了した場合、または前記ステップ1206でNOと判定された場合は、前記HBT生成部224で前記次回発火時刻保持領域234に保持される前記ステップ1202で取得した該次回発火システム時刻の値を削除する(1209)。
前記ステップ1209が終了した場合、または前記ステップ1204でNOと判定された場合は、前記ステップ805の処理を終了する(1210)。
ここで、前記ステップ1203では、次回発火時刻保持領域234に保持される最古の次回発火システム時刻を取得しているが、前記ステップ1203で現在時刻の値以下であり、かつ最新の次回発火時刻を取得し、前記ステップ1209で該次回発火時刻の値以下の時刻情報を削除してもよい。
上記処理により、現在のシステム時刻の値が次回発火システム時刻の値以上で、かつ、最終データ入力時刻が次回発火システム時刻よりも小さい、という条件を満たしたときにHBT生成部224は次回発火システム時刻のHBTを送信する。これにより、図6に示した実行木2411のオペレータは、ストリームデータ21の到着を待たずに処理を開始することができる。
図13は、次回発火時刻計算処理、およびHBT生成処理を例示したシーケンス図を表している。
図13では、図6に示した前記ストリームデータ受信部221、HBT生成部2241、次回発火時刻保持領域2341、HBT生成用データ処理時刻保持領域2331、HBT生成部2242、次回発火時刻保持領域2342、HBT生成用データ処理時刻保持領域2332、ウィンドウオペレータ611、ウィンドウオペレータ612、および図2に示した次回発火時刻計算部223、システム時刻保持領域232を用いて説明する。また、前記図8、図10、図11、図12に示したフローチャートも用いて説明する。ここで、HBT生成部2241、HBT生成部2242、ウィンドウオペレータ611、ウィンドウオペレータ612は図2に示した問合せ実行木スケジューラ222によって、処理の実行順が制御される。
まず、ストリームデータ受信部221に図6に示すストリームデータ211が入力されたとする(1301)。図3、および図4に示した通り温度ストリームデータ211の形態は、温度センサID302、機器ID303、温度304であり、前記1301では、温度センサID302の値が「1001」、機器ID303の値が「201」、温度304の値が「23℃」とする。前記1301では、形式を簡略化し、「23℃」のみを示す。
次に、ストリームデータ受信部221は、システム保持領域232に保持される現在時刻「9:00」を取得し(1302)、システムタイムスタンプ305の値に「9:00」を格納し、HBT生成部2241に送信する(1303)。
HBT生成部2241は、図10に示すフローチャートの処理に従い、前記ステップ1002でYESと判定され、前記ステップ1003でストリームデータ211のタプル「9:00、23℃」を受け付けたHBT生成部2241以外の次回発火時刻保持領域234、すなわちHBT生成部2242の次回発火時刻保持領域2342に受け付けたストリームデータ211の入力時刻情報「9:00」を登録する(1304)。次に、HBT生成部2241でHBT生成用データ処理時刻保持領域2331の最終データ入力時刻を受け付けたストリームデータ211の入力時刻情報「9:00」の値に更新し(1305)、ウィンドウオペレータ611に前記タプル「9:00、23℃」を送信する(1306)。
ウィンドウオペレータ611は、ウィンドウオペレータ611独自の処理を実行後、次回発火時刻の計算処理を実行する。図11に示すフローチャートに従い、前記ステップ1102でYESと判定され、次回発火時刻保持領域2341、次回発火時刻保持領域2342にウィンドウオペレータ611に入力したタプル「9:00、23℃」に付与されている時刻情報「9:00」+図7に示した前記問合せ実行木グラフ解析結果管理テーブル235の行704に登録されているスライディングウィンドウサイズ「2分」=「9:02」の値を登録する(1308、1309)。ここで、次回発火時刻保持領域2342へは追記となり、次回発火時刻保持領域2342に格納されている時刻情報は、「9:00、9:02」となる。次に、前記ステップ1104、1106、1108、1110でいずれもNOと判定され、処理を終了する。また、ウィンドウオペレータ611は、タプルが処理対象となったことを表すプラスフラグを付与してタプル「+、9:00、23℃」を図6に示した選択オペレータ613へ送信する(前記ウィンドウオペレータ611と前記選択オペレータ613をつなぐオペレータ連結キュー236に格納する) (1311)。
HBT生成部2242は、図12に示すフローチャートに従い、前記ステップ1202で前記システム時刻保持領域232に保持される現在のシステム時刻「9:00」を取得し(1321)、前記ステップ1203で前記次回発火時刻保持領域2342に保持される最古の次回発火システム時刻「9:00」を取得する(1322)。前記ステップ1204では、該現在のシステム時刻「9:00」>=該次回発火システム時刻「9:00」の関係が成り立つためYESと判定され、前記ステップ1205でHBT生成用データ処理時刻保持領域2332の最終データ入力時刻「―(まだ更新されていないためデータは何も格納されていない)」を取得する(1323)。前記ステップ1206では、該最終データ入力時刻―(まだ更新されていないためデータは何も格納されていない)<該次回発火システム時刻「9:00」の関係が成り立つためYESと判定され、前記ステップ1207でHBT生成用データ処理時刻保持領域2332に保持される最終データ入力時刻を前記ステップ1322で取得した次回発火システム時刻「9:00」の値に更新する(1324)。次に、前記ステップ1208では前記ステップ1322で取得した次回発火システム時刻「9:00」のHBT「HBT、9:00」をウィンドウオペレータ612へ送信し(1325)、前記ステップ1209で次回発火時刻保持領域2342に保持される前記ステップ1322で取得した次回発火システム時刻「9:00」の値を削除する(1326)。ウィンドウオペレータ612は、グループ別行ウィンドウ(Partitioned window)であるため、HBT「HBT、9:00」を受信しても何も処理を実行せず、HBT「HBT、9:00」を図6に示した選択オペレータ614へ送信する(前記ウィンドウオペレータ612と前記選択オペレータ614をつなぐオペレータ連結キュー236に格納する) (1327)。
HBT生成部2241は、図12に示すフローチャートに従い、前記ステップ1202で前記システム時刻保持領域232に保持される現在のシステム時刻「9:01」を取得し(1331)、前記ステップ1203で前記次回発火時刻保持領域2341に保持される最古の次回発火システム時刻「9:02」を取得する(1332)。前記ステップ1204では、該現在のシステム時刻「9:01」>=該次回発火システム時刻「9:02」の関係が成り立たないためNOと判定され、処理を終了する。
同様に、HBT生成部2242は、図12に示すフローチャートに従い、前記ステップ1202で前記システム時刻保持領域232に保持される現在のシステム時刻「9:01」を取得し(1341)、前記ステップ1203で前記次回発火時刻保持領域2341に保持される最古の次回発火システム時刻「9:02」を取得する(1342)。前記ステップ1204では、該現在のシステム時刻「9:01」>=該次回発火システム時刻「9:02」の関係が成り立たないためNOと判定され、処理を終了する。
HBT生成部2241は、図12に示すフローチャートに従い、前記ステップ1202で前記システム時刻保持領域232に保持される現在のシステム時刻「9:02」を取得し(1351)、前記ステップ1203で前記次回発火時刻保持領域2341に保持される最古の次回発火システム時刻「9:02」を取得する(1352)。前記ステップ1204では、該現在のシステム時刻「9:02」>=該次回発火システム時刻「9:02」の関係が成り立つためYESと判定され、前記ステップ1205でHBT生成用データ処理時刻保持領域2331の最終データ入力時刻「9:00」を取得する(1353)。前記ステップ1206では、該最終データ入力時刻「9:00」<該次回発火システム時刻「9:02」の関係が成り立つためYESと判定され、前記ステップ1207でHBT生成用データ処理時刻保持領域2331に保持される最終データ入力時刻を前記ステップ1352で取得した次回発火システム時刻「9:02」の値に更新する(1354)。次に、前記ステップ1208では前記ステップ1352で取得した次回発火システム時刻「9:02」のHBT「HBT、9:02」をウィンドウオペレータ611へ送信し(1355)、前記ステップ1209で次回発火時刻保持領域2341に保持される前記ステップ1352で取得した次回発火システム時刻「9:02」の値を削除する(1356)。ウィンドウオペレータ611は、HBT「HBT、9:02」を図6に示した選択オペレータ613へ送信する(前記ウィンドウオペレータ611と前記選択オペレータ613をつなぐオペレータ連結キュー236に格納する) (1357)。また、前記HBT「HBT、9:02」により、前記ステップ1311で送信したタプル「+、9:00、23℃」が処理対象から外れる(Range 2 minuteという定義のため、9:00のタプルは9:02に処理対象から外れる)ため、処理対象から外れたことをあらわすマイナスフラグ(−)を付与したタプル「−、9:00、23℃」を図6に示した選択オペレータ613へ送信する(前記ウィンドウオペレータ612と前記選択オペレータ613をつなぐオペレータ連結キュー236に格納する) (1358)。
同様に、HBT生成部2242は、図12に示すフローチャートに従い、前記ステップ1202で前記システム時刻保持領域232に保持される現在のシステム時刻「9:02」を取得し(1361)、前記ステップ1203で前記次回発火時刻保持領域2342に保持される最古の次回発火システム時刻「9:02」を取得する(1362)。前記ステップ1204では、該現在のシステム時刻「9:02」>=該次回発火システム時刻「9:02」の関係が成り立つためYESと判定され、前記ステップ1205でHBT生成用データ処理時刻保持領域2332の最終データ入力時刻「9:00」を取得する(1363)。前記ステップ1206では、該最終データ入力時刻「9:00」<該次回発火システム時刻「9:02」の関係が成り立つためYESと判定され、前記ステップ1207でHBT生成用データ処理時刻保持領域2332に保持される最終データ入力時刻を前記ステップ1362で取得した次回発火システム時刻「9:02」の値に更新する(1364)。次に、前記ステップ1208では前記ステップ1362で取得した次回発火システム時刻「9:02」のHBT「HBT、9:02」をウィンドウオペレータ612へ送信し(1365)、前記ステップ1209で次回発火時刻保持領域2342に保持される前記ステップ1362で取得した次回発火システム時刻「9:02」の値を削除する(1366)。ウィンドウオペレータ612は、HBT「HBT、9:02」を図6に示した選択オペレータ614へ送信する(前記ウィンドウオペレータ612と前記選択オペレータ614をつなぐオペレータ連結キュー236に格納する) (1367)。このとき、前記ウィンドウオペレータ612が前記HBT「HBT、9:02」を受信しても、処理対象には変化は生じない。
次に、ストリームデータ受信部221に図6に示すストリームデータ212が入力されたとする(1371)。図3、および図4に示した通り温度ストリームデータ212の形態は、湿度センサID312、機器ID313、湿度314であり、前記1371では、湿度センサID312の値が「2001」、機器ID313の値が「201」、湿度304の値が「67%」とする。前記1371では、形式を簡略化し、「67%」のみを示す。
次に、ストリームデータ受信部221は、システム保持領域232に保持される現在時刻「9:03」を取得し(1372)、システムタイムスタンプ315の値に「9:03」を格納し、HBT生成部2242に送信する(1373)。
以下、同様の処理を繰り返す。
<第一実施形態まとめ>
ウィンドウによってストリームデータの処理対象が定義されるデータに対して処理し、時刻が進んだことを表すHBTを前記ストリームデータに加えて挿入(発生)するストリームデータ処理方法において、受け付けた該ストリームデータの時刻情報を、前記HBTを生成するHBT生成部が前記HBTを挿入する時刻である発火時刻として次回発火時刻保持領域に保持する。また、前記ストリームデータの処理方法を表す問合せから前記ストリームデータを受け付けた時刻とは異なる時刻に前記HBTを生成する処理モジュールを抽出し、前記抽出した処理モジュール、および前記ストリームデータを受け付けた時刻情報から前記発火時刻を算出し、前記次回発火時刻保持領域に保持する。そして、前記次回発火時刻保持領域に保持された前記発火時刻において、前記HBT生成部が前記HBTを発生する。上記処理により、本発明の目的である時刻制御情報を必要なとき挿入することが可能であることを示した。
また、上記に示したように、本発明の処理では、時刻制御情報を必要なとき挿入すればよく、時刻制御情報の量を削減することができる。しかしながら、処理モジュールが必要なタイミングでは時刻制御情報が挿入されるため、低レイテンシであるストリームデータ処理を実現できる。
以上、本発明の第一の実施形態について説明した。
本発明は、上記に示した第一の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。以下では、第一の実施形態とは異なる実施形態により、同様、または更なる効果を得ることが可能である、若しくは第一の実施形態と組み合わせることにより更なる効果を得ることが可能であることを説明する。
例えば、図9に示したフローチャート、および図13に示した次回発火時刻計算処理、およびHBT生成処理受信時の処理を例示したシーケンス図では、すべての前記次回発火領域に対して該次回発火時刻を格納していた。しかし、図14に示したフローチャートのように、前記次回発火領域に対して該次回発火時刻を格納するか否かを判定することで、すべての次回発火時刻保持領域に該次回発火時刻を格納しなくてもよい。
以下では、図14に示すフローチャートを説明する。
ストリームデータ処理部220は、すべてのHBT生成部224nを対象に下記に示す処理を繰り返す(1402)。
前回のステップ1403の処理でYESと判定された場合、対象HBT生成部224nは、次回発火時刻を格納しようとしている対象オペレータと実行木のグラフ構造で親子関係か否かを判定する(1403)。親子関係とは、図6に示した前記実行木2411において、対象となる2個のオペレータが、ストリームデータ21が通る経路上にあるか否かで判定される。前記結合オペレータ615など2入力以上のストリームデータを扱う場合、出力側のオペレータはいずれの入力のオペレータとも親子関係となる。例えば、図6において、前記集計オペレータ616と、前記HBT生成部2241は親子関係となる。
前記ステップ1404が終了した場合、または前記ステップ1403でNOと判定された場合、対象HBT生成部224nの次回発火時刻保持領域234nに該次回発火時刻を登録する(1404)。すべてのHBT生成部224nに対して前記ステップ1403、1404を処理した場合、処理を終了する(1405)。
図14に示したフローチャートでは、次回発火時刻を格納する時点で、次回発火時刻保持領域に格納するか否かを判定しているが、あらかじめ対象オペレータがどの次回発火時刻保持領域に格納するかを、テーブルに格納しておき、前記テーブルを参照してもよい。
<第二実施形態>
以下では、本発明の第二の実施形態について説明する。
第一の実施形態では、前記ストリームデータ処理サーバ100において、データが発生していない期間においても時刻を進めるためのHBTを、前記HBT生成部224で必要なとき生成することにより、前記問合せ実行部226の処理待ちを解消することができることを示した。
第二の実施形態では、複数の計算機において、第一の計算機における時刻情報を用いて第二の計算機においてストリームデータ処理を行う場合にも、第一の計算機における時刻情報を第二の計算機に送信する必要があり、上述した前記問合せ実行部226の処理待ちの問題と同様の問題が生じる。
第二の実施形態では、複数の計算機において、第一の計算機における時刻情報を用いて第二の計算機においてストリームデータ処理を行う場合に、第一の計算機における時刻情報を第二の計算機に必要なとき時刻制御情報を送信することを特徴とする。なお、第二の実施形態では、前記問合せ実行部226内部で用いられるHBTとは区別し、前記時刻制御情報をシステムタイムスタンプタプル(STT)と呼ぶ。STTは、前記HBTと同様の形態であり、STTであることを表すSTTフラグ、および発生した時刻情報を有する。なお、STTは他の形態でもよい。
第一の実施形態で示したように、第二の計算機において、次回発火時刻を計算し、第一の計算機に送信する。前記第一の計算機は、該次回発火時刻に基づいて、STTを第二の計算機に送信する。なお、第二の計算機における問合せ実行は第一の実施形態で示した処理方法でも、他の任意の方法でも構わない。例えば、HBTを用いずに問合せを処理しても構わない。
図15は本発明の第二の実施形態が適用されたストリームデータ処理サーバ、及び関連するシステム構成を示すブロック図である。
ストリームデータ処理サーバ100は、図1に示した前記ストリームデータ処理サーバ100と同様であり、CPU11、メモリ12、DISK13、I/F14から構成され、前記メモリ12は、オペレーティングシステム(OS)200、コマンド入力部210、ストリームデータ処理部220から構成される。オペレーティングシステム(OS)200、およびコマンド入力部210は、図2に示した前記オペレーティングシステム(OS)200、および前記コマンド入力部210と同一である。ストリームデータ処理サーバ100のストリームデータ処理部220Aは、前記第一実施形態のストリームデータ処理部220からシステム時刻保持領域と次回発火時刻保持領域を削除し、STT受信部1562を加えたものである。
また、アプリケーション動作サーバ1500は、CPU1501、メモリ1502、DISK1503、I/F1504から構成され、前記メモリ1502は、オペレーティングシステム(OS)1510、コマンド入力部1520、ストリームデータ生成アプリケーション1530から構成される。前記ストリームデータ処理サーバ100と前記アプリケーション動作サーバ1500はI/F14、およびI/F1504を介して図1に示すネットワーク112に接続される。
図15において、本発明の概要を説明する。アプリケーション動作サーバ1500は、ストリームデータ21を生成し、前記アプリケーション動作サーバ1500が保持する時刻情報を付与し、ストリームデータ処理サーバ100に送信する。前記ストリームデータ処理サーバ100は、ユーザ114が計算機115から指令した問い合わせ、または計算機115上で実行されるアプリケーションが入力した問合せに基づいて、前記ストリームデータ21を読み出し、前記アプリケーション動作サーバ1500が保持する時刻情報に基づいて有意な情報に変換した後、出力結果23を出力する。ここで、有意な情報とは、例えば、図1温度センサノード101の測定値は、測定値のデータ系列のままではユーザ114、116が理解できないので、一定時間の平均値に変換した情報である。
以下では、前記ストリームデータ処理サーバ100の構成を詳細に説明する。
ストリームデータ処理部220は、ストリームデータ受信部1561、STT受信部1562、ストリームデータ処理部1563、次回発火時刻計算部1564、問合せ実行木グラフ解析部1565、問合せ実行用時刻保持領域1571、入力ストリームデータ保持バッファ1572、問合せ実行木解析結果管理テーブル1573、オペレータ連結キュー1574、出力結果保持バッファ1575から構成される。
入力ストリームデータ保持バッファ1572は前記入力ストリームデータ保持バッファ231と同一である。
ストリームデータ受信部1561は、前記入力ストリームデータ保持バッファ1572のデータを取得し、ストリームデータ処理実行部1563に出力する。なお、本実施形態では、前記アプリケーション動作サーバが付与した時刻情報に基づいて処理するため、前記ストリームデータ処理サーバ100が保持するシステムの現在時刻は用いない。
ストリームデータ処理実行部1563は、前記アプリケーション動作サーバが付与した時刻情報に基づいてストリームデータ21を処理する。処理方法は任意の方法で良い。例えば、図2に示した前記問合せ実行部226、前記問合せ実行木スケジューラ222、前記HBT生成部224を合わせたような処理部でよい。本実施形態では、前記問合せ実行部226で示したようなウィンドウ演算、選択演算、射影演算、結合演算、集計演算等のオペレータが木構造(実行木)になっているものとする。ストリームデータ処理実行部1563は、ストリームデータ受信部1561から出力されたデータを受信し、実行木の各オペレータが処理した結果を出力結果保持バッファ1575に格納する。前記各オペレータが処理した途中結果は、オペレータ連結キュー1574に格納される。
オペレータ連結キュー1574、および出力結果保持バッファ1575は、前記オペレータ連結キュー236、および前記出力結果保持バッファ237と同一である。また、問合せ実行木解析部1565、および問合せ実行木解析結果管理テーブル1573は、前記問合せ実行木解析部225、および前記問合せ実行木解析結果管理テーブル235と同一である。
次回発火時刻計算部1564は、前記問合せ実行木解析結果管理テーブル1573を参照し、入力ストリームデータの時刻情報、および前記問合せ実行木解析結果管理テーブル1573に格納されている前記問合せの設定情報に基づいて次回発火時刻を計算し、該次回発火時刻を次回発火時刻メッセージとしてI/F14を介して前記アプリケーション動作サーバ1500に送信する。前記次回発火時刻計算部1564は、前記ストリームデータ処理実行部1563において、前記問合せ実行木解析部1565で抽出したオペレータが実行される場合に呼び出される。
STT受信部1562は、後述する前記アプリケーション動作サーバ1500のSTT生成部1542より送信されたSTTをI/F14を介して受信し、STTに付与される時刻情報を問合せ実行用時刻保持領域1571に保持する。問合せ実行用時刻保持領域1571は、前記アプリケーション動作サーバ1500より送信される時刻情報を保持する領域であり、該時刻情報に基づいてストリームデータ処理実行部1563が問合せを実行する。
次に、前記アプリケーション動作サーバ1500の構成を詳細に説明する。
コマンド入力部1520は、前記ユーザ114が計算機115から指令したコマンド、または前記計算機115上で実行されるアプリケーションにより入力されたコマンドを受け付ける。
ストリームデータ生成アプリケーション1530は、ストリームデータ生成部1531、次回発火時刻メッセージ受信部1541、STT生成部1542、システム時刻保持領域1551、次回発火時刻保持領域1552から構成される。
システム時刻保持領域1551は、システムの現在時刻を保持する領域である。なお、本実施形態では、システムの現在時刻は、前記アプリケーション動作サーバ1500が有する絶対時刻情報(例えば、OS1510が管理する現在時刻)とする。また、システムの現在時刻は、他の計算機から入力される時刻情報により更新される値でもよい。
ストリームデータ生成部1531は、前記ストリームデータ21を生成し、前記システム時刻保持領域1551に保持されるシステムの現在時刻を前記ストリームデータ21に付与し、I/F1504を介してストリームデータ処理サーバ100に送信する。
次回発火時刻メッセージ受信部1541は、前記アプリケーション動作サーバ1500の次回発火時刻計算部1564より送信された前記次回発火時刻メッセージをI/F1504を介して受信し、次回発火時刻メッセージに付与される時刻情報を次回発火時刻保持領域1552に保持する。次回発火時刻保持領域1552は、前記次回発火時刻メッセージ受信部1541で受信した該次回発火時刻メッセージに付与される次回発火時刻を保持する領域である。
STT生成部1542は、前記システム時刻保持領域1551、前記次回発火時刻保持領域1552を参照し、詳細は後述するが、前記システム時刻保持領域232に保持されるシステムの現在時刻、前記次回発火時刻保持領域234に保持される次回発火時刻から、前記発火時刻において、前記STTをI/F1504を介して前記ストリームデータ処理サーバ100に送信する。
ここで、前記ストリームデータ21、出力結果23、次回発火時刻メッセージ、STT、オペレータが処理のために保持する一時保存データは、タプル形式(レコード形式)、XML形式、CSVファイル等のいかなるデータ形式でもよい。以下では、タプル形式を用いる例を説明する。また、前記ストリームデータ21、出力結果23、STT、オペレータが処理のために保持する一時保存データは、データの実体を持つ必要はなく、データの一部、若しくは全部をデータの実体を指し示すポインタを含んでいても構わない。
また、アプリケーション動作サーバ1500は、ストリームデータ処理を実行するサーバでも構わない。例えば、前記ストリームデータ生成部1531は、図15に示した前記ストリームデータ処理部220であってもよい。そして、ストリームデータ処理を第一の計算機、および第二の計算機に分割して処理し、第一の計算機でストリームデータ処理した時刻情報を用いて、第二の計算機がストリームデータ処理を実行してもよい。
図16は、ストリームデータ処理サーバ100、およびアプリケーション動作サーバ1500の全体処理を表したフローチャートである。
まず、図15に示した前記ストリームデータ処理サーバ100の前記問合せ実行木解析部1565で登録クエリのクエリ実行木から発火オペレータを抽出し、前記問合せ実行木解析結果管理テーブル1573に登録する(1602)。前記ステップ1602の処理の詳細内容は図9で示したフローチャートと同一である。
次に、前記ストリームデータ処理サーバ100の前記次回発火時刻計算部1564で次回発火時刻を計算し、前記アプリケーション動作サーバ1500に次回発火時刻メッセージを送信する(1603)。前記ステップ1603の処理の詳細内容は図17で後述する。
次に、前記アプリケーション動作サーバ1500の前記次回発火時刻メッセージ受信部1541で該次回発火時刻メッセージを受信し、前記アプリケーション動作サーバ1500の次回発火時刻保持領域1552に保持する(1604)。
次に、前記アプリケーション動作サーバ1500の前記STT生成部1542で前記次回発火時刻保持領域1552に保持された発火時刻において、STTを前記ストリームデータ処理サーバ100に送信する(1605)。前記ステップ1605の処理の詳細内容は図18で後述する。
次に、前記ストリームデータ処理サーバ100の前記コマンド入力部210でシステム終了コマンド受け付けたか否かを判定する(1606)。前記ステップ1606でNOと判定された場合は、前記ステップ1602に戻り、前記ステップ1606でYESと判定された場合は、前記ストリームデータ処理サーバ100の処理を終了する(1607)。
図17は、図16に示した前記ステップ1603の次回発火時刻計算処理を表したフローチャートである。
まず、ストリームデータ処理サーバ100の次回発火時刻計算部1564が、対象オペレータが時間を表すスライディングウィンドウオペレータ(Range Window)か否かを判定する(1702)。前記ステップ1702でYESと判定された場合は、次回発火時刻計算部1564は、前記アプリケーション動作サーバ1500に図15に示した前記ストリームデータ処理実行部1563中の該対象オペレータに入力したタプルに付与されている該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル1573に登録されている該スライディングウィンドウサイズの値を次回発火時刻メッセージとして送信する(1703)。
前記ステップ1703が終了した場合、または前記ステップ1702でNOと判定された場合、次回発火時刻計算部1564は、対象オペレータが時間を表すジャンピングウィンドウオペレータ(Jumping Window)か否かを判定する(1704)。前記ステップ1704でYESと判定された場合は、次回発火時刻計算部1564が、前記アプリケーション動作サーバ1500に前記ストリームデータ処理実行部1563中の該対象オペレータで前回処理を実行した該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル1573に登録されている該ジャンピングウィンドウサイズの値を次回発火時刻メッセージとして送信する(1705)。
前記ステップ1705が終了した場合、または前記ステップ1704でNOと判定された場合、次回発火時刻計算部1564は、対象オペレータが時間を表す遅延を発生させるストリーム化オペレータ(IStream、DStream、IDStream)か否かを判定する(1706)。前記ステップ1706でYESと判定された場合は、次回発火時刻計算部1564が、前記アプリケーション動作サーバ1500に前記ストリームデータ処理実行部1563中の該対象オペレータに入力したタプルに付与されている該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル1573に登録されている該遅延サイズの値を次回発火時刻メッセージとして送信する(1707)。
前記ステップ1707が終了した場合、または前記ステップ1706でNOと判定された場合、次回発火時刻計算部1564は、対象オペレータが時間を表す定期的な間隔で出力するストリーム化オペレータ(RStream)か否かを判定する(1708)。前記ステップ1708でYESと判定された場合は、次回発火時刻計算部1564が、前記アプリケーション動作サーバ1500に前記ストリームデータ処理実行部1563中の該対象オペレータで前回処理を実行した該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル1573に登録されている該出力間隔の値を次回発火時刻メッセージとして送信する(1709)。
前記ステップ1709が終了した場合、または前記ステップ1708でNOと判定された場合、次回発火時刻計算部1564は、対象オペレータがゴーストを除去する機能を有するオペレータ(Sum、Count、Average、Min、Max、Median、Variable、Standard Deviation、Limit)か否かを判定する(1710)。前記ステップ1710でYESと判定された場合は、次回発火時刻計算部1564が、前記アプリケーション動作サーバ1500に前記ストリームデータ処理実行部1563中の該対象オペレータに入力したタプルに付与されている該時刻情報+前記問合せ実行木グラフ解析結果管理テーブル1573に登録されている最小時刻単位の値を次回発火時刻メッセージとして送信する(1711)。
前記ステップ1711が終了した場合、または前記ステップ1710でNOと判定された場合、前記ステップ1603の処理を終了する(1712)。
上記の処理により、対象オペレータに入力したタプルに付与されている時刻情報に、問合せ実行木グラフ解析結果管理テーブル1573に登録されている時刻情報の和から、発火オペレータの次回発火時刻が計算され、次回発火時刻メッセージとしてアプリケーション動作サーバ1500へ送信される。
図18は、図16に示した前記ステップ1605で行われるアプリケーション動作サーバ1500のSTT生成部1542の処理を表したフローチャートである。
まず、図15に示した前記STT生成部1542で前記システム時刻保持領域1551に保持される現在のシステム時刻を取得する(1802)。次に、前記STT生成部1542で前記次回発火時刻保持領域1551に保持される最古の次回発火システム時刻を取得する(1803)。次に、前記STT生成部1542で該現在のシステム時刻と該次回発火システム時刻を比較し、該現在のシステム時刻の値が該次回発火システム時刻の値以上(現在のシステム時刻の値>=次回発火システム時刻)か否かを判定する(1804)。
前記ステップ1804でYESと判定された場合は、前記STT生成部1542で該次回発火システム時刻のSTTを送信し(1805)、前記STT生成部1542で前記次回発火時刻保持領域1551に保持される前記ステップ1802で取得した該次回発火システム時刻の値を削除する(1806)。
前記ステップ1806が終了した場合、または前記ステップ1804でNOと判定された場合は、前記ステップ1605の処理を終了する(1807)。
ここで、前記ステップ1803では、前記次回発火時刻保持領域1551に保持される最古の次回発火システム時刻を取得しているが、前記ステップ1803で現在時刻の値以下であり、かつ最新の次回発火時刻を取得し、前記ステップ1806で該次回発火時刻の値以下の時刻情報を削除してもよい。
以上、本発明の第二の実施形態について説明した。
<まとめ>
本発明は、上記に示した第一、および第二の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。また、上記に示した第一、および第二の実施形態を組み合わせた実施形態も可能である。
例えば、上記の実施形態では、図2、図15に示した次回発火時刻保持領域に保持するデータ量に制限を設けなかったが、メモリ上限値を定めて、上限値を超えた場合に、適切な処理をしてもよい。例えば、時刻情報の古いデータを削除する、入力ストリームデータを一時的に止める、入力ストリームデータの一部を削除して処理(シュレッディング)、してもよい。
また、上記の実施形態では、次回発火時刻計算部、問合せ実行木解析部は前記ストリームデータ処理サーバ100内として説明したが、前記ストリームデータ処理サーバ100とは異なる別の計算機で処理しても構わない。
また、上記の実施形態では、ストリームデータ処理サーバにおいて時刻制御情報(HBT、およびSTT)を処理する例を説明したが、データベースシステム等のストリームデータ処理サーバ以外のシステムで、上記の実施形態で示した時刻制御情報を処理してもよい。
また、上記の実施形態では、ストリームデータ処理サーバ100、およびアプリケーション動作サーバ1500は、任意のコンピュータシステムとして説明したが、前記ストリームデータ処理サーバ100、および前記アプリケーション動作サーバ1500で行う処理の一部、若しくは全部をストレージ装置で行ってもよい。
また、上記の実施形態では、センサ基地局108が温度データ、および湿度データをストリームデータ21としてストリームデータ処理サーバ100に入力する例を説明したが、これに限定されるものではない。例えば、センサ基地局108に代わって多数のセンサノードを管理するセンサネットサーバが、センサノードの測定値をストリームデータ21と出力し、ストリームデータ処理サーバ100でユーザ116が理解可能な有意な情報を含む出力結果23に変換し、計算機117へ提供するようにしてもよい。また、ストリームデータ処理サーバ100に入力するデータは、RFIDリーダーで読み込んだタグの情報、RFIDを一元管理するRFIDミドルウェアシステムである計算機113から入力されるデータでもよい。また、株式情報提供サーバ118から入力されるデータでもよい。他にも、ETCシステムなどの交通情報、自動改札機やクレジットカードなどのICカード情報、株価情報などの金融情報、製造工程管理情報、呼情報、システムログ、ネットワークアクセス情報、トレーサビリティ個品情報、監視映像メタデータ、Webクリックストリームなどでもよい。
以上のように、本発明は時刻制御情報を必要なとき挿入(または発生)することで時刻制御情報の量を削減しつつ、低レイテンシであるストリームデータ処理を実現できる。特に、リアルタイムで処理する必要があるストリームデータの量が膨大な量になるファイナンシャルアプリケーション、交通情報システム、トレーサビリティシステム、センサモニタリングシステム、計算機システム管理などに適用することができる。
本発明の計算機システムの一例を示すブロック図である。 本発明の第一実施形態を示したストリームデータ処理サーバの構成を示すブロック図である。 本発明の第一実施形態を示し、ストリームデータ21の好適なデータフォーマットの例を模式的に表した図である。 本発明の第一実施形態を示し、ストリームデータ21の好適なデータフォーマットの他の例を模式的に表した図である。 本発明の第一実施形態を示し、ストリームデータ21をストリームデータ処理サーバ100に登録・設定する際の好適なコマンドの記述例を示す説明図である。 本発明の第一実施形態を示し、問合せ登録コマンドをストリームデータ処理サーバ100に登録・設定する際の好適なコマンドの記述例を示す説明図である。 本発明の第一実施形態を示し、問合せ実行部226の一例を表した説明図である。 本発明の第一実施形態を示し、問合せ実行木解析結果管理テーブル235の構成例を表した図である。 本発明の第一実施形態を示し、全体処理を表したフローチャートである。 本発明の第一実施形態を示し、発火オペレータ抽出処理の処理手順を表したフローチャートである。 本発明の第一実施形態を示し、ストリームデータ受付時刻情報を保持する処理手順を表したフローチャートである。 本発明の第一実施形態を示し、次回発火時刻を計算する処理手順を表したフローチャートである。 本発明の第一実施形態を示し、HBTを生成する処理手順を表したフローチャートである。 本発明の第一実施形態を示し、次回発火時刻計算処理、およびHBT生成処理を例示したシーケンス図である。 本発明の第一実施形態を示し、次回発火時刻を格納する次回発火時刻保持領域を選択する処理手順を表したフローチャートである。 本発明の第二実施形態を示したストリームデータ処理サーバの構成を示すブロック図である。 本発明の第二実施形態の全体処理を表したフローチャートである。 本発明の第二実施形態を示し、次回発火時刻を送信する処理手順を表したフローチャートである。 本発明の第二実施形態を示し、STTを送信する処理手順を表したフローチャートである。
符号の説明
100 ストリームデータ処理サーバ
11 CPU
12 MEMORY
13 DISK
14 I/F
21 ストリームデータ
22 コマンド
23 出力結果
101 温度センサノード
102 湿度センサノード
103 RFIDタグ
104 携帯電話
105 ネットワーク
106 ネットワーク
107 ネットワーク
108 センサ基地局
109 クレードル
110 RFIDリーダー
111 携帯電話基地局
112 ネットワーク
113 中継計算機
114 ユーザ
115 計算機
116 ユーザ
117 計算機
118 株式提供サーバ
200 オペレーティングシステム(OS)
210 コマンド入力部
220 ストリームデータ処理部
221 ストリームデータ受信部
222 問合せ実行木スケジューラ
223 次回発火時刻計算部
224 HBT生成部
225 問合せ実行木解析部
226 問合せ実行部
231 入力ストリームデータ保持バッファ
232 システム時刻保持領域
233 HBT生成用データ処理時刻保持領域
234 次回発火時刻保持領域
235 問合せ実行木解析結果管理テーブル
236 オペレータ連結キュー
237 出力結果保持バッファ

Claims (13)

  1. プロセッサと記憶装置を備えた計算機に入力されたストリームデータを1次情報として受け付けて、前記受け付けた1次情報のうち所定の期間の1次情報を処理対象として取得して2次情報として生成し、時刻が進んだことを表す時刻制御情報を前記1次情報に加えて発生するストリームデータ処理プログラムにおいて、
    前記入力されたストリームデータを1次情報として受け付ける手順と、
    前記1次情報を受け付けた時点の時刻情報を前記時刻制御情報として生成する時刻制御情報生成部が、前記時刻制御情報を発生する時刻を次回発火時刻として求め、当該次回発火時刻を前記記憶装置に設定された次回発火時刻保持領域に格納する手順と、
    現在の時刻情報が前記保持領域に保持された前記次回発火時刻となったときに、前記時刻制御情報を発生する手順と、
    前記発生された時刻制御情報を受け付けたときに、前記受け付けた1次情報のうち所定の期間の1次情報を処理対象として取得して2次情報として生成する手順と、
    を前記計算機に実行させることを特徴とするストリームデータ処理プログラム。
  2. 請求項1に記載のストリームデータ処理プログラムであって、
    前記1次情報を取得して2次情報として生成する処理内容を定義した問い合わせを受け付けて登録する手順と、
    前記受け付けた問い合わせで定義された処理内容を実行する処理モジュールを生成する手順と、をさらに含み、
    前記1次情報を受け付けた時点の時刻情報を前記時刻制御情報として生成する時刻制御情報生成部が、前記時刻制御情報を発生する時刻を次回発火時刻として求め、当該次回発火時刻を前記記憶装置に設定された次回発火時刻保持領域に格納する手順は、
    前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用のある処理モジュールを抽出する手順と、
    前記抽出した処理モジュールと前記1次情報を受け付けた時刻情報から前記次回発火時刻を算出する手順と、
    含むことを特長とするストリームデータ処理プログラム。
  3. 請求項2に記載のストリームデータ処理プログラムであって、
    前記1次情報を受け付けた時点の時刻情報を前記時刻制御情報として生成する時刻制御情報生成部が、前記時刻制御情報を発生する時刻を次回発火時刻として求め、当該次回発火時刻を前記記憶装置に設定された次回発火時刻保持領域に格納する手順は、
    前記処理モジュールに接続されて前記時刻制御情報を生成する前記時刻制御情報生成部を複数生成する手順を含み、
    前記時刻制御情報を発生する時刻を次回発火時刻として求め、当該次回発火時刻を前記記憶装置に設定された次回発火時刻保持領域に格納する手順は、
    前記時刻制御情報生成部が前記1次情報を受け付けたか否かを判定する手順と、
    前記1次情報を受け付けた前記時刻制御情報生成部とは異なる時刻制御情報生成部が保持する次回発火時刻保持領域に前記受け付けた1次情報の時刻情報を保持する手順と、
    前記時刻制御情報生成部が処理した時刻情報を格納する時刻制御情報生成用データ処理時刻保持領域に、前記受け付けた1次情報の時刻情報を保持する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  4. 請求項3に記載のストリームデータ処理プログラムであって、
    前記現在の時刻情報が前記保持領域に保持された前記次回発火時刻となったときに、前記時刻制御情報を発生する手順は、
    前記計算機の現在時刻を保持するシステム時刻保持領域から現在時刻を取得する手順と、
    前記次回発火時刻保持領域に保持された前記次回発火時刻を取得する手順と、
    該取得した現在時刻が前記次回発火時刻以上か否かを判定する手順と、
    該取得した現在時刻が前記次回発火時刻以上の場合に、前記時刻制御情報生成部に前記1次情報が入力した最終時刻を保持する時刻制御情報生成用データ処理時刻保持領域から最終データ入力時刻を取得する手順と、
    該取得した最終データ入力時刻が前記次回発火時刻より小さいか否かを判定する手順と、
    該取得した最終データ入力時刻が前記次回発火時刻より小さい場合に、前記時刻制御情報生成用データ処理時刻保持領域の前記最終データ入力時刻を更新する手順と、
    前記次回発火時刻における時刻制御情報を発生する手順と、
    前記取得した最終データ入力時刻が前記次回発火時刻以上の場合に、前記次回発火時刻保持領域に保持された前記次回発火時刻を削除する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  5. 請求項2に記載のストリームデータ処理プログラムであって、
    前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用のある処理モジュールを抽出する手順は、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間の範囲で処理対象の範囲を切り取るスライディングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がスライディングウィンドウ演算である場合には、前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用のある処理モジュールを管理する問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび時間サイズを登録する第1の手順と、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間間隔で処理対象の範囲を切り取るジャンピングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がジャンピングウィンドウ演算である場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび時間間隔を登録する第2の手順と、
    前記処理モジュールが問合せの処理結果を遅延させて出力する処理モジュールであるか否かを判定し、前記判定が遅延させる場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび遅延サイズを登録する第3の手順と、
    前記処理モジュールが定期的な間隔で問合せの処理結果の集合を出力する処理モジュールであるか否かを判定し、前記判定が処理結果の集合を出力する場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび出力間隔を登録する第4の手順と、
    前記処理モジュールが問合せの処理結果において、処理結果の前記処理対象となる時間がゼロである処理結果を除去する機能を有する処理モジュールであるか否かを判定し、前記判定がゼロである処理結果を除去する機能を有する処理モジュールである場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび最小時間単位を登録する第5の手順と、
    をさらに含み、
    前記登録された問合せから生成された問合せ実行木から、すべての処理モジュールに対して、前記第1の手順から第5の手順のうちの1つ、若しくは複数の手順を繰り返すことを特徴とするストリームデータ処理プログラム。
  6. 請求項5に記載のストリームデータ処理プログラムであって、
    前記1次情報を受け付けた時点の時刻情報を前記時刻制御情報として生成する時刻制御情報生成部が、前記時刻制御情報を発生する時刻を次回発火時刻として求め、当該次回発火時刻を前記記憶装置に設定された次回発火時刻保持領域に格納する手順は、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間の範囲で処理対象の範囲を切り取るスライディングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がスライディングウィンドウ演算を行う場合には、前記次回発火時刻保持領域に入力時刻情報と前記問合せ解析結果管理テーブルに登録されている前記時間サイズとを加えた値を登録する手順と、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間の範囲で処理対象の範囲を切り取るジャンピングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がジャンピングウィンドウ演算を行う場合には、前記処理モジュールが実行した時刻情報と前記問合せ解析結果管理テーブルに登録されている前記時間間隔とを加えた値を登録する手順と、
    前記処理モジュールが問合せの処理結果を遅延させて出力する処理モジュールであるか否かを判定し、前記判定が遅延させて出力する場合には、前記次回発火時刻保持領域に入力時刻情報と前記問合せ解析結果管理テーブルに登録されている前記遅延サイズとを加えた値を登録する手順と、
    前記処理モジュールが定期的な間隔で問合せの処理結果の集合を出力する処理モジュールであるか否かを判定し、前記判定が処理結果の集合を出力する場合には、前記処理モジュールが実行した時刻情報と前記問合せ解析結果管理テーブルに登録されている前記出力間隔とを加えた値を登録する手順と、
    前記処理モジュールが問合せの処理結果において、処理結果の前記処理対象となる時間がゼロである処理結果を除去する機能を有する処理モジュールであるか否かを判定し、前記判定がゼロである処理結果を除去する機能を有する場合には、前記次回発火時刻保持領域に入力時刻情報と前記問合せ解析結果管理テーブルに登録されている前記時間サイズとを加えた値を登録する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  7. 請求項5に記載のストリームデータ処理プログラムであって、
    前記1次情報を受け付けた時点の時刻情報を前記時刻制御情報として生成する時刻制御情報生成部が、前記時刻制御情報を発生する時刻を次回発火時刻として求め、当該次回発火時刻を前記記憶装置に設定された次回発火時刻保持領域に格納する手順は、
    すべての前記時刻制御情報生成部に対して、前記時刻制御情報生成部が前記抽出した処理モジュールと木構造となっているグラフ構造において親子関係にあるか否かを判定し、前記判定が親子関係の場合には、前記次回発火時刻を前記次回発火時刻保持領域に保持する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  8. 請求項2に記載のストリームデータ処理プログラムであって、
    前記計算機は、第一の計算機と第二の計算機を含み、
    前記第一の計算機で生成されたストリームデータを1次情報として受け付けて、前記第一の計算機で生成された時刻情報を前記1次情報に付与して前記第二の計算機に送信し、
    前記第二の計算機が前記受け付けた1次情報のうち所定の期間の1次情報を処理対象として取得して2次情報として生成する処理を実行し、前記第一の計算機が、時刻が進んだことを表す時刻制御情報を前記1次情報に加えて第二の計算機に送信し、
    前記第二の計算機が前記1次情報を取得して2次情報として生成する処理内容を定義した問合せから前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用のある処理モジュールを抽出する手順と、
    前記第二の計算機が前記抽出した処理モジュールおよび前記1次情報を受け付けた時刻情報から前記時刻制御情報を生成する時刻制御情報生成部が前記時刻制御情報を生成する時刻である次回発火時刻を算出し、該次回発火時刻を次回発火時刻メッセージとして前記第一の計算機に送信する手順と、
    前記第一の計算機が該次回発火時刻を受け付けて、前記次回発火時刻を保持する次回発火時刻保持領域に保持する手順と、
    前記第一の計算機が前記次回発火時刻保持領域に保持された次回発火時刻において、前記時刻制御情報生成部が前記時刻制御情報を前記第二の計算機に送信する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  9. 請求項8に記載のストリームデータ処理プログラムであって、
    前記第一の計算機が前記次回発火時刻保持領域に保持された次回発火時刻において、前記時刻制御情報生成部が前記時刻制御情報を前記第二の計算機に送信する手順は、
    第一の計算機の現在時刻を保持するシステム時刻保持領域から現在時刻を取得する手順と、
    前記次回発火時刻保持領域に保持された次回発火時刻を取得する手順と、
    該取得した現在時刻が前記次回発火時刻以上か否かを判定する手順と、
    該取得した現在時刻が前記次回発火時刻以上の場合に前記次回発火時刻における時刻制御情報を生成する手順と、
    該取得した最終データ入力時刻が次回発火時刻以上の場合に、前記次回発火時刻保持領域に保持された次回発火時刻を削除する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  10. 請求項8に記載のストリームデータ処理プログラムであって、
    前記第二の計算機が前記1次情報を取得して2次情報として生成する処理方法を表す問合せから前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用のある処理モジュールを抽出する手順は、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間の範囲で処理対象の範囲を切り取るスライディングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がスライディングウィンドウ演算を行う場合には、前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用のある処理モジュールを管理する問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび時間サイズを登録する第6の手順と、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間間隔で処理対象の範囲を切り取るジャンピングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がジャンピングウィンドウ演算を行う場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび時間間隔を登録する第7の手順と、
    前記処理モジュールが問合せの処理結果を遅延させて出力する処理モジュールであるか否かを判定し、前記判定が遅延させて出力する場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび遅延サイズを登録する第8の手順と、
    前記処理モジュールが定期的な間隔で問合せの処理結果の集合を出力する処理モジュールであるか否かを判定し、前記判定が処理結果の集合を出力する場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび出力間隔を登録する第9の手順と、
    前記処理モジュールが問合せの処理結果において、処理結果の前記処理対象となる時間がゼロである処理結果を除去する機能を有する処理モジュールであるか否かを判定し、前記判定がゼロである処理結果を除去する機能を有する場合には、前記問合せ実行木グラフ解析結果管理テーブルに前記処理モジュールおよび最小時間単位を登録する第10の手順と、
    をさらに含み、
    前記登録された問合せから生成された問合せ実行木から、すべての処理モジュールに対して、前記第6の手順から第10の手順のうちの1つ、若しくは複数の手順を繰り返すことを特徴とするストリームデータ処理プログラム。
  11. 請求項10に記載のストリームデータ処理プログラムであって、
    前記第一の計算機が該次回発火時刻を受け付けて、前記次回発火時刻を保持する次回発火時刻保持領域に保持する手順は、
    前記処理モジュールが前記1次情報に対して、前記問合わせで指定された時間の範囲で処理対象の範囲を切り取るスライディングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がスライディングウィンドウ演算を行う場合には、前記次回発火時刻保持領域に入力時刻情報と前記問合せ解析結果管理テーブルに登録されている前記時間サイズとを加えた値を登録する手順と、
    前記処理モジュールが前記1次情報に対して、前記問合せで指定された時間の範囲で処理対象の範囲を切り取るジャンピングウィンドウ演算を行う処理モジュールであるか否かを判定し、前記判定がジャンピングウィンドウ演算を行う場合には、前記処理モジュールが実行した時刻情報と前記問合せ解析結果管理テーブルに登録されている前記時間間隔とを加えた値を登録する手順と、
    前記処理モジュールが問合せの処理結果を遅延させて出力する処理モジュールであるか否かを判定し、前記判定が遅延させて出力する場合には、前記次回発火時刻保持領域に入力時刻情報と前記問合せ解析結果管理テーブルに登録されている前記遅延サイズとを加えた値を登録する手順と、
    前記処理モジュールが定期的な間隔で問合せの処理結果の集合を出力する処理モジュールであるか否かを判定し、前記判定が処理結果の集合を出力する場合には、前記処理モジュールが実行した時刻情報と前記問合せ解析結果管理テーブルに登録されている前記出力間隔とを加えた値を登録する手順と、
    前記処理モジュールが問合せの処理結果において、処理結果の前記処理対象となる時間がゼロである処理結果を除去する機能を有する処理モジュールであるか否かを判定し、前記判定がゼロである処理結果を除去する機能を有する場合には、前記次回発火時刻保持領域に入力時刻情報と前記問合せ解析結果管理テーブルに登録されている前記時間サイズとを加えた値を登録する手順と、
    を含むことを特徴とするストリームデータ処理プログラム。
  12. プロセッサと記憶装置及びインターフェースを備えて、前記記憶装置に設定されて、前記インターフェースを介して入力されたストリームデータを1次情報として取得し、該取得した1次情報のうち所定の期間の前記1次情報を取得して2次情報として生成し、時刻が進んだことを表す時刻制御情報を前記1次情報に加えて生成する計算機システムにおいて、
    前記1次情報を取得して2次情報として生成する処理内容を表す問合せから前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用がある処理モジュールを抽出する問合せ実行木解析部と、
    前記抽出した処理モジュールおよび前記1次情報を受け付けた時刻情報から前記時刻制御情報を生成する時刻制御情報生成部が前記時刻制御情報を生成する時刻である発火時刻を算出し、該発火時刻を前記記憶装置に設定した次回発火時刻保持領域に格納する次回発火時刻計算部と、
    前記1次情報を受け付けた時点の時刻情報を前記時刻制御情報として生成する時刻制御情報生成部と、を備え、
    前記時刻制御情報生成部は、
    現在の時刻情報が前記次回発火時刻保持領域に保持された前記発火時刻になったときに、前記時刻制御情報を生成することを特徴とする計算機システム。
  13. 第一の計算機で生成されたストリームデータを1次情報として受け付けて、前記第一の計算機で生成された時刻情報を前記1次情報に付与して第二の計算機に送信し、
    前記第二の計算機が前記受け付けた1次情報のうち所定の期間の1次情報を取得して2次情報として生成し、
    前記第一の計算機が、時刻が進んだことを表す時刻制御情報を前記1次情報に加えて第二の計算機に送信する計算機システムにおいて、
    前記第二の計算機が前記1次情報を取得して2次情報として生成する処理内容を表す問合せから前記1次情報を受け付けた時刻とは異なる時刻に前記時刻制御情報を生成する必用がある処理モジュールを抽出する問合せ実行木解析部と、
    前記第二の計算機が前記抽出した処理モジュールおよび前記1次情報を受け付けた時刻情報から前記時刻制御情報を生成する時刻制御情報生成部が前記時刻制御情報を生成する時刻である発火時刻を算出し、該発火時刻を前記第一の計算機に送信する次回発火時刻計算部と、
    前記第一の計算機が該発火時刻を受け付けて、前記発火時刻を保持する次回発火時刻保持領域に保持する次回発火時刻メッセージ受信部と、
    前記第一の計算機が前記次回発火時刻保持領域に保持された発火時刻において、前記時刻制御情報生成部が前記時刻制御情報を前記第二の計算機に送信する時刻制御情報生成部と、
    を備えたことを特徴とする計算機システム。
JP2008276685A 2008-10-28 2008-10-28 ストリームデータ処理プログラム及び計算機システム Expired - Fee Related JP5154366B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008276685A JP5154366B2 (ja) 2008-10-28 2008-10-28 ストリームデータ処理プログラム及び計算機システム
US12/606,641 US8095690B2 (en) 2008-10-28 2009-10-27 Machine-readable medium for storing a stream data processing program and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008276685A JP5154366B2 (ja) 2008-10-28 2008-10-28 ストリームデータ処理プログラム及び計算機システム

Publications (2)

Publication Number Publication Date
JP2010108044A JP2010108044A (ja) 2010-05-13
JP5154366B2 true JP5154366B2 (ja) 2013-02-27

Family

ID=42118569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008276685A Expired - Fee Related JP5154366B2 (ja) 2008-10-28 2008-10-28 ストリームデータ処理プログラム及び計算機システム

Country Status (2)

Country Link
US (1) US8095690B2 (ja)
JP (1) JP5154366B2 (ja)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US9107565B2 (en) * 2010-08-16 2015-08-18 Fujitsu Limited Identifying an event occurrence from sensor data streams
US8260803B2 (en) * 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. System and method for data stream processing
JP5480395B2 (ja) * 2010-10-06 2014-04-23 株式会社日立製作所 ストリームデータ処理方法及び装置
US9111238B2 (en) 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data feed having customizable analytic and visual behavior
US9104992B2 (en) 2010-12-17 2015-08-11 Microsoft Technology Licensing, Llc Business application publication
US9304672B2 (en) 2010-12-17 2016-04-05 Microsoft Technology Licensing, Llc Representation of an interactive document as a graph of entities
US9171272B2 (en) * 2010-12-17 2015-10-27 Microsoft Technology Licensing, LLP Automated generation of analytic and visual behavior
US9336184B2 (en) 2010-12-17 2016-05-10 Microsoft Technology Licensing, Llc Representation of an interactive document as a graph of entities
US9069557B2 (en) 2010-12-17 2015-06-30 Microsoft Technology Licensing, LLP Business intelligence document
US9864966B2 (en) 2010-12-17 2018-01-09 Microsoft Technology Licensing, Llc Data mining in a business intelligence document
US9024952B2 (en) 2010-12-17 2015-05-05 Microsoft Technology Licensing, Inc. Discovering and configuring representations of data via an insight taxonomy
US9110957B2 (en) 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data mining in a business intelligence document
US20120173752A1 (en) * 2010-12-30 2012-07-05 Kellogg Brown & Root Llc Methods for Managing Data Acquisition and Transfer
JPWO2013137067A1 (ja) * 2012-03-15 2015-08-03 日本電気株式会社 演算装置、演算方法及び演算プログラム
US8768956B2 (en) * 2012-04-25 2014-07-01 Hitachi, Ltd. Stream data processing method with multiple windows on single stream
US9391830B2 (en) 2012-09-26 2016-07-12 International Business Machines Corporation Dynamic stream processing within an operator graph
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
US9020785B2 (en) 2012-11-09 2015-04-28 International Business Machines Corporation Identifying and routing poison tuples in a streaming application
US9122725B2 (en) 2012-12-06 2015-09-01 International Business Machines Corporation Tuple routing in a streaming application
US9195559B2 (en) 2012-12-12 2015-11-24 International Business Machines Corporation Management of stream operators with dynamic connections
US9400823B2 (en) * 2012-12-20 2016-07-26 Hitachi, Ltd. Stream data processing method on recursive query of graph data
US9183175B2 (en) 2013-01-28 2015-11-10 International Business Machines Corporation Memory management in a streaming application
US9251205B2 (en) 2013-02-21 2016-02-02 International Business Machines Corporation Streaming delay patterns in a streaming environment
US9087082B2 (en) 2013-03-07 2015-07-21 International Business Machines Corporation Processing control in a streaming application
US9280549B2 (en) 2013-03-14 2016-03-08 International Business Machines Corporation Compressing tuples in a streaming application
US9329970B2 (en) 2013-03-15 2016-05-03 International Business Machines Corporation Selecting an operator graph configuration for a stream-based computing application
US9571545B2 (en) 2013-03-15 2017-02-14 International Business Machines Corporation Evaluating a stream-based computing application
US9002846B2 (en) 2013-03-15 2015-04-07 International Business Machines Corporation Ending tuple processing in a stream-based computing application
US9229965B2 (en) 2013-03-20 2016-01-05 International Business Machines Corporation Managing attributes in stream processing using a cache
US9218395B2 (en) 2013-03-20 2015-12-22 International Business Machines Corporation Managing attributes in stream processing
US9305031B2 (en) 2013-04-17 2016-04-05 International Business Machines Corporation Exiting windowing early for stream computing
US9147010B2 (en) 2013-04-17 2015-09-29 International Business Machines Corporation Reconfiguring an operator graph based on attribute usage
US9325758B2 (en) 2013-04-22 2016-04-26 International Business Machines Corporation Runtime tuple attribute compression
US9426197B2 (en) 2013-04-22 2016-08-23 International Business Machines Corporation Compile-time tuple attribute compression
US9344342B2 (en) 2013-06-10 2016-05-17 International Business Machines Corporation Monitoring similar data in stream computing
US9384302B2 (en) 2013-06-17 2016-07-05 International Business Machines Corporation Generating differences for tuple attributes
WO2014204489A2 (en) 2013-06-21 2014-12-24 Hitachi, Ltd. Stream data processing method with time adjustment
US9152689B2 (en) 2013-06-25 2015-10-06 International Business Machines Corporation Managing passthru connections on an operator graph
US9372780B2 (en) 2013-06-28 2016-06-21 International Business Machines Corporation Breakpoint continuation for stream computing
US9515965B2 (en) 2013-09-18 2016-12-06 International Business Machines Corporation Managing data paths in an operator graph
US9471639B2 (en) 2013-09-19 2016-10-18 International Business Machines Corporation Managing a grouping window on an operator graph
US9298801B2 (en) 2013-09-25 2016-03-29 International Business Machines Corporation Managing multiple windows on an operator graph
JP6281243B2 (ja) * 2013-10-28 2018-02-21 富士通株式会社 データ処理プログラム、データ処理方法、およびデータ処理装置
US9298848B2 (en) 2013-11-01 2016-03-29 International Business Machines Corporation Managing a template in an operator graph
US9934279B2 (en) * 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9110681B2 (en) 2013-12-11 2015-08-18 International Business Machines Corporation Recognizing operational options for stream operators at compile-time
US9313110B2 (en) 2014-01-22 2016-04-12 International Business Machines Corporation Managing processing branches in an operator graph
US9189212B2 (en) 2014-03-31 2015-11-17 International Business Machines Corporation Predicted outputs in a streaming environment
US9614740B2 (en) 2014-05-13 2017-04-04 International Business Machines Corporation Multifusion of a stream operator in a streaming application
US9703839B2 (en) 2014-06-20 2017-07-11 International Busines Machines Corporation Managing streams of tuples
US9460235B2 (en) 2014-06-30 2016-10-04 International Business Machines Corporation Supplementing a tuple with a derived value
US9734038B2 (en) 2014-09-30 2017-08-15 International Business Machines Corporation Path-specific break points for stream computing
US9632847B2 (en) * 2014-11-11 2017-04-25 Fair Isaac Corporation System and method for linearizing messages from data sources for optimized high-performance processing in a stream processing system
US9747343B2 (en) 2015-02-19 2017-08-29 International Business Machines Corporation Algorithmic changing in a streaming environment
US9886485B2 (en) 2015-03-11 2018-02-06 International Business Machines Corporation Reducing redundant operations in a streaming environment
US10061810B2 (en) 2015-04-13 2018-08-28 International Business Machines Corporation Limiting tuple creation at the tuple level
US9734206B2 (en) 2015-04-14 2017-08-15 International Business Machines Corporation Intermediate window results in a streaming environment
US10042891B2 (en) 2015-05-08 2018-08-07 International Business Machines Corporation Windowing across operators in a streaming environment
US10459832B2 (en) * 2015-05-20 2019-10-29 International Business Machines Corporation How to track operator behavior via metadata
US9853878B2 (en) 2015-06-09 2017-12-26 International Business Machines Corporation Limiting data output from windowing operations
US10685024B2 (en) 2015-10-21 2020-06-16 Oracle International Corporation Tuple extraction using dynamically generated extractor classes
WO2017111644A1 (en) 2015-12-23 2017-06-29 Oracle International Corporation Flexible event ingestion framework in an event processing system
WO2017135838A1 (en) 2016-02-01 2017-08-10 Oracle International Corporation Level of detail control for geostreaming
US20170220616A1 (en) * 2016-02-02 2017-08-03 International Business Machines Corporation Efficiently applying timestamps to high volume streaming data
US10747768B2 (en) 2016-06-14 2020-08-18 Fuji Xerox Co., Ltd. Data processing system and data processing method
CN106874320A (zh) 2016-06-20 2017-06-20 阿里巴巴集团控股有限公司 分布式流式数据处理的方法和装置
US10733191B2 (en) * 2018-09-28 2020-08-04 Microsoft Technology Licensing, Llc Static streaming job startup sequence
US11018960B2 (en) * 2019-03-06 2021-05-25 Cisco Technology, Inc. Accelerated time series analysis in a network
CN117556212A (zh) * 2023-11-29 2024-02-13 金网络(北京)数字科技有限公司 一种流式大数据的分析方法、装置、系统及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495600A (en) * 1992-06-03 1996-02-27 Xerox Corporation Conversion of queries to monotonically increasing incremental form to continuously query a append only database
US8099452B2 (en) * 2006-09-05 2012-01-17 Microsoft Corporation Event stream conditioning
EP2071847A4 (en) * 2006-09-29 2011-02-23 Sony Corp INFORMATION PROCESSING DEVICE AND METHOD AND PROGRAM

Also Published As

Publication number Publication date
JP2010108044A (ja) 2010-05-13
US20100106853A1 (en) 2010-04-29
US8095690B2 (en) 2012-01-10

Similar Documents

Publication Publication Date Title
JP5154366B2 (ja) ストリームデータ処理プログラム及び計算機システム
US7849227B2 (en) Stream data processing method and computer systems
JP5377897B2 (ja) ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム
US20200142887A1 (en) Message Personalization Over Multiple Internet Messaging Campaigns
US8335782B2 (en) Ranking query processing method for stream data and stream data processing system having ranking query processing mechanism
US10180891B2 (en) Monitoring processes running on a platform as a service architecture
US8495082B2 (en) Stream data processing method cooperable with reference external data
JP5395565B2 (ja) ストリームデータ処理方法及び装置
US9910896B2 (en) Suspending and resuming continuous queries over data streams
US9619491B2 (en) Streamlined system to restore an analytic model state for training and scoring
US20160147830A1 (en) Managing datasets produced by alert-triggering search queries
JP2011039818A (ja) ストリームデータ処理システム、ストリームデータ処理方法及びストリームデータ処理プログラム
US10474698B2 (en) System, method, and program for performing aggregation process for each piece of received data
JP2007122643A (ja) データ検索システム、メタデータ同期方法およびデータ検索装置
US10216556B2 (en) Master database synchronization for multiple applications
US11561990B2 (en) Query implementation using synthetic time series
CN111008521A (zh) 生成宽表的方法、装置及计算机存储介质
CN111858760A (zh) 一种异构数据库的数据处理方法及装置
US11243942B2 (en) Parallel stream processing of change data capture
CN113468196B (zh) 用于处理数据的方法、装置、系统、服务器和介质
US11106739B2 (en) Document structures for searching within and across messages
US20160077945A1 (en) Storage system statistical data storage and analysis
Kepe et al. KSample: dynamic sampling over unbounded data streams
JP5472885B2 (ja) プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
CN113220530B (zh) 数据质量监控方法及平台

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121113

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: 20121120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121205

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5154366

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