JP4804233B2 - ストリームデータ処理方法 - Google Patents

ストリームデータ処理方法 Download PDF

Info

Publication number
JP4804233B2
JP4804233B2 JP2006161233A JP2006161233A JP4804233B2 JP 4804233 B2 JP4804233 B2 JP 4804233B2 JP 2006161233 A JP2006161233 A JP 2006161233A JP 2006161233 A JP2006161233 A JP 2006161233A JP 4804233 B2 JP4804233 B2 JP 4804233B2
Authority
JP
Japan
Prior art keywords
stream
data
stream data
information
spc
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
JP2006161233A
Other languages
English (en)
Other versions
JP2007328716A (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 JP2006161233A priority Critical patent/JP4804233B2/ja
Priority to US11/502,474 priority patent/US8495082B2/en
Publication of JP2007328716A publication Critical patent/JP2007328716A/ja
Application granted granted Critical
Publication of JP4804233B2 publication Critical patent/JP4804233B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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とする)に対して、時々刻々と到着するデータをリアルタイム処理するデータ処理システムに対する要求が高まっている。例えば、株式の売買を行うシステムでは、株価の変動にいかに迅速に反応できるかがシステムの最重要の課題の一つであり、従来のDBMSのように株式のデータを一旦記憶装置に格納してから、該格納データに関して検索を行うような方法では、株価変動のスピードに即応できず、ビジネスチャンスを逃してしまうことになりかねない。例えば、特許文献1では、記憶されているクエリが周期的に実行される機構を開示しているが、株価のようにデータが入ってきた瞬間にクエリを実行することが重要なリアルタイムデータ処理には適用が困難であった。
このような時々刻々と到着するデータをストリームデータと定義し、該ストリームデータのリアルタイム処理に好適なデータ処理システムとして、ストリームデータ処理システムが提案されている。例えば、非特許文献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)の好適な例である。スライディングウィンドウによって切り取られたストリームデータはメモリ上に保持され、クエリ処理に使用される。
ストリームデータ処理システムは、ファイナンシャルアプリケーション、交通情報システム、計算機システム管理に代表される、リアルタイム処理が必要とされる応用に対する適用が期待されている。
米国特許第5495600号公報 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 C. J. Date, Hugh Darwen著:"A Guide to SQL Standard (4th Edition)",Addison−Wesley Professional; 4 edition (November 8, 1996),ISBN: 0201964260 Stratis Viglas,Jeffrey F. Naughton著:"Rate−based query optimization for streaming information sources",In Proc. of SIGMOD Conference 2002,pp. 37−48
時々刻々と到着するストリームデータを利用するユーザのために、ストリームデータを有意な情報に変換する必要が生じる場合がある。例えば、ストリームデータが製品の製造工程において、製品に付いているRFIDタグをRFIDリーダで読み込んだデータ、あるいはRFIDリーダを管理する製造管理サーバが出力するデータである場合、ストリームデータには製品のコードと製造工程の情報などが含まれている。製品のコードは、ユーザにとって理解しにくい情報であるため、ストリームデータ処理システムがデータベースに問い合わせを行って製品のコードから製品名などの有意な情報を取得し、この有意な情報をユーザへ提供する必要がある。あるいは、ストリームデータが、センサノードが出力するデータ、あるいはセンサネットを管理するセンサネットサーバが出力するデータである場合、ストリームデータとしてセンサノードのIDとセンシングデータが含まれている。センサノードのIDは、ユーザにとって理解しにくい情報であるため、ストリームデータ処理システムがデータベースに問い合わせを行ってセンサノードの所在と種類などの有意な情報を取得し、この有意な情報をユーザへ提供する必要がある。
上記従来例のストリームデータ処理システムでは、上述のようなストリームデータの変換処理(ストリームデータ処理)をストリームデータの受信のたびに実行することになり、次のような問題が生じる。
(1)データベース(以下、外部データという)へのアクセスは、処理に時間がかかるため、ストリームデータ処理システムが膨大な量のストリームデータを処理する場合には、データベースへのアクセスを行う時間がボトルネックとなる。この結果、ストリームデータの量が多くなると、リアルタイムでユーザに有意な情報を提供することができない、という問題がある。
(2)ストリームデータ処理システム上に外部データの複製を保存しておきストリームデータを有意な情報に変換する処理を高速化する手法が考えられるが、外部データの複製全部をストリームデータ処理システム上に保存することは、データベースの複製を保存するための計算機リソースが必要になって非効率であり、また、データベースの容量が大きい場合にはストリームデータ処理システムに複製を保存することが不可能であることも考えられる。このため、有意な情報をリアルタイムで提供する処理性能を保ちつつ、外部データの複製量を減少させることも課題となっていた。
(3)外部データが更新された場合にも、ストリームデータ処理システム上の外部データの複製に対し更新を反映し、ストリームデータ処理を行えることも課題となっていた。
本発明は上記問題点に鑑みてなされたものであり、本発明の第1の目的は、外部データと連携し、かつリアルタイムにストリームデータ処理を行うシステムを提供することである。また、本発明の第2の目的は、リアルタイム処理を保ちつつ、外部データの複製量を減少させるシステムを提供することである。最後に、本発明の第3の目的は、外部データが変更された場合にも、ストリームデータ処理システム上の外部データの複製に対し更新を反映し、ストリームデータ処理を正確に行えるシステムを提供することである。
本発明は、前記第1の目的を達成するため、本発明では必要に応じて外部データの一部、若しくは全部を記憶装置に設けたストリームプレディクトキャッシュに複製し、前記複製を用いてストリームデータと連携する機構を設ける。次に、第2の目的を達成するため、本発明ではユーザ、若しくはアプリケーションによってシステムに登録されたストリームデータの該属性値における時間と値域の組合せによる2次元の条件を記述したストリームデータ特性情報を用いて外部データの取得対象を絞り込むことにより、リアルタイム処理を保ちつつ、外部データの複製量を減少させる機構を提供する。
さらに、第2の目的を達成するための別の手段として、本発明では前記ストリームデータ特性情報、及びストリームデータの監視を行うことにより取得した監視情報を用いることにより、ストリームデータと連携する必要がある外部データの取得対象を予測する機構を提供する。
最後に、第3の目的を達成するため、本発明ではユーザ、若しくはアプリケーションによる外部データの複製の更新命令を受け付け、ストリームデータ処理システム上の外部データの複製に対し更新を反映し、ストリームデータ処理を行える機構を提供する。また、第3の目的を達成する別の手段として、外部データの変更を検知し、変更時間を付与したデータを生成し、ストリームデータ処理システムに送信することにより、ストリームデータ処理システム上の外部データの複製に対し更新を反映し、ストリームデータ処理を行える機構を提供する。
本発明を用いることにより、高信頼・高可用のリアルタイムデータ処理が可能なストリームデータ処理システムが実現できる。
以下、本発明の実施の形態について説明する。
図1は本発明の一実施形態が適用されたストリームデータ処理システム、および関連するシステム構成の概略図である。
図1において、記憶装置104を有するデータ管理システム101は、ネットワーク103を介してストリームデータ処理システム102に接続されている。ネットワーク103は、イーサネット(登録商標)、光ファイバ、FDDI(Fiber Distributed Data Interface)で接続されるローカルエリアネットワーク(LAN)、若しくはLANよりも低速なインターネットを含んだワイドエリアネットワーク(WAN)でも差し支えない。また、データ管理システム101、及びストリームデータ処理システム102はパーソナルコンピュータ、ワークステーションなどの任意のコンピュータシステムで構成される。すなわち、データ管理システム101は、データベース(データ114)の管理を行うDBMS(DataBase Managemant System)を実行する計算機であり、ストリームデータ処理システム102はストリームデータ111を有意な情報に変換してクライアント計算機116へ提供するストリームデータ処理を実行する計算機(またはサーバ)である。
そして、ネットワーク103には、ストリームデータをストリームデータ処理システム102へ出力する計算機12が接続される。計算機12は、工場などで生産される製品の管理を行うものである。本実施形態の計算機12では、製品が製造された製造ラインの識別子と製品の識別子と製造された日時を対にした情報をストリームデータとして出力する。また、計算機12が管理する工場では複数の製造ラインで複数種の製品が製造されるものとする。そして、計算機12は、各製造ラインで生産された製品の情報を、RFIDリーダやバーコードリーダなどを介して取得し、複数の製造ラインで得られた製品の情報をリアルタイムでストリームデータ処理システム102へ送信する。なお、計算機12では、ストリームデータ111を出力するアプリケーション13が実行される。また、ストリームデータ処理システム102は、図示のようにRFIDリーダ10やセンサノード11が接続され、ストリームデータ111を受信するようにしても良い。
ここで、本実施形態で扱うストリームデータは、映像や音声の配信で用いられるストリームとは異なり、ひとつのストリームデータが有意な情報に対応するものである。また、ストリームデータ処理システム102が計算機12からストリームデータ処理システム102が受信するストリームデータは、連続的あるいは間欠的であり、ストリームデータ毎に異なる製品の情報や異なる要素が含まれる。
ストリームデータ処理システム102は、クエリ管理部105、ストリームデータ監視情報管理部106、格納場所管理部107、ストリームデータ特性管理部108、記憶装置109、突き合わせ部112から構成される。
クエリ管理部105は、ユーザ115の操作によって、クライアント計算機116上で実行されるアプリケーションにより登録されたクエリを管理している。次に、ストリームデータ監視情報管理部106は、前記ストリームデータ処理システム102に入力されるストリームデータ111を監視し、監視情報(ストリームデータ111の統計情報など)を取得し、管理している。次に、ストリームデータ特性管理部108は、ユーザ115、またはクライアント計算機116上で実行されるアプリケーション117により登録された処理時刻以降のストリームデータの値の特徴であるストリームデータの特性情報を管理している。
格納場所管理部107は、前記クエリ管理部105で管理されている登録クエリ情報、及び前記ストリームデータ監視情報管理部106で管理されているストリームデータ監視情報、前記ストリームデータ特性管理部108で管理されているストリームデータ特性情報の何れか、または両方を用いて、前記データ管理システム101上にある記憶装置104のデータ114のうち、前記ストリームデータ処理システム102に取得するデータを決定する。以下では、ストリームデータ処理システム102がデータ管理システム101から取得したデータを格納する記憶装置109の領域をストリームプレディクトキャッシュ(以下、SPC:Stream Predict Cache)110と呼ぶ。そして、ストリームデータ処理システム102は、前記データ管理システム101に対し、ストリームプレディクトキャッシュ取得命令(SPC取得命令)を発行する。
前記データ管理システム101は、前記格納場所管理部107において発行されたSPC取得命令を入力とし、記憶装置104中のデータ114において、一部または全部を前記ストリームデータ処理システム102に出力する。前記格納場所管理部107は、取得データを前記SPC110(図2のSPC_OM217及びSPC_OD219)として、記憶装置109上に格納する。記憶装置109は、メモリ、ディスク装置など任意の記憶媒体とする。
突き合わせ部112は、前記ストリームデータ111、および前記SPC110の突き合わせを行い、有意な情報としての突き合わせ結果113をクライアント計算機116へ出力する。
図1において、本発明の概要を説明する。ストリームデータ処理システム102は、ユーザ115が登録したクエリとストリームデータ111の特性に基づいて、入力されるストリームデータ111と、データ管理システム101のデータ114の突き合わせを行う。
ユーザ115は計算機116のアプリケーション117により、クエリ管理部105にクエリを登録し、ストリームデータ111の特性をストリームデータ特性管理部108に登録しておく。ここで、ストリームデータの特性とは、例えば、ストリームデータのIDの値は1ずつ増加する、という特性や、ある属性の値は一定範囲内であるという特性や、ある時間帯に到着するストリームデータのある属性の値は一定範囲内である、といった特性を指す。
ストリームデータ監視情報管理部106は、ストリームデータ処理システム102が受信したストリームデータ111を監視し、監視によって得られたストリームデータ111の傾向に関する情報を監視情報として保持する。ストリームデータ111の傾向に関する情報は、例えば、ストリームデータ111のデータレートや、ある属性の値の分布などの統計情報である。格納場所管理部107は、ストリームデータ特性管理部108に設定されたストリームデータ111の特性と、ストリームデータ監視情報管理部106に保持された傾向に関する情報を参照し、突き合わせを行うためにSPC110に格納すべきデータを決定する。SPC110には、格納場所管理部107が決定したストリームデータ処理システム102のデータ114を予め読み出して、格納しておく。
突き合わせ部112は、SPC110を参照することで、受信したストリームデータ111と予め先読みしておいたデータ114とを突き合わせることができ、リアルタイムで突き合わせ結果113をユーザ115(計算機116)へ提供することができる。
すなわち、本発明では、ユーザ115によって入力されたストリームデータ111の特性と、ストリームデータ監視情報管理部106でモニタした統計情報から、突き合わせを行うためにSPC110へ先読みしておくデータを格納場所管理部107で決定する。これにより、突き合わせに必要なデータ114の量を最小限としながら、外部データ(データ管理システム101のデータ114)と連携し、かつリアルタイムにストリームデータ処理をすることが可能となるのである。
図2は、本発明を適用した一実施形態のストリームデータ処理システム、および関連するシステムの構成を示すブロック図である。
前記ストリームデータ処理システム102において、前記クエリ管理部105は、クエリ設定部203、メモリ上限設定部204、登録クエリ管理テーブル205から構成される。
クエリ設定部203は、ユーザ115、またはクライアント計算機116上で実行されるアプリケーション117からコマンド入力部229を通してクエリの登録・変更を行うインターフェース(以下、I/F)を備える。クエリの登録・変更が行われた場合、登録クエリ管理テーブル205を更新し、SPC管理部212に変更通知を送信する。
メモリ上限設定部204は、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通して該クエリで利用可能なメモリ上限値を設定するI/Fを備える。メモリ上限値の入力が行われた場合、登録クエリ管理テーブル205を更新し、SPC管理部212に変更通知を送信する。
登録クエリ管理テーブル205は、前記クエリ設定部203、及び前記メモリ上限設定部204において設定された情報を保持するテーブルである。
前記ストリームデータ監視情報管理部106は、ストリームデータ監視部207、データレート閾値・更新頻度設定部206、監視情報管理テーブル208から構成される。
ストリームデータ監視部207は、前記登録クエリ管理テーブル205を参照し、監視が必要なストリームデータ111を監視する。ストリームデータ監視部207は、監視の結果、監視情報(ストリームデータ111の統計情報)を取得した場合、監視情報管理テーブル208を更新し、SPC管理部212に変更通知を送信する。ここで、監視するストリームデータ111は必要なものに限定せず、すべてのストリームデータの監視を行ってもよい。
データレート閾値・更新頻度設定部206は、前記監視が必要なストリームデータ111に対し、データレートによりリレーションデータ226をキャッシュするか判断する閾値を設定し、及び監視情報を更新する頻度(間隔)を登録・変更するI/Fを備える。データレート閾値、及び更新頻度が登録・変更された場合、データレート閾値・更新頻度設定部206は、監視情報管理テーブル208を更新し、SPC管理部212に変更通知を送信する。なお、図2において、データ管理システム101のリレーションデータ226とXMLデータ227が図1のデータ114に相当する。
監視情報管理テーブル208は、前記データレート閾値・更新頻度設定部206、及びストリームデータ監視部207において設定または取得した情報を保持するテーブルである。
前記ストリームデータ特性管理部108は、ストリームデータ特性設定部214、時間付き制約設定部213、ストリームデータ特性管理テーブル215から構成される。
ストリームデータ特性設定部214は、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通して該ストリームデータ111の特性情報を入力するI/Fを備える。ストリームデータ111の特性情報の入力が行われた場合、ストリームデータ特性管理テーブル215を更新し、SPC管理部212に変更通知を送信する。
時間付き制約設定部213は、ストリームデータ111の該当カラムにおける時刻情報に対応する条件である時間付き制約を入力するI/Fを備える。時間付き制約条件の入力が行われた場合、時間付き制約設定部213はストリームデータ特性管理テーブル215を更新し、SPC管理部212、及び時間付き制約違反判定部221に変更通知を送信する。
ストリームデータ特性管理テーブル215は、前記ストリームデータ特性設定部214、及び前記時間付き制約設定部213において設定された情報を保持するテーブルである。
前記格納場所管理部107は、SPC管理部212、SPC管理テーブル211、SPC取得命令発行部209、SPCクリア命令発行部210、SPC情報設定部228から構成される。
SPC取得命令発行部209は、前記SPC管理部212からSPC取得要求を受信した場合、前記データ管理システム101に対し、前記ストリームデータ111が必要とする外部データ(データ管理システム101のリレーションデータ226)の一部若しくは全部であるSPCデータを取得するSPC取得命令を発行する。なお、SPCデータは、記憶装置109上のSPC_OM217またはSPC_OD219に格納(キャッシュ)されているデータを示す。なお、記憶装置109は、メモリ216とディスク218で構成した例を示す。また、SPC110は、アクセス速度は速いが容量の小さいメモリ216上のSPC_OM217と、アクセス速度は遅いが容量の大きいディスク218上のSPC_OM219により階層的に構成され、優先度の高いデータをSPC_OM217に格納し、優先度の低いデータをSPC_OD219に格納する。
SPCクリア命令発行部210は、SPC_OM217またはSPC_OD219にキャッシュされたデータの元であるリレーションデータ226がデータ管理システム101で更新された場合、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通して、または一定間隔によりSPCクリア命令を発行するI/Fを備え、SPCクリア命令が発行された場合、SPC管理部212にSPCクリア要求を出力する。
SPC情報設定部228は、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通してSPC情報を入力するI/Fを備える。SPC情報の入力が行われた場合、SPC情報設定部228は、SPC管理テーブル211を更新し、SPC管理部212に変更通知を送信する。
SPC管理部212は、前記クエリ設定部203、メモリ上限設定部204、データレート閾値・更新頻度設定部206、ストリームデータ監視部207、ストリームデータ特性設定部214、時間付き制約設定部213、SPC情報設定部228から変更通知を受信した場合に、前記登録クエリ管理テーブル205、及び前記監視情報管理テーブル208、前記ストリームデータ特性管理テーブル215の何れか、または両方を参照し、前記データ管理システム101上にあるリレーションデータ226のうち、前記ストリームデータ処理システム102に読み込むSPCデータを決定する。そして、SPC管理部212は、SPCデータの格納場所を決定し、SPC管理テーブル211を更新する。また、SPC管理部212は、前記変更通知を受信した場合、及びSPCクリア命令発行部210からSPCクリア要求を受信した場合、SPC取得命令発行部209にSPC取得要求を出力する。また、SPC管理部212は、前記データ管理システム101から受信したSPCデータに対し、前記SPC管理テーブル211を参照し、記憶装置109におけるメモリ216上のストリームプレディクトキャッシュオンメモリ(以下、SPC_OM:SPC_OnMemory)217、及びディスク218上のストリームプレディクトキャッシュオンディスク(以下、SPC_OD:SPC_OnDisk)219に格納する。なお、2つのSPC_OM217、SPC_OD219は、リアルタイム処理の必要性が高いSPCデータをアクセス速度の速いSPC_OM217に格納し、データレートが低いストリームデータ111に対しては、アクセス速度の遅いSPC_OD219にSPCデータを格納するよう使い分けることができる。
また、SPC管理部212中にデータ変換部230があり、データ変換部230は、前記記憶装置104中のデータがXMLデータ227などのリレーションデータでない場合に、レコード形式に変換する機構を備える。これにより、XMLデータ227もリレーションデータ226と同様に利用することを可能にする。
SPC管理テーブル211は前記SPC管理部212で決定した格納場所情報を保持するテーブルである。
前記データ管理システム101は前記記憶装置104、データ変更検知部201、タプル生成部202から構成される。
記憶装置104は、リレーションデータ226、XMLデータ227の何れか、または両方から構成される。前記リレーションデータ226は、複数のリレーションデータ2261、2262、・・・、226nから構成され、前記XMLデータ227は、複数のXMLデータ2271、2272、・・・、227nから構成される。ここで、記憶装置104に格納されるデータは、上記で述べたデータの他にCSVファイル等のいかなるデータ形式でもよい。以下では、リレーションデータ226を用いる例を説明する。
データ変更検知部201は、前記リレーションデータ226の変更を監視し、変更を検知した場合、タプル生成部202にタプル生成要求を出力する。
タプル生成部202は、前記データ変更検知部201からタプル生成要求を受信した場合、変更となったリレーションデータに対し、ストリーム化されたタプルを生成し、前記SPC管理部212に送信する。なお、タプルとはリレーションデータ226のレコードに相当するものであり、ストリームデータ111と突き合わせを行うためのデータ(属性値)を示す。
ここで、前記SPCクリア命令発行部210がある場合、前記データ変更検知部201、及び前記タプル生成部202は必ずしも必要でない。一方、前記データ変更検知部201、及び前記タプル生成部202がある場合、前記SPCクリア命令発行部210は必ずしも必要でない。
前記記憶装置109は、メモリ216、ディスク218から構成される。
前記メモリ216中にSPC_OM217があり、前記SPC管理部212から送信されたSPCデータを保持する。また、前記突き合わせ部112に前記SPC_OM217のデータを入力する。
前記ディスク218中にSPC_OD219があり、前記SPC管理部212から送信されたSPCデータを保持する。
また、前記SPC_OM217、及び前記SPC_OD219は、前記SPC管理部212からのデータ移動要求を受け、前記メモリ216、前記ディスク218間のデータを移動する。本実施例では、前記メモリ216、及び前記ディスク218の階層構造としたが、メモリ216のみの構成でもよい。
ストリームデータ111は、複数のストリームデータ1111、1112、・・・、111nから構成される。
前記突き合わせ部112は、突き合わせ実行部220、時間付き制約違反判定部221から構成される。
突き合わせ実行部220は、前記メモリ216中の前記SPC_OM217のデータを取得し、前記ストリームデータ111との突き合わせを行い、突き合わせ結果113を出力する。
また、突き合わせ実行部220中にデータ変換部230があり、データ変換部230は、前記記憶装置104中のデータがXMLデータ227などのリレーションデータでない場合に、また前記ストリームデータがXML形式などのレコード形式でない場合に、レコード形式に変換する機構を備える。
時間付き制約違反判定部221は、前記ストリームデータ特性管理テーブル215に保持されている時間付き制約条件を参照し、前記ストリームデータ111が条件に違反しているか否かを判定する。条件に違反している場合、ログ222に違反情報を出力する。なお、ログ222は、例えばクライアント計算機116に対して送信すればよい。また、データ管理システム101の記憶装置104等にログ22を格納してもよい。
図3は、ストリームデータ111の好適なデータフォーマットの例を模式的に表した図である。
ストリームデータ111はレコード形式であり、レコードを構成する製品IDカラム301、ライン名カラム302がセグメントに相当し、前記製品IDカラム301、及び前記ライン名カラム302の組み合わせをタプル303とする。前記ストリームデータ111が前記ストリームデータ処理システムに入力された場合、到着した時間を示すタイムスタンプが付加される。なお、ストリームデータソースにおいて、タイムスタンプを付加してもよい。
図4は、連続して入力されたストリームデータ111を例示した図であり、製品ストリーム(S1)1111を表している。
製品ストリーム1111において、表の1行が前記タプル303に対応し、各タプルの到着時間であるタイムスタンプカラム304が付加されている。例えば、タプル304は、タイムスタンプカラム304の値が「10:00」、製品IDカラム301の値が「1000」、ライン名カラム302の値が「ラインA」であるタプルであることを表している。
ここで、本実施例では、タイムスタンプを「10:00」のような時間、及び分の形式で表しているが、「2006/2/3 9:00:00 JST」のような日付、及び秒を含めた形式に代表される他の形式でもよい。
図5は、リレーションデータ226を例示した図であり、製品管理表(R1)2261を表している。
製品管理表は、製品IDカラム401、製品名カラム402、価格カラム403から構成される。製品管理表の1行がレコードに対応する。
例えば、レコード404は、製品IDカラム401の値が「1000」、製品名カラム402の値が「製品A」、価格カラム403の値が「5000」であることを表している。
図6は、リレーションデータ226を例示した図であり、注文表(R2)2262を表している。
注文表は、注文IDカラム501、製品IDカラム502、注文者名カラム503から構成される。注文表の1行がレコードに対応する。
例えば、レコード504は、注文IDカラム501の値が「10000」、製品IDカラム502の値が「1000」、注文者名カラム503の値が「注文者A」であることを表している。
図7は、クエリを前記ストリームデータ処理システム102に登録する際の好適なコマンドの記述例である。
登録クエリ1201は、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通して、前記クエリ設定部203において登録される。登録クエリ1201は、前記製品ストリーム(S1)1111の過去50行([Rows 50])、前記製品管理表(R1)2261、前記注文表(R2)2262において、前記製品ストリーム1111の製品IDカラム301、前記製品管理表2261の製品IDカラム402、前記注文表2262の製品IDカラム502が同一の値であり、かつ前記注文表2262の注文者カラム503が「注文者A」であるもののうち、注文IDカラム501、製品IDカラム(301または402または502)、製品名カラム402、ライン名カラム302、注文者名カラム503を抜き出すクエリであることを表している。
以下では、ストリームデータ処理システム102で実行される突き合わせ処理の処理手順を、図8のフローチャートに示し、図2を参照しながら以下に説明する。
ストリームデータ処理システム102で実行する突き合わせ処理では、まず、前記SPC管理部212において、前記クエリ設定部203から発行される変更通知により、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通して登録されたクエリの登録、または変更を受け付けたか否かを判定する(S2002)。
前記ステップS2002でyesと判定された場合、後述するクエリ登録・変更時の処理を行う(S2003)。前記ステップS2003が終了した後、または、前記ステップS2002でnoと判定された場合、前記SPC管理部212において、前記メモリ上限設定部204、前記データレート閾値・更新頻度設定部206、前記ストリームデータ監視部207、前記ストリームデータ特性設定部214、前記時間付き制約設定部213から発行される変更通知により、監視情報、及び設定情報に変更があるか否かを判定する(S2004)。
前記ステップS2004でyesと判定された場合、後述する監視情報、及び設定情報変更時の処理を行う(S2005)。前記ステップS2005が終了した後、または、前記ステップS2004でnoと判定された場合、後述するリレーションデータ更新時の処理を実行し(S2006)、前記突き合わせ実行部220において、前記ストリームデータ111が到着したか否かを判定する(S2007)。
前記ステップS2007でyesと判定された場合、前記突き合わせ実行部220において、後述するように受信したストリームデータ111とSPC110のデータとを突き合わせる突き合わせ処理を行う(S2008)。前記ステップS2008が終了した後、または前記ステップS2007でnoと判定された場合、前記コマンド入力部229において、システム終了コマンドが投入されたかにより、システムを終了するか否かを判定する(S2009)。
前記ステップS2009でyesと判定された場合、処理を終了し(S2010)、前記ステップS2009でnoと判定された場合、前記ステップS2002に戻り、上述の処理を継続する。
以上の処理がストリームデータ処理システム102で実行される処理のメインルーチンであり、クエリや監視情報、リレーションデータ226やSPCデータの更新などを行いながらストリームデータ111を受け付けて突き合わせ処理を実施する。
次に、前記図8に示したクエリ登録・変更時の処理S2003の処理手順を、図9のフローチャートに示し、図2、図10、図11a〜図11c、図12を用いて説明する。
クエリ登録・変更時の処理では、まず、前記メモリ上限設定部204において、登録・変更されたクエリのメモリ上限値を受け付け(S2102)、クエリの登録・変更情報、及びメモリ上限値を前記登録クエリ管理テーブル205に反映させる(S2103)。
次に、前記ストリームデータ監視部207において、前記登録クエリ管理テーブル205を参照し、登録されたクエリに対し、監視が必要なストリームデータの監視情報を取得し(S2104)、監視が必要なストリームデータの監視の更新間隔を設定し(S2105)、取得したストリームデータ監視情報を前記監視情報管理テーブル208に反映させる(S2106)。
次に、前記ストリームデータ特性設定部214において、ストリームデータ特性情報を受け付け(S2107)、前記ストリームデータ特性管理テーブル215に反映させる(S2108)。
次に、後述するSPC管理テーブル211の更新処理を行い(S2109)、後述する突き合わせ処理時のためにリレーションデータ226をSPC110に読み込むSPC取得処理を行う(S2110)。
最後に、前記突き合わせ部112において、前記ストリームデータ111の受付を開始し(S2111)、クエリ登録・変更時の処理を終了する(S2112)。
以上の処理により、ユーザ115がクライアント計算機116から入力したクエリやメモリ上限設定値、更新頻度、ストリームデータ111の特性がストリームデータ処理システム102の各テーブルに設定される。
図10は、登録クエリ管理テーブル205の構成例を表した図である。
クエリ名カラム601には、登録されたクエリの名前を格納する。登録クエリカラム602には、登録されたクエリを格納する。
メモリ上限値カラム603には、前記メモリ上限設定部204において設定されたメモリ使用量の上限値を格納する。クエリ実行形式格納先カラム604には、クエリの実行形式の格納先のアドレス(ポインタ)を格納する。実行形式をあらかじめ作成しておくことにより、クエリの実行のたびにコンパイルを行うオーバーヘッドを削減できる。
登録者名カラム605、登録日時カラム606にはそれぞれ、クエリ登録時に取得したクエリの登録者名、クエリの登録日時が格納され、システムのアクセス管理、セキュリティ管理に使用される。
実行対象ストリームカラム607、実行対象リレーション608にはそれぞれ、登録クエリから抽出したクエリ実行対象となるストリーム名、及びリレーション名を格納する。
例えば、行609は、図7に示した登録クエリ1201に対し、前記メモリ上限設定部204において、メモリ上限値が「10MB」と設定された場合の登録クエリ管理テーブル205を表している。
行609は、クエリ名カラム601の値が「Q1」、登録クエリカラム602の値が「SELECT 注文ID、製品ID、製品名、ライン名、注文者名 FROM S1[ROWS 50]、R1、R2 WHERE S1.製品ID=R1.製品ID AND R1.製品ID=R2.製品ID AND R2.注文者=注文者A;」、メモリ上限値カラム603の値が「10MB」、クエリ実行形式格納先604の値が「0x7FFFAEE1」、登録者名カラム605の値が「樫山」、登録日時カラム606の値が「2006/02/01 13:07:26 JST」、実行対象ストリームカラム607の値が「S1」、実行対象リレーション608の値が「R1,R2」であることを表している。
図11a〜図11cは、監視情報管理テーブル208の構成例を表した図である。監視情報管理テーブル2081、2082、2083はそれぞれ、タイムスタンプが10:00、10:10、10:20における監視情報管理テーブル208を表した図である。
図11a〜図11cにおいて、ストリーム名カラム801、カラム名カラム802にはそれぞれ、前記登録クエリ管理テーブル205を参照し、取得した監視対象のストリーム名、及び監視対象のカラム名を格納する。
データレートカラム803には、前記ストリームデータ監視部207において取得した監視情報のうち、監視対象のストリームデータの到着レートを格納する。データレートを取得することにより、今後到着するストリームデータのデータ量を予測できる。データレート閾値カラム804には、前記データレート閾値・更新頻度設定部206において設定されたデータレート閾値を格納する。データレート閾値を用いることにより、リレーションデータ226をキャッシュするか否かを判定する。
現在の値カラム805には、前記ストリームデータ監視部207において取得した監視情報のうち、監視情報を取得した時点における監視対象のカラム名の最新の値を格納する。統計値カラム806には、前記ストリームデータ監視部207において取得した監視情報のうち、前回監視情報を取得した時点からの統計値を格納する。タイムスタンプカラム807には、前記ストリームデータ監視部207において、監視情報を取得した時刻情報を格納する。
更新頻度カラム808には、前記データレート閾値・更新頻度設定部206において設定された監視情報の更新間隔を格納する。
例えば、行8091は、前記データレート閾値・更新頻度設定部206において、データレート閾値が「5タプル/分」、更新頻度が「10分」と設定された場合の監視情報管理テーブル2081を表している。
行8091は、ストリーム名カラム801の値が「S1」であり、カラム名カラム802の値が「製品ID」であり、データレートカラム803の値が「10タプル/分」であり、データレート閾値カラム804の値が「5タプル/分」であり、現在の値カラム805の値が「1000」であり、統計値カラム806の値が「−」(データなし)であり、タイムスタンプカラム807の値が「10:00」であり、更新頻度カラム808の値が「10分」であることを表している。
そして、図11bの行8092は、10:10において、データレートカラム803の値が「9タプル/分」に、現在の値カラム805の値が「1090」にそれぞれ変化しており、図11cの行8093は、10:20において、データレートカラム803の値が「8タプル/分」に、現在の値カラム805の値が「1180」にそれぞれ変化していることを表している。
ここで、本実施形態では、データレート803に格納するデータとして、タプル/分の例を表したが、これに限定されるものではない。統計値カラム806に格納するデータは、前回監視情報を取得した時点からの統計情報としたが、それ以前から取得している統計情報でも構わない。また、統計値として、中心値、及び平均値を示したが、分散などの他の統計情報でもよい。さらに、後述するストリームデータの特性情報の一部を、前記ストリームデータを監視することにより取得してもよい。
また、データレート閾値カラム804、更新頻度カラム808はすべての情報が入力される必要はなく、入力されない場合、事前に設定された値を用いてもよい。
また、データレートカラム803、現在の値カラム805、統計値カラム806に格納する監視情報取得データはすべての情報が入力される必要はない。
図12は、ストリーム特性管理テーブル215の構成例を表した図である。
ストリーム名カラム701には、特性情報を入力するクエリの名前を格納する。カラム名カラム702には、クエリにおける前記特性情報を入力するカラムのカラム名を格納する。時間に関する条件カラム703、値に関する条件カラム704にはそれぞれ、タイムスタンプに関する条件、値の特性を示す条件が格納され、組み合わせて使用される。条件の優先度カラム705には、優先度が格納され、複数のストリーム特性に対してどの条件を優先的に使用するか決定する。制約判定フラグカラム706には、前記時間付き制約設定部213で入力された場合、フラグをYとして格納する。確定条件フラグカラム707には、特性情報が必ず満たされる、若しくは満たされると想定される場合、フラグをYとして格納する。登録者カラム708には、特性情報を登録した登録者名を格納する。
例えば、行709は、「S1」というストリーム名を有するストリームデータにおいて、「10:00から10:20」において、「製品ID」は「1000から1500まで」の範囲であり、「優先的に処理を行う」ことを示している。また、「条件を違反していないか否かを判定」し、「この条件が必ず満たされる、若しくは満たされると想定される」ことを表している。さらに、上記の内容は「樫山」によって登録されたことを表している。
ここで、ストリームデータ特性情報を入力するI/Fは、図12に示した表形式の他に、コマンドによる入力でもよい。また、特性を入力するストリーム名カラム701、及びカラム名カラム702は、前記登録クエリ管理テーブル205を参照し、取得してもよい。また、時間に関する条件カラム703、条件の優先度カラム705、制約判定フラグカラム706、確定条件フラグカラム707、登録者カラム708において、すべての情報が入力される必要はなく、入力されない場合、事前に設定された値を用いてもよい。
次に、前記図8に示した監視情報変更および設定変更時の処理S2005の処理手順を、図13、及び図2を用いて説明する。
監視情報更新および設定変更時の処理では、まず、前記メモリ上限設定部204において、登録クエリがバッファに用いることのできるメモリの上限値を受け付けたか否かを判定する(S2202)。前記ステップS2202でyesと判定された場合、メモリ上限値を前記登録クエリ管理テーブル205に反映させる(S2203)。
前記ステップS2203が終了した場合、または前記ステップS2202でnoと判定された場合、前記データレート閾値・更新頻度設定部206において、ストリームデータ監視情報の更新間隔変更を受け付けたか、また前記ストリームデータ監視部207において、監視情報を更新したか否かを判定する(S2204)。前記ステップS2204でyesと判定された場合、監視情報の更新間隔、または更新された監視情報を前記監視情報管理テーブル208に反映させる(S2205)。
前記ステップS2205が終了した場合、または前記ステップS2204でnoと判定された場合、前記ストリームデータ特性設定部214において、ストリームデータ特性が変更されたか、また前記時間付き制約設定部213において、時間付き制約が設定されたかを判定する(S2206)。前記ステップS2206でyesと判定された場合、ストリームデータ特性情報、または時間付き制約情報を前記ストリームデータ特性管理テーブル215に反映させる(S2207)。
前記ステップS2207が終了した場合、または前記ステップS2206でnoと判定された場合、上記図9のS2109と同様に、後述するSPC管理テーブル更新処理を行い(S2208)、後述する突き合わせ処理時のSPC取得処理を行い(S2209)、監視情報更新および設定変更時の処理を終了する(S2210)。
次に、前記図8に示したリレーションデータ更新時の処理S2006の処理手順を図14のフローチャートに示し、図2を参照しながら以下に説明する。
リレーションデータ更新時の処理では、まず、前記SPCクリア命令発行部210において、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から前記コマンド入力部229を通して、または一定間隔により入力されたSPCクリアコマンドを受け付けたか否かを判定する(S2302)。前記ステップS2302でyesと判定された場合、上記図9のS2109と同様に、後述するSPC管理テーブル更新処理を行い(S2303)、後述する突き合わせ処理時のSPC取得処理を行う(S2304)。前記ステップS2304が終了した場合、または前記ステップS2302でnoと判定された場合、リレーションデータ更新時の処理を終了する(S2305)。
以上により、SPCクリア命令が発行されるとSPC管理テーブル211とSPC110の更新が行われる。
次に、前記図9のS2109、図13のS2208、図14のS2303、図23のS2715で呼び出されるSPC管理テーブル更新処理の処理手順を、図15のフローチャートに示し、図2、図16、図17、図18を参照しながら説明する。
SPC管理テーブル更新処理では、まず、前記SPC管理部212において、後述するSPC格納場所判別条件の算出処理を行い(S2402)、前記ステップS2402で算出した格納場所判別条件を満たすSPC_OM217に格納されているSPCデータのメモリ使用量を計算する(S2403)。次に、前記SPC管理部212において、前記登録クエリ管理テーブル205を参照し(S2404)、計算したメモリ使用量が、前記登録クエリ管理テーブル205に保持されているメモリ上限値カラム603よりも大きいか否かを判定する(S2405)。
前記ステップS2405でyesと判定された場合、メモリ上限値分のリレーションレコードのタプル数を計算する(S2406)。そして、各タプルの距離が小さいものから前記ステップS2406で計算したメモリ上限値分のリレーションレコードタプル数だけメモリ216に格納するものとし、SPC_OM217の格納場所判別条件を算出する(S2407)。
ここで、タプルの距離は、距離関数を予め定義しておき、距離が小さいかを判定する。例えば、ストリームデータの属性値が現在の値と比較した値を距離とする距離関数を定義した場合、現在の値50に対し、属性値80(距離30)と属性値10(距離40)を比較すると、属性値80の方が小さい距離であると判定できる。その他にも、現在の値よりも小さい値は無限大とするような距離関数や、自身で定義した距離関数(統計結果から導き出した関数など)も適用することができる。
前記ステップS2407が終了した後、又は前記ステップS2405でnoと判定された場合、S2402で計算された格納場所判別条件を前記SPC管理テーブル211に反映させ(S2408)、SPC管理テーブル更新処理を終了する(S2409)。
以上の処理によりSPC管理テーブル211のリレーション名901毎に、現在のストリームデータ111の値に応じた格納場所判別条件902が設定される。
図16、図17、図18は、SPC管理テーブル211の構成例を表した図である。図16は、タイムスタンプ10:00におけるSPC管理テーブル2111、図17は、タイムスタンプ10:10におけるSPC管理テーブル2112、図18は、タイムスタンプ10:20におけるSPC管理テーブル2113を表している。
図16〜図18のリレーション名カラム901には、登録クエリから取得した突き合わせ対象のリレーション名を格納する。ここで、前記SPC管理テーブル211に保持されるリレーション名は、すべてのリレーション名でもよい。格納場所判別条件カラム902には、格納場所を決定するための条件を格納し、格納場所カラム903に格納場所を設定する。更新頻度カラム904、更新ポリシーカラム905はそれぞれ、リレーションデータの更新頻度、及びリレーションデータに更新が生じたときのポリシーを格納する。SPCインデクスカラム906には、SPCデータに対し、インデクスを張るカラム名を格納する。取得コストカラム907には、前記リレーションデータ226を前記ストリーム処理システム102上にSPCデータとして取得する際のコストを格納する。なお、取得コストは、リレーションデータ226を取得するまでの時間や、時間に対応する値などで表記することができる。最後に、タイムスタンプカラム908には、更新されたタイムスタンプを格納する。
ここで、前記更新頻度カラム904、更新ポリシーカラム905、SPCインデクスカラム906、取得コストカラム907の値では、すべての情報が入力される必要はなく、入力されない場合、事前に設定された値を用いてもよい。また、前記SPC情報設定部228において、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117から、明示的に外部データを取得しないことを指定してもよい。
例えば、図16の前記SPC管理テーブル2111において、行9091は、10:00において、「R1」というリレーション名を有するリレーションデータにおける製品IDが1000以上1100未満の場合、メモリ(SPC_OM217)216にSPCデータを格納することを表している。また、リレーションデータの更新頻度が低く、リレーションデータ更新時の処理では、SPCクリア命令発行時にリレーションデータ226を再取得し、SPCデータを入れ替える。また、SPCデータにはインデクスが張られてなく、SPCデータ取得コストが高いことを表している。
また、行9101は、R1というリレーション名を有するリレーションデータにおいて、10:00において、製品IDが1100以上1200未満の場合、ディスク(SPC_OD219)にSPCデータを格納することを表している。
また、SPC管理テーブル2112において、行9092は、10:10において、メモリ(SPC_OM)にSPCデータを格納する条件が、製品IDが1090以上1180未満の場合に更新されたことを表している。行9102は、10:10において、ディスク(SPC_OD)にSPCデータを格納する条件が、製品IDが1180以上1270未満の場合に更新されたことを表している。
また、SPC管理テーブル2113において、行9093は、10:20において、メモリ(SPC_OM)にSPCデータを格納する条件が、製品IDが1500以上1580未満の場合に更新されたことを表している。行9103は、10:20において、ディスク(SPC_OD219)にSPCデータを格納する条件として、製品IDが1580以上1660未満の場合に更新されたことを表している。
次に、前記SPC格納場所判別条件の算出処理S2402の処理手順を、図19のフローチャートに示し、図2、図11a〜図11c、図12、図16、図17、図18を参照しながら説明する。
SPC格納場所判別条件の算出処理では、まず、前記ストリームデータ特性管理テーブル215を参照し(S2502)、図12に示した時間に関する条件カラム703にデータが格納されているか否かを判定する(S2503)。この処理は、ストリームデータ特性管理テーブル215のストリーム名毎に行われる。
前記ステップS2503でyesと判定された場合、現在のタイムスタンプが満たす条件における値に関する条件カラム704の条件を適用する(S2504)。前記ステップS2504が終了した後、または前記ステップS2503でnoと判定された場合、値に関する条件カラム704の条件を適用する(S2505)。ここで、前記値に関する条件704がシーケンシャル属性など単体で適用できない場合は、処理を行わない。
次に、前記監視情報管理テーブル208を参照し現在の監視情報を取得する(S2506)。そして、取得した監視情報のうちデータレート803が、図11a〜図11cに示した前記データレート閾値カラム804の値以上となっているか否かを判定する(S2507)。前記ステップS2507でyesと判定された場合、ジョイン対象のカラムの値に関する図12の条件カラム704がシーケンシャル属性となっているか否かを判定する(S2509)。
上記S2509の判定は、後の突き合わせを行うためのものであり、突き合わせではある属性値をキーにして突き合わせを行うことをジョイン処理とする。上記S2509のジョイン対象のカラムとは、あるテーブルに対してジョイン処理を行うストリームデータのキーのカラムを意味する。例えば、図7に示した登録クエリ1201では、S1とR1に対し、S1の製品IDとR1の製品IDをキーにして突き合わせを行うことを意味する。R1のジョイン対象のカラムとは「S1の製品ID」カラムを指しており、S1の製品IDカラムがシーケンシャル属性を持っている場合S2509の判定がyesとなる。
次に、前記ステップS2509でyesと判定された場合、前記現在の値カラム805の値よりも小さな値を格納場所判別条件から除外する(S2510)。
ここで、S2510で行われる除外は、格納場所判別条件について「条件式の範囲を狭くする」ことを意味する。例えば、上記S2505では、値に関する条件範囲が「30<=属性値<100」となっており、S2510で値に関する条件カラム704の現在の値が50となっていた場合、現在の値よりも小さい範囲を除外して、「50<=属性値<100」とすることを意味するものである。
前記ステップS2510が終了した後、又は前記ステップS2509でnoと判定された場合、前記図11aの監視情報管理テーブル208のデータレートカラム803、前記現在の値カラム804、前記統計値カラム805、タイムスタンプカラム806、更新頻度カラム807の値を用いて予測条件を算出する(S2511)。
このS2511で求める予測条件は、ユーザから入力された時間に関する条件(S2503)や、シーケンシャル属性(S2509)以外に、ストリームデータの監視で取得した監視情報から上記条件式の範囲を絞り込むことを意味する。例えば、S2505では、範囲が「30<=属性値<100」となっており、ストリームデータからの監視情報から、範囲が「40<=属性値<60」であることが分かった場合、S2511において上記の予測条件でさらに絞り込みを行う。上記で示した例以外にも、監視情報から条件を導き出す場合、上記S2512で予測条件の処理を行うことができる。
上記予測条件の演算は、例えば、図12の値に関する条件カラム704にシーケンシャル属性がある場合、予測条件を「現在の値以上、現在の値+データレート×更新頻度未満」とすることができる。ここで、上記で示した予測条件算出法に限定せず、他の予測アルゴリズムを用いてもよい。
前記ステップS2507でnoと判定された場合、リレーションデータをストリームデータ処理システム102のSPC110上に取得しないため、メモリ、及びディスクの格納場所判別条件を無効化する(S2508)。
ここで、「無効化する」とは「キャッシュしない」ことを意味する。すなわち、図16に示したリレーション名「R4」に対する行が無効化に対応する。例えば、S2505では、範囲が「30<=属性値<100」となっており、データレートが閾値以下(あまりデータが到着していない)の場合には、キャッシュをせず、条件式を「―(何もなし)」としする。ちなみに、全範囲がキャッシュされる場合もある。
前記ステップS2508が終了した後、または前記ステップS2511が終了した後には、今まで設定したすべての格納場所判別条件を適用し(S2512)、SPC格納場所判別条件の算出処理を終了する(S2513)。
以上の処理により、SPC管理テーブル211のリレーション名901毎に、現在のストリームデータ111の値に応じた格納場所判別条件902が算出される。
次に、図9に示したS2110、図13のS2209、図14のS2304、図23のS2716で行われる突き合わせ処理時のSPCデータ取得処理の処理手順を、図20のフローチャートに示し、図2、図21を参照しながら説明する。
突き合わせ処理時のSPCデータ取得処理では、まず、前記SPC管理テーブル211を参照し(S2602)、上記図19の処理で格納場所判別条件902が更新された際に、SPC_OM217、及びSPC_OD219において格納場所判別条件902から除外されたSPCデータを削除する(S2603)。次に、前記登録クエリ管理テーブル205を参照し(S2604)、SPCデータ取得命令を次のように発行する(S2605)。
SPCデータ取得命令は、前記登録クエリ管理テーブル205に保持されているクエリ602に対し、リレーションデータに関連のある行、及び列を取得する命令を生成し、前記SPC管理テーブル211に保持されている条件(格納場所903など)を付加することにより生成する。ここで、関連のある行は登録クエリ602の選択処理に記述されている条件から生成し、関連のある列は射影、結合処理に記述されている条件から生成する。
最後に、前記ステップS2605のSPC取得命令で取得したSPCデータを前記SPC管理テーブル211に記述されている格納場所判定条件902により、格納先をメモリ(SPC_OM217)またはディスク(SPC_OD219)のいずれかに振り分け(S2606)、突き合わせ処理時のSPCデータ取得処理を終了する(S2607)。
以上の処理により、登録クエリ602と格納場所判別条件902に基づいてSPC取得命令を発行し、データ管理システム101のリレーションデータ226がSPC_OM217またはSPC_OD219に読み込まれる。
図21は、SPC取得命令の例を表している。SPC取得命令13011、13012、13013はそれぞれ、10:00、10:10、10:20におけるSPC取得命令を表している。
例えば、図7に示した前記登録クエリ1201の場合、図4、図5、図6よりSELECT句における「ライン名」、FROM句における「S1[Rows 50]」、WHERE句における「S1.製品ID=R1.製品ID」は前記製品ストリーム1111に関係する。一方、SELECT句における「注文ID」、「製品ID」、「製品名」、「注文者名」、FROM句における「R1」、「R2」、WHERE句における「R1.製品ID=R2.製品ID」、「R2.注文者=‘注文者A’」は前記製品ストリーム1111に関係せず、前記製品管理表2261、及び前記注文表2262に関係する。以上より、リレーションデータに関連のある行、及び列を取得する命令「SELECT 注文ID、製品ID、製品名、注文者名 FROM R1、R2 WHERE R1.製品ID=R2.製品ID AND R2.注文者=’注文者A’;」を生成できる。
また、図16に示した前記SPC管理テーブル2111に保持されている10:00のメモリ、及びディスク両方の格納場所判別条件「1000<=製品ID<1200」を上記SPC取得命令に付加すると、10:00におけるSPC取得命令13011「SELECT 注文ID、製品ID、製品名、注文者名 FROM R1、R2 WHERE R1.製品ID=R2.製品ID AND R2.注文者=’注文者A’ AND 1000<=製品ID AND 製品ID<1200;」を生成できる。
また、10:10、及び10:20における格納場所判別条件902を付加することにより、10:10、10:20におけるSPC取得命令13012、13013を同様に生成できる。
ここで、本実施例では、SPC取得命令をSQL文で表現したが、これに限定されるものではない。また、本実施例では、2種類のリレーションデータを結合した結果を、SPCデータとしたが、SPCデータ取得命令において、リレーションデータを個別に取得し、前記ストリームデータ処理システム102中で結合処理を行ってもよい。
図22は、前記SPC取得命令13011、13012、13013により取得したSPC_OMデータ2171、2172、2173、及びSPC_ODデータ2191、2192、2193を表した図である。
図22において、SPC_OMデータ2171〜2173、及びSPC_ODデータ2191〜2193は、図5に示した前記製品管理表2261、及び図6に示した前記注文表2262を突き合わせた図となっている。図22で注文IDカラム1001は、前記注文表2262の注文IDカラム501に対応し、製品IDカラム1002は、前記製品管理表2261の製品IDカラム401、または前記注文表2262の製品IDカラム502に対応し、製品名カラム1003は、前記製品管理表2261の製品名カラム402に対応し、注文者名カラム1004は、前記注文表2262の注文者名カラム503に対応する。
例えば、行1005は、前記製品管理表2261の行404、及び前記注文表2262の行504を突き合わせた行になっている。また、行1006は、同様に行405、及び行505を突き合わせた行になっている。同様にして、SPC_OMデータ2172、2173、及びSPC_ODデータ2192、2193を取得できる。
次に、前記図8のS2008で実行される突き合わせ処理の処理手順を図23のフローチャートに示し、図2を参照しながら以下に説明する。
突き合わせ処理では、まず、前記突き合わせ部112において、前記ストリームデータ111を取得する(S2702)。次に、前記ストリームデータ特性管理テーブル215を参照し(S2703)、前記ストリームデータ特性管理テーブル215に保持されている制約条件(図12に示した前記制約判定フラグカラム706の値が「Y」となっている時間に関する条件カラム703、及び値に関する条件カラム704の条件)を満たしているか否かを判定する(S2704)。前記ステップ2704でnoと判定された場合、ストリームデータを破棄し(S2717)、破棄したことを示す前記ログ222を出力し(S2718)、突き合わせ処理を終了する(S2719)。
図24は、ログ222の例を表した図である。
例えば、ログ1401は、「10:21」にタプル「(10:21,2500,ラインA)」を破棄したことを表している。また、タプルを破棄した条件は「樫山」が登録した「10:00<=時間<=11:00,1500<=製品ID<=2000」であることを表している。
ここで、上記で示したログ222は、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117に対するイベント、若しくはメッセージでもよい。
前記図8のステップ2704でyesと判定された場合、取得したストリームデータ111が制約条件に違反していないので、前記SPC管理テーブル211を参照し(S2705)、取得したストリームデータ111と突き合わせ対象のSPCデータの格納場所を特定する(S2706)。次に、取得したストリームデータとSPC_OM217のデータの突き合わせを行う(S2707)。ここで、突き合わせ対象のSPCデータがSPC_OM217にない場合は、処理を行わない。次に、突き合わせ対象のSPCデータにおいて、SPC_OM217上に存在しないSPCデータがあるか否かを判定する(S2708)。前記ステップ2708でnoと判定された場合、突き合わせ処理を終了する(S2719)。
前記ステップ2708でyesと判定された場合、取得したストリームデータ111とSPC_OD219のデータとの突き合わせを行う(S2709)。ここで、突き合わせ対象のSPCデータがSPC_OD219にない場合は、処理を行わない。次に、突き合わせ対象のSPCデータが、SPC_OM217上にもSPC_OD219上にも存在しないかを判定する(S2710)。前記ステップ2710でnoと判定された場合、前記ステップS2707で実行したSPC_OM217のデータとの突き合わせ結果または前記ステップS2709で実行したSPC_OD219上のデータとの突き合わせ結果を結合する(S2714)。
前記ステップ2710でyesと判定された場合、突き合わせを行うSPCデータがストリームデータ処理システム102のSPC110上にないので、前記データ管理システム101上にある前記リレーションデータ226を取得する。このため、SPCデータ取得命令を発行し(S2711)、データ管理システム101から該当するリレーションデータ226をストリームデータ処理システム102のSPC_OM217またはSPC_ODに読み込んで、取得したストリームデータ111とSPC上のリレーションデータの突き合わせを行う(S2712)。前記ステップS2707で実行したSPC_OM217上のSPCデータとの突き合わせ結果と、前記ステップS2709で実行したSPC_OD219上のSPCデータとの突き合わせ結果、及び前記ステップS2712で実行したリレーションデータ226との突き合わせ結果を結合する(S2713)。つまり、受信したストリームデータ111に、SPC110上の該当するSPCデータの情報を付加し、突き合わせ結果113を生成する。突き合わせ結果113は、ストリームデータ111にユーザ115が理解可能な有意な情報を付加したものに変換される。そして、ストリームデータ処理システム102は、この突き合わせ結果113をクライアント計算機116へ送信する。
前記ステップS2713、または前記ステップS2714が終了した後に、突き合わせ対象となるリレーションデータの予測を再び行うため、前記図9のS2109と同様に、SPC管理テーブル更新処理を行い(S2715)、前記突き合わせ処理時のSPCデータ取得処理を行い(S2716)、突き合わせ処理を終了する(S2719)。
以上の処理により、ストリームデータ特性管理部109に設定された特性情報と、ストリームデータ監視情報管理部106がモニタした監視情報から、突き合わせに必要な外部データ(リレーションデータ226)を、ストリームデータ111が受信する以前に、SPC110上に読み出しておくことが可能となって、突き合わせをリアルタイムで行うことができる。また、SPC110をメモリ216上のSPC_OM217と、ディスク218上のSPC_OD219のように階層的に分けておくことで、リレーションデータ226の一部または全部をストリームデータ処理システム102のSPC110に予め格納しておくことができる。
図25は、前記突き合わせ結果113の例を表した図である。
突き合わせ結果は、図4に示した製品ストリーム1111、及び図22に示したSPCデータ(SPC_OMデータ217、またはSPC_ODデータ219)との突き合わせた表となっている。タイムスタンプカラム1101は、前記製品ストリーム1111におけるタイムスタンプカラム304に対応し、注文IDカラム1102は、前記SPCデータにおける注文IDカラム1001に対応し、製品IDカラム1103は、前記SPCデータにおける製品IDカラム1002に対応し、ライン名カラム1104は、前記製品ストリーム1111におけるライン名カラム302に対応し、製品名カラム1105は、前記SPCデータにおける製品名カラム1003に対応し、注文者名カラム1106は、前記SPCデータにおける注文者名カラム1004に対応する。
例えば、行1107は、製品ストリーム1111における行305、及び前記SPC_OMデータ2171における行1005突き合わせた行になっている。
以上、本発明の一実施形態について説明した。
本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
例えば、上記の実施形態では、クライアント計算機116、及びデータ管理システム101はネットワークで介して接続されているが、同一計算機上にあってもよい。また、記憶装置109として、メモリ216、及びディスク218の2階層構造としたが、メモリ216のみ1階層、若しくは3階層以上の構造でもよい。また、メモリ、ディスクに限定せず、テープ、フラッシュメモリなど他の記憶装置でもよい。
また、上記の実施形態では、2種類のリレーションデータを結合した結果を、SPCデータとしたが、SPCデータ取得命令において、リレーションデータを個別に取得し、前記ストリームデータ処理システム102中で結合処理を行ってもよい。上記の場合に、図10に示した前記登録クエリ管理テーブル205において、前記メモリ上限値カラム603の値を突き合わせ対象のリレーションごとにメモリ上限値を設定してもよい。
図26は、前記メモリ上限値カラム603の値を突き合わせ対象のリレーションごとにメモリ上限値を設定した場合の前記登録クエリ管理テーブル205を表している。行610、及び行611は、図10に示した前記登録クエリ管理テーブル205における行609に対応する。行610は、実行対象リレーションカラムが「R1」に対して、メモリ上限値を「7MB」であることを表し、行611は、実行対象リレーションカラムが「R2」に対して、メモリ上限値を「3MB」であることを表している。
また、上記の実施形態では、ストリームデータ特性管理テーブル215、及び監視情報管理テーブル208の両方を用いてSPCデータの格納場所を判定しているが、いずれか一方で判定してもよい。
また、上記の実施形態では、前記ストリームデータ特性管理テーブル215に設定されるストリーム特性情報を前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117が入力しているが、ストリームデータのスキーマ定義において、ストリームデータ特性情報を入力し、スキーマ定義から自動的に前記ストリームデータ特性管理テーブル215を生成してもよい。
また、上記の実施形態では、前記登録クエリ管理テーブル205、監視情報管理テーブル208、SPC管理テーブル211、ストリームデータ特性管理テーブル215に設定される情報は、前記ユーザ115、または前記クライアント計算機116上で実行される前記アプリケーション117が設定しているが、例えば、Stratis Viglas,Jeffrey F. Naughton著:“Rate−based query optimization for streaming information sources”,In Proc. of SIGMOD Conference 2002,pp. 37−48(非特許文献3)に開示されているクエリの最適化を行う処理機構が設定してもよい。
また、上記の実施形態では、リレーションデータ更新時に、SPCクリア命令により、SPCデータを更新する例を説明したが、前記データ管理システム101において、前記データ114(226)の変更を監視することにより、前記データ114の変更を検知し、変更のあった前記データ114を前記ストリームデータ処理システム102に送信することにより、SPCデータを更新してもよい。
データ管理システム101のリレーションデータ226の変更を検知し、ストリームデータ処理システム102に変更の内容を送信することによってSPCデータの更新を行う処理について説明する。この処理は、図8のS2006で実行されるリレーション更新時の処理の他の例を示し、この処理手順を、図27のフローチャートに示し、図2を参照しながら以下に説明する。
リレーション更新時の処理では、まず前記SPC管理部212において、前記データ管理システム101において生成されたタプルを受け付けたか否かを判定する(S2802)。前記ステップS2802でyesと判定された場合、前記SPC管理テーブル211を参照し(S2803)、SPCデータの格納場所を特定し(S2804)、該当する場所にあるタプルを変更されたタプルに入れ替える(S2805)。前記ステップS2805が終了した場合、または前記ステップS2802でnoと判定された場合、リレーション更新時の処理を終了する(S2806)。
ここで、前記データデータ管理システム101においてリレーションデータ226の変更を検知するには、前記データ変更検知部201において、データベースにおけるトリガを設定する、またはアプリケーションからのデータ更新命令を監視することにより実現できる。そして、前記タプル生成部202において、変更した時間をタイムスタンプとして付加したタプルを生成し、前記ストリームデータ処理システム102に送信する。
また、前記突き合わせ実行部220において、前記タプル生成部202において付加されたタイムスタンプを用いることにより、一貫性を完全に損なわない突き合わせを実現できる。ここで、前記データ管理システム101、前記ストリームデータ処理システム102の時刻は同期しているものとする。
また、上記の実施形態では、前記ストリームデータ111がレコード形式である例を説明したが、XMLドキュメント形式やCSVファイル形式などいかなるデータ形式でもよい。さらに、上記の実施形態ではデータ管理システム101の前記記憶装置104中のデータ114がリレーションデータ226である例を説明したが、XMLドキュメント形式やCSVファイル形式などいかなるデータ形式でもよい。レコード形式以外の場合、図2で示した前記SPC管理部212中のデータ変換部230、若しくは前記突き合わせ実行部220中のデータ変換部230において、レコード形式以外のデータ形式からレコード形式へと変換することにより、突き合わせ実行部220において、ストリームデータ111、及び記憶装置104中のデータ114の突き合わせを行うことができる。
図28は、前記ストリームデータ111がXMLドキュメント形式である場合の好適なデータフォーマットを模式的に表した図である。
ストリームデータ303は、「<ストリームデータ>」、及び「</ストリームデータ>」で囲まれた領域で表現され、行1501は図3に示した製品IDカラム301に対応し、行1502は図3に示したライン名カラム302に対応する。前記突き合わせ実行部220中のデータ変換部230において、上記に示した対応関係からレコード形式に変換することにより、突き合わせを行うことができる。
図29は、前記データ114がXMLドキュメント形式である場合の例を表した図である。
図5に示した行404は、「<製品>」、及び「</製品>」で囲まれた領域で表現され、行1503は、図5に示した製品IDカラム401に対応し、行1504は、図5に示した製品名カラム402に対応し、行1505は、図5に示した価格カラム403に対応する。前記SPC管理部212中のデータ変換部230、若しくは前記突き合わせ実行部220中のデータ変換部230において、上記に示した対応関係からレコード形式に変換することにより、突き合わせを行うことができる。
また、上記の実施形態では、ストリームデータ処理システム102は、任意のコンピュータシステムとして説明したが、前記ストリームデータ処理システム102で行う処理の一部、若しくは全部をストレージ装置で行ってもよい。
また、上記の実施形態では、計算機12が製品の情報や環境条件(温度)などをストリームデータ111を出力する例を示したが、これに限定されるものではない。例えば、計算機12に代わって多数のセンサノードを管理するセンサネットサーバが、センサノードの測定値をストリームデータ111と出力し、ストリームデータ処理システム102でセンサノードの測定値を外部データに基づいて、ユーザ115が理解可能な有意な情報を含む突き合わせ結果113に変換し、クライアント計算機116へ提供するようにしてもよい。
なお、ストリームデータを1次情報として取得し、前記取得した1次情報を予め設定した外部データの情報に基づいて2次情報に変換するストリームデータ処理システムにおいて、
前記ストリームデータを1次情報として取得するストリームデータ入力部と、
前記ストリームデータと突き合わせを行う外部データを格納する外部データ格納部と、
前記ストリームデータに対する処理を記述したクエリを予め登録するクエリ管理部と、
前記クエリを参照して、前記外部データの一部または全部を記憶装置に予め設定したストリームプレディクトキャッシュへ予め読み込む格納場所管理部と、
前記ストリームプレディクトキャッシュへ読み込んだ外部データと、前記ストリームデータとを突き合わせることにより、前記2次情報を生成する突き合わせ部と、
を備えたことを特徴とするストリームデータ処理システム。
また、上記ストリームデータ処理システムにおいて、
前記ストリームデータの値の特徴を表すストリームデータの特性情報を格納するストリームデータ特性管理部と、
前記ストリームデータを監視して監視情報を取得するストリームデータ監視部と、を有し、
前記格納場所管理部は、
前記ストリームデータの特性情報と、前記取得した監視情報とに基づいて、前記ストリームプレディクトキャッシュへ予め読み込む前記外部データを決定することを特徴とするストリームデータ処理システム。
なお、請求項1に記載のストリームデータ処理方法において、
処理時刻以降に到着する前記ストリームデータの値の特徴を表すストリームデータの特性情報を入力し、前記ストリームデータの特性情報を用いて、前記ストリームプレディクトキャッシュとして取得する前記外部データを決定することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項1に記載のストリームデータ処理方法において、
前記ストリームデータを監視することにより監視情報を取得し、前記取得した監視情報を用いて、前記ストリームプレディクトキャッシュとして取得する前記外部データを決定することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項6に記載のストリームデータ処理方法において、
前記ストリームデータに対し複数の前記特性情報がある場合、何れの条件を優先的に使用するか判定する優先度と、前記ストリームデータにおける時刻情報に対応する条件であり、前記ストリームデータが違反していないかチェックを行う時間付き制約情報であるか判定するフラグを表す制約判定フラグカラムと、前記特性情報が必ず満たされる、若しくは満たされると想定されるか判定するフラグを表す確定条件フラグと、前記特性情報を登録した登録者とのうち一部または全部をストリームデータ特性管理テーブルに保持することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項6に記載のストリームデータ処理方法において、
前記ストリームデータ特性管理テーブルを参照し、前記ストリームデータ特性管理テーブルの値に関する条件カラムの条件を適用することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項8に記載のストリームデータ処理方法において、
前記時間付き制約情報に違反している場合、前記ストリームデータを破棄し、破棄した前記ストリームデータおよび前記時間付き制約情報をログとして出力することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項9に記載のストリームデータ処理方法において、
監視対象の前記ストリームデータの到着レートを表すデータレートと、前記データレートにより前記ストリームプレディクトキャッシュ要否を判定する値を表すデータレート閾値と、前記監視情報を取得した時点における監視対象の前記カラム名の最新の値を表す現在の値と、前記監視情報を前回取得した時点からの統計値を表す統計値と、前記ストリームデータの監視情報の更新間隔を表す更新頻度カラムとのうち一部または全部を監視情報管理テーブルに保持することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項13に記載のストリームデータ処理方法において、
予め登録された前記クエリの実行形式の格納先のアドレスを表すクエリ実行形式格納先と、前記クエリ登録時に取得した前記クエリの登録者と、前記クエリ登録時に取得した前記クエリの登録日時と、前記クエリから抜き出した前記クエリ実行対象となるストリーム名を表す実行対象ストリームと、前記クエリから抜き出した前記クエリ実行対象となるリレーション名を表す実行対象リレーションとのうち、一部または全部を登録クエリ管理テーブルに保持することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項5に記載のストリームデータ処理方法において、
前記外部データの更新頻度と、前記外部データに更新が生じたときのポリシーを表す更新ポリシーと、前記ストリームプレディクトキャッシュデータに対しインデクスを張るカラム名を表すストリームプレディクトキャッシュインデクスと、前記外部データを前記ストリーム処理システム上にストリームプレディクトキャッシュデータとして取得するコストを表す取得コストとのうち、一部または全部をストリームプレディクトキャッシュ管理テーブルに保持することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項5に記載のストリームデータ処理方法において、
外部のデータ管理システムにおいて、外部データの変更を検知し、変更した時刻を付与したタプルを生成し、ストリームデータ処理システムに送信することを特徴とするストリームデータ処理方法、としてもよい。
また、請求項5に記載のストリームデータ処理方法において、
外部のデータ管理システムにおいて生成されたタプルを受け付け、前記ストリームプレディクトキャッシュ管理テーブルを参照し、ストリームプレディクトキャッシュデータの格納場所を特定し、新規タプルに入れ替えることを特徴とするストリームデータ処理方法、としてもよい。
以上のように、本発明は時々刻々と変化するストリームデータを外部のデータに基づいて有意な情報に変換し、ユーザへ提供する計算機システムに適用することができる。特に、リアルタイムで処理する必要があるストリームデータの量が膨大な量になる金融機関のシステムや、センサネットシステムなどに適用することができる。
本発明の一実施形態に係るストリームデータ処理システム、および関連するシステム構成の概要を示すブロック図である。 本発明の一実施形態が適用されたストリームデータ処理システム、および関連するシステムの構成を示すブロック図である。 ストリームデータ111の好適なデータフォーマットの例を模式的に表した図である。 連続して入力されたストリームデータ111を例示した図であり、製品ストリーム(S1)1111を表している。 リレーションデータ226を例示した図であり、製品管理表(R1)2261を表している。 リレーションデータ226を例示した図であり、注文表(R2)2262を表している。 クエリを前記ストリームデータ処理システム102に登録する際の好適なコマンドの記述例を示す説明図である。 ストリームデータ処理システム102を用いた突き合わせ処理の処理手順を表したフローチャートである。 クエリ登録・変更時の処理S2003の処理手順を表したフローチャートである。 登録クエリ管理テーブル205の構成例を表した図である。 時刻10:00における監視情報管理テーブル208の一例を表した説明図である。 時刻10:10における監視情報管理テーブル208の一例を表した説明図である。 時刻10:20における監視情報管理テーブル208の一例を表した説明図である。 ストリーム特性管理テーブル215の構成例を表した図である。 監視情報変更および設定変更時の処理S2005の処理手順を表したフローチャートである。 リレーションデータ更新時の処理S2006の処理手順を表したフローチャートである。 SPC管理テーブル更新処理S2109の処理手順を表したフローチャートである。 SPC管理テーブル211の構成例を表した図であり、タイムスタンプ10:00におけるSPC管理テーブル2111を表している。 SPC管理テーブル211の構成例を表した図であり、タイムスタンプ10:10におけるSPC管理テーブル2112を表している。 SPC管理テーブル211の構成例を表した図であり、タイムスタンプ10:20におけるSPC管理テーブル2113を表している。 SPC格納場所判別条件の算出処理S2402の処理手順を表したフローチャートである。 突き合わせ処理時のSPCデータ取得処理S2110の処理手順を表したフローチャートである。 SPC取得命令の一例を示す説明図。 SPC取得命令13011、13012、13013により取得したSPC_OMデータ2171、2172、2173、及びSPC_ODデータ2191、2192、2193を表した図である。 突き合わせ処理S2008の処理手順表したフローチャートである。 ログ222の例を表した説明図である。 突き合わせ結果113の例を表した説明図である。 メモリ上限値カラム603の値を突き合わせ対象のリレーションごとにメモリ上限値を設定した場合の登録クエリ管理テーブル205を表す説明図。 データの変更を検知し、ストリームデータ処理システムに送信することによるSPCデータの更新する場合のリレーション更新時の処理S2006の処理手順の他の例を表したフローチャートである。 ストリームデータ111がXMLドキュメント形式である場合の好適なデータフォーマットを模式的に表した説明図である。 データ114がXMLドキュメント形式である場合の例を表した説明図である。
符号の説明
101 データ管理システム
102 ストリームデータ処理システム
103 ネットワーク
104 記憶装置
105 クエリ管理部
106 ストリームデータ監視情報管理部
107 格納場所管理部
108 ストリームデータ特性管理部
109 記憶装置
110 ストリームプレディクトキャッシュ(SPC)
111 ストリームデータ
112 突き合わせ部
113 突き合わせ結果
114 データ

Claims (17)

  1. 計算機に入力されるストリームデータを1次情報として取得し、該取得した1次情報から予め設定した外部データの情報に基づいて2次情報を生成するストリームデータ処理方法において、
    前記計算機にストリームデータの処理を記述するクエリを予め登録する処理と、
    前記ストリームデータの値の特徴を表すストリームデータの特性情報を受け付ける処理と、
    前記ストリームデータを監視することにより監視情報を取得する処理と、
    前記計算機が前記クエリを参照して、前記外部データの一部または全部を前記計算機に予め設定したストリームプレディクトキャッシュへ予め読み込む処理と、
    前記計算機がストリームプレディクトキャッシュへ読み込んだ外部データと、前記ストリームデータとを突き合わせることにより、前記2次情報を生成する処理と、
    を含み、
    前記外部データを前記ストリームプレディクトキャッシュへ予め読み込む処理は、
    前記ストリームデータの特性情報と、前記取得した監視情報とを用いて、前記ストリームプレディクトキャッシュへ予め読み込む前記外部データを決定することを特徴とするストリームデータ処理方法。
  2. 請求項1に記載のストリームデータ処理方法において、
    前記外部データをストリームプレディクトキャッシュへ読み込む処理は、
    前記予め登録した前記クエリから、前記外部データに関する記述部分を抜き出して、前記ストリームプレディクトキャッシュへ外部データを取得するためのストリームプレディクトキャッシュデータ取得命令を生成する処理をさらに含み、
    前記生成したストリームプレディクトキャッシュデータ取得命令を発行して前記外部データを読み込むことを特徴とするストリームデータ処理方法。
  3. 請求項2に記載のストリームデータ処理方法において、
    前記予め登録された前記クエリから取得した突き合わせ対象のリレーション名と、前記ストリームプレディクトキャッシュにおける外部データの格納場所を決定するための条件を表す格納場所判別条件と、前記ストリームプレディクトキャッシュにおける外部データの前記格納場所と、前記ストリームプレディクトキャッシュの外部データに係る情報が更新された時刻情報を表すタイムスタンプと、をストリームプレディクトキャッシュ管理情報に保持する処理をさらに含むことを特徴とするストリームデータ処理システム。
  4. 請求項3に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュデータ取得命令を生成する処理は、
    前記外部データに関する記述部分を抜き出し、かつ前記ストリームプレディクトキャッシュ管理情報を参照し、前記格納場所判別条件を付加することにより前記ストリームプレディクトキャッシュデータ取得命令を生成することを特徴とするストリームデータ処理方法。
  5. 請求項4に記載のストリームデータ処理方法において、
    前記特性情報を入力する前記ストリームデータの名前を表すストリーム名と、前記特性情報を入力するカラムの名前を表すカラム名と、タイムスタンプに関する条件を表す時間に関する条件と、前記カラム名に対応する値の特性を表す値に関する条件カラムとを、ストリームデータ特性管理情報に保持する処理をさらに含むことを特徴とするストリームデータ処理方法。
  6. 請求項5に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュデータ取得命令を生成する処理は、
    前記ストリームデータ特性管理情報を参照し、前記ストリームデータ特性管理情報のタイムスタンプカラムの時刻情報から、前記ストリームデータ特性管理情報の時間に関する条件カラムの条件を満たす前記ストリームデータ特性管理情報の値に関する条件カラムの条件を適用することを特徴とするストリームデータ処理方法。
  7. 請求項5に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュデータ取得命令を生成する処理は、
    前記ストリームデータにおける時刻情報に対応する条件である時間付き制約情報を保持するストリームデータ特性管理情報を参照し、入力された前記ストリームデータが前記時間付き制約情報に違反していないか否かを判定することを特徴とするストリームデータ処理方法。
  8. 請求項4に記載のストリームデータ処理方法において、
    前記監視情報を取得する処理は、
    前記ストリームデータの監視対象のストリーム名と、監視対象の前記ストリームデータのカラム名と、前記監視情報を取得した時刻情報を表すタイムスタンプとを、監視情報管理部に保持することを特徴とするストリームデータ処理方法。
  9. 請求項8に記載のストリームデータ処理方法において、
    前記監視情報管理部を参照し、前記監視情報から前記ストリームデータが必要と予測できる外部データの一部若しくは全部を取得するための条件である予測条件を算出する処理をさらに含むことを特徴とするストリームデータ処理方法。
  10. 請求項9に記載のストリームデータ処理方法において、
    前記監視情報管理を参照し、前記データレートが前記データレート閾値未満の場合は、前記外部データを取得しないことを特徴とするストリームデータ処理方法。
  11. 請求項4に記載のストリームデータ処理方法において、
    前記特性情報を入力する前記ストリームデータの名前を表すストリーム名と、前記特性情報を入力するカラムの名前を表すカラム名と、タイムスタンプに関する条件を表す時間に関する条件と、前記カラム名に対応する値の特性を表す値に関する条件カラムとを、ストリームデータ特性管理情報に保持する処理と、
    前記ストリームデータの監視対象のストリーム名と、監視対象の前記ストリームデータのカラム名と、前記監視情報を取得した時刻情報を表すタイムスタンプとを、監視情報管理部に保持する処理と、
    前記ストリームデータ特性管理情報、及び前記監視情報管理部を参照し、該カラムがシーケンシャル属性を有しているか判定し、前記シーケンシャル属性の場合、前記監視情報管理部の現在の値カラムの値よりも小さな値をストリームプレディクトキャッシュから削除する処理と、
    を含むことを特徴とするストリームデータ処理方法。
  12. 請求項4に記載のストリームデータ処理方法において、
    予め登録された前記クエリと、前記クエリの名前と、前記クエリが使用可能なメモリ量の上限を表すメモリ上限値とを登録クエリ管理情報に保持する処理を含むことを特徴とするストリームデータ処理方法。
  13. 請求項12に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュ管理情報を参照し、メモリに格納される前記ストリームプレディクトキャッシュにおいて前記格納場所判別条件を満たすメモリ使用量を計算し、前記登録クエリ管理情報を参照して、前記ストリームプレディクトキャッシュのメモリ使用量が前記登録クエリ管理情報のメモリ上限値よりも大きいか否かを判定する処理を含むことを特徴とするストリームデータ処理方法。
  14. 請求項13に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュのメモリ使用量が前記登録クエリ管理情報のメモリ上限値よりも大きいか否かを判定し、前記メモリ上限値よりも大きいと判定した場合には、前記メモリ上限値に対応する外部データ量を計算し、前記外部データの各タプルの距離が小さいものから前記メモリ上限値に対応する前記外部データ量だけ格納することを特徴とするストリームデータ処理方法。
  15. 請求項14に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュ管理情報を参照し、前記ストリームプレディクトキャッシュ管理情報の格納場所判別条件カラムの条件から除外された前記ストリームプレディクトキャッシュの外部データを削除し、前記ストリームプレディクトキャッシュ管理情報の格納場所判別条件カラムの条件に新規に追加されたストリームプレディクトキャッシュの外部データを前記計算機のメモリまたはディスクに格納することを特徴とするストリームデータ処理方法。
  16. 請求項15に記載のストリームデータ処理方法において、
    前記ストリームプレディクトキャッシュは、前記計算機のメモリ上に設定されたストリームプレディクトキャッシュオンメモリと、前記計算機のディスク上に設定されたストリームプレディクトキャッシュオンディスクと、を有し、
    前記2次情報を生成する処理は、
    前記ストリームプレディクトキャッシュ管理情報を参照し、格納場所判別条件から突き合わせを行う外部データが存在する前記ストリームプレディクトキャッシュの格納場所を判定する処理と、
    前記判定結果がストリームプレディクトキャッシュオンメモリの場合には、ストリームプレディクトキャッシュオンメモリから該当する外部データを読み込む処理と、
    前記判定結果がストリームプレディクトキャッシュオンディスクの場合には、ストリームプレディクトキャッシュオンディスクから該当する外部データを読み込む処理と、
    前記判定結果がストリームプレディクトキャッシュオンメモリ及びストリームプレディクトキャッシュオンディスクの何れにも存在しない場合には、該当する外部データを読み込む処理と、
    前記読み込んだ外部データと前記ストリームデータを突き合わせる処理と、を含むことを特徴とするストリームデータ処理方法。
  17. 請求項4に記載のストリームデータ処理方法において、
    前記格納場所管理部は、ストリームプレディクトキャッシュクリア命令を受け付け、前記ストリームプレディクトキャッシュに格納された外部データをクリアし、前記外部データを再取得する命令を発行することを特徴とするストリームデータ処理方法。
JP2006161233A 2006-06-09 2006-06-09 ストリームデータ処理方法 Expired - Fee Related JP4804233B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006161233A JP4804233B2 (ja) 2006-06-09 2006-06-09 ストリームデータ処理方法
US11/502,474 US8495082B2 (en) 2006-06-09 2006-08-11 Stream data processing method cooperable with reference external data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006161233A JP4804233B2 (ja) 2006-06-09 2006-06-09 ストリームデータ処理方法

Publications (2)

Publication Number Publication Date
JP2007328716A JP2007328716A (ja) 2007-12-20
JP4804233B2 true JP4804233B2 (ja) 2011-11-02

Family

ID=38823129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006161233A Expired - Fee Related JP4804233B2 (ja) 2006-06-09 2006-06-09 ストリームデータ処理方法

Country Status (2)

Country Link
US (1) US8495082B2 (ja)
JP (1) JP4804233B2 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204551A1 (en) * 2004-11-08 2009-08-13 International Business Machines Corporation Learning-Based Method for Estimating Costs and Statistics of Complex Operators in Continuous Queries
US8005849B2 (en) * 2006-08-31 2011-08-23 Red Hat, Inc. Database access server with reformatting
KR100948830B1 (ko) * 2006-12-07 2010-03-22 한국전자통신연구원 캐쉬 서버를 이용한 계층적 정보 송수신 방법 및 시스템
US7870167B2 (en) * 2007-11-09 2011-01-11 Oracle America, Inc. Implementing event processors
KR100964374B1 (ko) * 2007-12-17 2010-06-17 한국전자통신연구원 전파식별 태그의 메모리 관리 장치 및 방법
KR100937872B1 (ko) * 2007-12-17 2010-01-21 한국전자통신연구원 무선 센서네트워크에서 센서모듈을 위한센서노드동적관리장치 및 방법
JP5198929B2 (ja) * 2008-04-25 2013-05-15 株式会社日立製作所 ストリームデータ処理方法及び計算機システム
JP5465413B2 (ja) * 2008-10-29 2014-04-09 株式会社日立製作所 ストリームデータ処理方法、及びそのシステム
JP4659877B2 (ja) * 2008-12-03 2011-03-30 株式会社日立製作所 ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム
US20100165839A1 (en) * 2008-12-29 2010-07-01 Motorola, Inc. Anti-replay method for unicast and multicast ipsec
JP5058209B2 (ja) * 2009-05-22 2012-10-24 株式会社日立製作所 ストリームデータ処理において逆再生を行うデータ処理システム
JP5071990B2 (ja) * 2009-07-28 2012-11-14 日本電信電話株式会社 データベース装置、データベースシステム、キャッシュメンテナンス方法およびそのプログラム
JP4925143B2 (ja) * 2009-08-12 2012-04-25 株式会社日立製作所 ストリームデータ処理システム、ストリームデータ処理方法及びストリームデータ処理プログラム
JP5488039B2 (ja) * 2010-02-24 2014-05-14 日本電気株式会社 データストリーム処理システム、データストリーム処理方法、クライアント装置、プログラム、及び、ノード装置
WO2011111235A1 (ja) * 2010-03-08 2011-09-15 株式会社日立製作所 ストリームデータ処理システム、ストリームデータ処理方法及びストリームデータ流量制御プログラム
US9189280B2 (en) 2010-11-18 2015-11-17 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US20120173752A1 (en) * 2010-12-30 2012-07-05 Kellogg Brown & Root Llc Methods for Managing Data Acquisition and Transfer
US8990416B2 (en) 2011-05-06 2015-03-24 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9405795B2 (en) * 2011-07-20 2016-08-02 Hitachi, Ltd. Stream data processing server and a non-transitory computer-readable storage medium storing a stream data processing program
US9191291B2 (en) * 2012-09-14 2015-11-17 Salesforce.Com, Inc. Detection and handling of aggregated online content using decision criteria to compare similar or identical content items
EP2899605B1 (en) * 2012-09-21 2017-07-26 Fuji Machine Mfg. Co., Ltd. Production system and program switching method used for same
US9361308B2 (en) 2012-09-28 2016-06-07 Oracle International Corporation State initialization algorithm for continuous queries over archived relations
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US10268639B2 (en) * 2013-03-15 2019-04-23 Inpixon Joining large database tables
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
JP6021741B2 (ja) 2013-06-05 2016-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 時空間データベースの処理方法、プログラム及びシステム
US9384302B2 (en) * 2013-06-17 2016-07-05 International Business Machines Corporation Generating differences for tuple attributes
JP6114473B2 (ja) * 2013-06-21 2017-04-12 株式会社日立製作所 時間調整を使用したストリームデータ処理方法
JP6281243B2 (ja) * 2013-10-28 2018-02-21 富士通株式会社 データ処理プログラム、データ処理方法、およびデータ処理装置
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
CN104281668A (zh) * 2014-09-28 2015-01-14 墨仕(厦门)电子商务有限公司 一种数据处理方法
CN104408164B (zh) * 2014-12-05 2018-05-18 北京国双科技有限公司 基于SSAS Tabular数据分析处理方法及装置
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
US10417239B2 (en) * 2017-01-13 2019-09-17 International Business Machines Corporation Reducing flow delays in a data streaming application caused by lookup operations
US20180268001A1 (en) 2017-03-16 2018-09-20 International Business Machines Corporation Managing a database management system using a set of stream computing data
US10185745B2 (en) 2017-03-16 2019-01-22 International Business Machines Corporation Managing a stream computing environment using a projected database object
US11113197B2 (en) * 2019-04-08 2021-09-07 Microsoft Technology Licensing, Llc Punctuation controlled temporal reference data lookup
US11037168B1 (en) 2019-12-20 2021-06-15 Capital One Services, Llc Transaction exchange platform with watchdog microservice
US10789600B1 (en) * 2019-12-20 2020-09-29 Capital One Services, Llc Transaction exchange platform with snapshot microservice
US11023528B1 (en) 2019-12-20 2021-06-01 Capital One Services, Llc Transaction exchange platform having configurable microservices
US10891615B1 (en) * 2019-12-20 2021-01-12 Capital One Services, Llc Transaction exchange platform having streaming transaction data and microservices
US11080120B2 (en) 2019-12-20 2021-08-03 Capital One Services, Llc Transaction exchange platform with watchdog microservice
JP7381895B2 (ja) 2020-04-15 2023-11-16 富士通株式会社 イベントストリーム処理システム、イベントムストリーム処理方法及びイベントストリーム処理プログラム
US11558473B2 (en) * 2020-12-17 2023-01-17 International Business Machines Corporation Aspect aware streams computing
JP2023104400A (ja) 2022-01-17 2023-07-28 富士通株式会社 データ管理方法およびデータ管理プログラム

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
JP4288978B2 (ja) * 2003-03-27 2009-07-01 株式会社日立製作所 データ先読み方法
JP4687253B2 (ja) * 2005-06-03 2011-05-25 株式会社日立製作所 ストリームデータ処理システムのクエリ処理方法

Also Published As

Publication number Publication date
US8495082B2 (en) 2013-07-23
US20070288459A1 (en) 2007-12-13
JP2007328716A (ja) 2007-12-20

Similar Documents

Publication Publication Date Title
JP4804233B2 (ja) ストリームデータ処理方法
JP5198929B2 (ja) ストリームデータ処理方法及び計算機システム
JP4933222B2 (ja) インデックス処理方法及び計算機システム
US8335782B2 (en) Ranking query processing method for stream data and stream data processing system having ranking query processing mechanism
JP4687253B2 (ja) ストリームデータ処理システムのクエリ処理方法
JP5154366B2 (ja) ストリームデータ処理プログラム及び計算機システム
JP3620448B2 (ja) 動的に作られかつ静的であるウェブコンテントの知的キャッシュとリフレッシュのためのシステムと方法
JP5377897B2 (ja) ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム
US6826726B2 (en) Remote document updating system using XML and DOM
JP4880025B2 (ja) ストリームデータ処理方法、ストリームデータ処理プログラム及びストリームデータ処理装置
US7290018B2 (en) Change-driven replication of data
CN111526060A (zh) 业务日志的处理方法及系统
CN112711591B (zh) 基于知识图谱的字段级的数据血缘确定方法及装置
US20130242326A1 (en) Method and system for storing and retrieving data
JP2011039820A (ja) ストリームデータ処理方法及び装置
CN111597449B (zh) 用于搜索的候选词构建方法、装置、电子设备及可读介质
Benkhaled et al. Data Quality Management For Data Warehouse Systems: State Of The Art.
CN116842099B (zh) 一种多源异构数据处理方法和系统
CN113704272B (zh) 一种人机物融合环境下的数字对象状态表达方法及装置
JP5372131B2 (ja) インデックス処理方法及び計算機システム
US11956133B1 (en) Navigator performance optimization and signalflow query acceleration
US11907097B1 (en) Techniques for processing trace data
Zahmatkesh et al. Continuous top-k approximated join of streaming and evolving distributed data
CN116136861B (zh) 基于知识图谱的分布式多源异构数据管理系统及方法
Bebee et al. Enabling an Enterprise Data Management Ecosystem using Change Data Capture with Amazon Neptune.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110527

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4804233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees