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

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

Info

Publication number
JP4880025B2
JP4880025B2 JP2009268689A JP2009268689A JP4880025B2 JP 4880025 B2 JP4880025 B2 JP 4880025B2 JP 2009268689 A JP2009268689 A JP 2009268689A JP 2009268689 A JP2009268689 A JP 2009268689A JP 4880025 B2 JP4880025 B2 JP 4880025B2
Authority
JP
Japan
Prior art keywords
stream data
time
information
data processing
input 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
JP2009268689A
Other languages
English (en)
Other versions
JP2011113273A (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 JP2009268689A priority Critical patent/JP4880025B2/ja
Priority to US12/715,012 priority patent/US20110125778A1/en
Publication of JP2011113273A publication Critical patent/JP2011113273A/ja
Application granted granted Critical
Publication of JP4880025B2 publication Critical patent/JP4880025B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

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

Description

本発明は、ストリームデータ処理方法及びプログラムに関し、特に、複数ストリームの同時処理を実行するストリームデータ処理方法及びストリームデータ処理プログラムに関する。
近年、情報通信技術の発展によって、アプリケーションが取り扱う情報データ量が爆発的に増加している。
従来のデータベース管理システム(DBMS)では、受信したデータが一旦データベースなどの記憶領域に格納され、その後に、記憶領域に格納された受信データを用いて一括処理が実行されている。そのため、データベースに一旦受信データを格納するためにタイムラグが生じ、またデータ量が爆発的に増えると、計算量が線形的に増加するため、顧客が要求する処理性能を満たせなくなるアプリケーションが出てくる。
今後の情報通信技術の発展を考慮すると、IT基盤の性能をより向上させることが必須となる。そこで、リアルタイムに集計及び分析することを可能とするストリームデータ処理システムが注目を集めている。
ストリームデータ処理システムは、ストリームデータを計算対象とする。ここで、ストリームデータとは、途切れることなく到来する時刻順のデータ系列である。例えば、RFID読取り情報、交通情報及び株価情報等がストリームデータに相当する。
また、ストリームデータ処理システムでは、予め定義されたシナリオにしたがってデータ処理が実行される。シナリオは、CQL(Continuous Query Language)を利用する(例えば、特許文献2参照)。CQLは、DBMSで広く用いられているSQL(Structured Query Language)が拡張されたものである。CQLは、SQLと同様にシナリオをクエリで記述する。ストリームデータ処理システムでのクエリは従来のSQLと以下の点が異なる。
1点目は、複数の連結クエリによって構成されている点である。例えば、特許文献1に開示されるように、従来のSQLは、1入力1出力を対象とした処理であり、単一のクエリから構成されるようになっている。
一方、ストリームデータ処理システムでは、複数のクエリを連結させ、中間結果を計算するようになっている。このため、単一のクエリでは実現できない複雑なデータ処理を可能にする。
2点目は、例えば、特許文献2に開示されるように、固有のウィンドウの概念を導入している点である。ストリームデータは、連続的に途切れることなく到来し続けるため、演算対象となるデータを抽出するために、時系列データを有限のデータ集合に区切る必要がある。そこで、ストリームデータ処理システムでは、ウィンドウ(スライディングウィンドウ)の概念を導入し、ウィンドウの変化差異を計算対象とする差分計算を採用している。
スライディングウィンドウには、大きく2種類ある。具体的には、入力情報の直前n個分を保持するウィンドウ(ROWウィンドウ)と入力情報の直前n時間分を保持するウィンドウ(RANGEウィンドウ)との2種類である。
これらウィンドウを利用する事によって(例えば、ROWウィンドウを使用した場合)、任意の時刻に対して、直前n個分の入力情報をリアルタイムに近い時刻で集計及び分析することが可能となる。
スラィディングウィンドウは、従来のデータベースシステム処理システムにはない、ストリームデータ処理システムが有する固有のオペレータであり、CQLを導入することによって可能となる。
特開平9−34759号公報 特開2006−338432号公報
ストリームデータ処理では、無限に到来するデータを時刻順に処理するが、データに付与される時刻情報(タイムスタンプ)は、ストリームデータ処理システムがデータ到着時に付与することも、データ送信元が付与することもできる。例えば、交通情報や株価情報の様にリアルタイムの処理が要求されるデータの場合、ストリームデータ処理システムが、データの到着時に時刻情報を付与するようになっている。他方、ログ情報の様にバッチ処理を行う場合、データ入力元(データ送信元)が時刻情報を付与するようになっている。ストリームデータ処理システムは、ストリームデータに対してこの様に付与されたタイムスタンプに従って、順次処理を行うようになっている。
バッチ処理のようにデータ入力元(データ送信元)の時刻をタイムスタンプに付与する場合、日時や時刻が全く異なる複数系統のデータが同時にストリームデータ処理システムに入力される場合がある。
このように、ストリームデータ処理システムは、タイムスタンプ順に処理を行う特徴から一系統ずつしか処理できないという問題がある。
本発明は、日時や時刻が異なる複数系統のデータを、ストリームデータ処理システムが同時に処理すること目的とする。
本発明の代表的な一例を示せば以下の通りである。即ち、時刻情報が含まれたストリームデータを受信し、予め登録されたクエリにしたがって処理を実行するストリームデータ処理装置のストリームデータ処理方法であって、前記ストリームデータ処理装置は、複数のストリームデータから構成される複数の入力情報を受信するストリームデータ受信部と、前記複数の入力情報が有する時刻情報を、該複数の入力情報毎に分析する時刻情報分析部と、前記分析の結果に基づいて、新たな入力情報をそれぞれ生成する時刻情報調整部と、前記新たな入力情報のそれぞれについて、前記クエリに従って処理を実行するストリームデータ処理部と、を有し、前記ストリームデータ処理方法は、前記時刻情報分析部が、前記入力情報毎に、各入力情報を構成するストリームデータを複数抽出し、該ストリームデータの入力間隔と、前記ストリームデータの処理時刻である第1の基準時刻とを算出する第1のステップと、前記時刻情報調整部が、前記入力情報毎に算出した前記入力間隔と、前記第1の基準時刻とに基づいて、前記複数の入力情報の新たな処理の時刻とする第2基準時刻を算出する第2のステップと、前記時刻情報調整部が、前記第2の基準時刻に基づいて、前記複数の入力情報毎に新たな時刻情報が付与されたストリームデータを生成する第3のステップと、を含むことを特徴とする。
本発明によれば、ストリームデータ処理における処理効率(メモリ使用量や計算量)を向上させるという効果がある。
また、ストリームデータに対する時刻情報の操作が不要となり、運用を簡略化できるという効果がある。
本発明を適用した第1の実施形態のストリームデータ処理システムの構成例を示すブロック図である。 本発明を適用した第1の実施形態の入力データ解析部及びストリームデータ処理部が実行する処理の流れを示す説明図である。 本発明を適用した第1の実施形態のストリームデータ処理システムにおける入力情報のストリーム定義及びクエリ定義の一例を示す説明図である。 本発明を適用した第1の実施形態の入力情報1とサンプリングデータ1の一例を示す説明図である。 本発明を適用した第1の実施形態の入力情報2とサンプリングデータ2の一例を示す説明図である。 本発明を適用した第1の実施形態のサンプリングデータ1、サンプリングデータ2及び基準時刻の一例を示す説明図である。 本発明を適用した第1の実施形態における新たなタイムスタンプが付与されたストリームデータ1及びストリームデータ2の一例を示す説明図である。 本発明を適用した第1の実施形態における、新たに付与されたタイムスタンプに基づくストリームデータ処理システムの処理順序を示す説明図である。 本発明を適用した第1の実施形態の入力データ解析部の処理を説明するフローチャートである。 本発明を適用した第1の実施形態のタイムスタンプ調整部が実行する処理を説明するフローチャートである。 本発明を適用した第2の実施形態のストリームデータ処理計算機の構成例を示すブロック図である。 本発明を適用した第2の実施形態のタイムスタンプ定義管理テーブルと基準時刻の一例を示す説明図である。 本発明を適用した第2の実施形態における新たなタイムスタンプが付与されたストリームデータ1、ストリームデータ2、及びストリームデータ3の一例を示す説明図である。 本発明を適用した第2の実施形態のタイムスタンプ調整部が実行する処理を説明するフローチャートである。
<第1の実施形態>
図1は、本発明の第1の実施形態のストリームデータ処理システムの構成例を示すブロック図である。
本発明の第1の実施形態のストリームデータ処理システムは、データ送信計算機1100、ストリームデータ処理計算機1200及び結果受信計算機1300を備える。
データ送信計算機1100とストリームデータ処理計算機1200とは、ネットワーク1500を介して互いに接続され、又結果受信計算機1300とストリームデータ処理計算機1200とは、ネットワーク1600を介して互いに接続される。また、データ送信計算機1100は、ストリームデータソース1410と、ネットワーク1400を介して接続される。
なお、データ送信計算機1100、ストリームデータ処理計算機1200及び結果受信計算機1300を単一の筐体上で実装する構成であってもよいし、いずれか二つの計算機を組み合わせて単一の筐体上に実装する構成であってもよい。また、各計算機が備える機能を組み合わせて、一以上の筐体上で実現するものであってもよい。
データ送信計算機1100は、ストリームデータ処理計算機1200に送信するストリームデータを生成し、生成されたストリームデータをストリームデータ処理計算機1200に送信する。
ストリームデータの生成処理及び送信処理は、データ送信計算機1100が有するプログラムによって実現されてもよいし、専用ハードウェアによって実現されてもよい。
本第1の実施形態では、データ送信計算機1100上で送信アプリケーションが実行される例について説明する。
データ送信計算機1100は、CPU1110、DISK1120及びメモリ1130を備える。
CPU1110は、メモリ1130上に展開されたプログラムを実行する。
DISK1120は、メモリ1130上に展開されたプログラムが利用するデータを格納する。
メモリ1130は、CPU1110によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。メモリ1130は、アプリケーション実行部1131及びストリームデータ送信部1132を含む。
CPU1110が、メモリ1130上に展開されたプログラムを実行することによって、ストリームデータ送信部1132から、ネットワーク1500を介してストリームデータ処理計算機1200にストリームデータが送信される。
生成されるストリームデータは、例えば、DISK1120から読み出されたものを用いて生成されたものでもよいし、ストリームデータソース1410からネットワーク1400を介して取得されたものでもよい。
また、異なる入力元からは、異なるストリームデータが生成される。ここで、入力元が異なるとは、DISK1120から読み出されるファイルが異なる場合、ストリームデータソース1410から取得される情報が異なる計算機のものである場合等が考えられる。
以下、データ送信計算機1100が生成したストリームデータを入力情報という。
ストリームデータ処理計算機1200は、受信した入力情報に基づいて、各種処理を実行する。ストリームデータ処理計算機1200は、CPU1210、DISK1220、及びメモリ1230を備える。ストリームデータ処理計算機1200は、例えば、ブレード型計算機システム又はPCサーバなどの計算機システムであってもよい。
CPU1210は、メモリ1230上に展開されたプログラムを実行する。
DISK1220は、メモリ1230上のプログラムが利用するデータを格納する。
メモリ1230は、CPU1210によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。メモリ1230は、オペレーティングシステム1240並びに当該オペレーティングシステム1240上で動作するプログラムである入力データ解析部1250及びストリームデータ処理部1260を含む。
また、メモリ1230は、実行されるクエリの定義情報(図示省略)、クエリシナリオ(図示省略)及び入力情報の入力若しくは出力の機能を提供するための情報であるストリームの定義情報(図示省略)を格納する。クエリの定義情報(図示省略)及びストリームの定義情報(図示省略)の詳細は、図3を用いて後述する。
また、メモリ1230には、ストリームデータ処理システムにおける時刻を管理する機能(図示省略)が格納される。当該機能によって、ストリームデータ処理計算機1200は、ストリームデータ処理システムにおける時刻を把握することが可能となる。なお、当該機能は、タイムスタンプ調整部1253等他の構成に含まれてもよい。
入力データ解析部1250は、受信した入力情報を解析する。入力データ解析部1250は、ストリームデータ受信部1251、タイムスタンプ分析部1252、タイムスタンプ調整部1253、入力ストリームデータ送信部1254及びクエリ分析部1255を有する。
ストリームデータ受信部1251は、データ送信計算機1100のストリームデータ送信部1132から、ネットワーク1500を介して入力情報を受信する。なお、ストリームデータ受信部1251は複数あってもよい。この場合、各ストリームデータ受信部1251は、それぞれ、複数の入力情報を同時に受信することができる。
タイムスタンプ分析部1252は、ストリームデータ受信部1251が受信した入力情報に付与されたタイムスタンプとクエリ分析部1255から送信される分析結果とから、入力情報のタイムスタンプに関する情報を分析する。
タイムスタンプ調整部1253は、タイムスタンプ分析部1252及びクエリ分析部1255の分析結果に基づいて新たなタイムスタンプを生成し、ストリームデータ処理部1260に入力するストリームデータに、その生成したタイムスタンプを付与する。
以下、ストリームデータ処理部1260に送信されるストリームデータを入力ストリームデータという。
入力ストリームデータ送信部1254は、タイムスタンプ調整部1253によって生成された新たなタイムスタンプが付与された入力ストリームデータを、ストリームデータ処理部1260に送信する。
クエリ分析部1255は、メモリ1230上に格納されたクエリシナリオに基づいて、前記入力情報を処理する時間範囲を分析する。つまり、クエリ分析部1255は、処理対象となる時間範囲を分析する。また、クエリ分析部1255は、クエリシナリオを分析し、当該分析結果を保持する。
ストリームデータ処理部1260は、入力ストリームデータの処理を実行する。ストリームデータ処理部1260は、入力ストリームデータ受信部1261、クエリ処理部1262及びストリームデータ送信部1263を有する。
入力ストリームデータ受信部1261は、入力データ解析部1250の入力ストリームデータ送信部1254から送信された入力ストリームデータを受信する。
クエリ処理部1262は、メモリ1230上に格納されたクエリシナリオにしたがって、入力ストリームデータ受信部1261が受信した入力ストリームデータを集計し又分析する。
ストリームデータ送信部1263は、クエリ処理部1262が処理した結果を、ネットワーク1600を介して、結果受信計算機1300に送信する。
結果受信計算機1300は、ストリームデータ処理計算機1200によって処理された結果であるストリームデータを受信し、受信したストリームデータを用いて各種所定の処理を実行する。ストリームデータの受信処理及び所定の処理は、結果受信計算機1300が有するプログラムによって実現されてもよいし、専用ハードウェアによって実現されてもよい。
結果受信計算機1300は、CPU1310、DISK1320、メモリ1330を備える。本実施形態では、結果受信計算機1300上で受信アプリケーションが実行される例について説明する。
CPU1310はメモリ1330上に展開されたプログラムを実行する。
DISK1320は、メモリ1330上に展開されたプログラムが利用するデータを格納する。
メモリ1330は、CPU1310によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。メモリ1330は、ストリームデータ受信部1331及びアプリケーション実行部1332を含む。
CPU1310が、メモリ1330上に展開されたプログラムを実行することによって、ストリームデータ受信部1331が、ネットワーク1600を介してストリームデータ処理計算機1200のストリームデータ送信部1263からストリームデータを受信し、アプリケーション実行部1332が、受信したストリームデータを用いて所定の処理を実行する。
所定の処理は、例えば、外部記憶装置(図示省略)への保存や、ディスプレイ装置(図示省略)への表示などである。
なお、ネットワーク1400、ネットワーク1500及びネットワーク1600は、イーサネット(登録商標)、光ファイバなどによって接続されるローカルエリアネットワーク(LAN)、LANよりも低速なインターネットを含むワイドエリアネットワーク(WAN)であってもよい。
また、ストリームデータの例としては、ファイナンシャルアプリケーションでの株価配信情報、小売業でのPOSデータ、交通情報システムでのプローブカー情報及び計算機システム管理でのエラーログなどが考えられる。
次に、本第1の実施形態が有する機能の具体的な処理手順について説明する。
図2は、本第1の実施形態の入力データ解析部1250及びストリームデータ処理部1260が実行する処理の流れを示す説明図である。
図2に示す例では、タイムスタンプ分析部1(1252A)は入力情報1(2101)を保持し、タイムスタンプ分析部2(1252B)は入力情報2(2111)を保持する。
入力情報1(2101)及び入力情報2(2111)は、データとタイムスタンプとから構成されるn個(nは整数)のストリームデータである。
タイムスタンプ調整部1253は、タイムスタンプ分析部1(1252A)が保持する入力情報1(2101)に含まれるn個のタイムスタンプを用いてサンプリングデータ1(2210)を算出し、タイムスタンプ分析部2(1252B)が保持する入力情報2(2111)に含まれるn個のタイムスタンプを用いてサンプリングデータ2(2230)を算出する。
タイムスタンプ調整部1253は、サンプリングデータ1(2210)とサンプリングデータ2(2230)とを比較し、当該比較結果に基づいて基準時刻(2220)を算出する。
タイムスタンプ調整部1253は、算出された基準時刻に基づいて、新たなタイムスタンプを入力情報へ付与してストリームデータ1(2301)及びストリームデータ2(2311)を生成する。さらに、タイムスタンプ調整部1253は、生成されたストリームデータ1(2301)を入力ストリームデータ受信部1(1261A)へ送信し、生成されたストリームデータ2(2311)を入力ストリームデータ受信部2(1261B)へ送信する。
クエリ処理部1262は、入力ストリームデータ受信部1(1261A)及び入力ストリームデータ受信部2(1261B)が受信した入力ストリームデータを分析し、又集計する。
次に、本実施形態での入力情報及び分析シナリオを具体的に説明する。
本実施形態では、前年度のログ情報と当日のログ情報とから、それぞれ1時間毎のストリームデータの平均値を算出し、同日同時間帯の平均値における前年比を算出する例を用いて説明する。
図3は、本第1の実施形態のストリームデータ処理システムにおける入力情報のストリーム定義及びクエリ定義の一例を示す説明図である。
入力情報1に対するストリーム定義300は、前年度のデータとタイムスタンプとを持つストリームデータを「DATA_OF_PREVIOUS_YEAR」という名称で定義していることを示す。具体的な入力情報1(2101)の例は図4を用いて後述する。
入力情報2に対するストリーム定義301は、当日のデータとタイムスタンプとを持つストリームデータを「DATA_OF_TODAY」という名称で定義していることを示す。具体的な入力情報2(2111)の例は図5を用いて後述する。
クエリ1のCQL定義310は、前年度の入力情報に対して1時間毎のストリームデータの平均値を算出するシナリオを「AVG_OF_TODAY」という名称のクエリで定義している。具体的なクエリの処理の例は図4を用いて後述する。
クエリ2のCQL定義311は、当日の入力情報に対して1時間毎のストリームデータの平均値を算出するシナリオを「AVG_OF_TODAY」という名称のクエリで定義している。具体的なクエリの処理の例は図5を用いて後述する。
クエリ3のCQL定義312は、クエリ1とクエリ2とを結合し、クエリ1から得られた前年度のストリームデータの平均値とクエリ2から得られた当日のストリームデータの平均値とから、該当時間帯(所定の時間帯)における対象データの前年比を算出するシナリオを「DATA_YEAR_ON_YEAR」という名称のクエリで定義している。
図4は、本第1の実施形態の入力情報1(2101)とサンプリングデータ1(2210)の一例を示す説明図である。
入力情報1(2101)は、入力情報1に対するストリーム定義300によって定義された前年度のデータとタイムスタンプとを含む。
入力情報1(2101)における1カラム目410は、入力情報1に対するストリーム定義300のINTEGER型のスキーマvalueに格納される値を示し、2カラム目411は、入力情報1に対するストリーム定義300のTIMESTAMP型のスキーマtimに格納される値を示す。
以下、1カラム目410をデータ410といい、2カラム目411をタイムスタンプ411という。
図4に示す例では、入力情報1(2101)に含まれる入力データ420は、データ410が「100」、タイムスタンプ411が「2008/07/01 10:00:10」であることを示す。なお、本第1の実施形態では、タイムスタンプ411には、ストリームデータ処理計算機1200以外のクライアント装置(図示省略)等によって付与された値が格納される。
クエリ1のCQL定義310は、入力情報1(2101)のうち、入力された1時間分のストリームデータの量の平均値を求めるクエリであることを示す。
FROM句に指定された「DATA_OF_PREVIOUS_YEAR[1 HOUR]」は、入力情報1に対するストリーム定義300において定義されたストリームを入力データとし、1時間分のストリームデータを処理の対象とすることを示している。また、SELECT句に指定されたAVG関数を用いて、入力情報1のデータ410の平均値が算出される。
クエリの時刻精度430は、クエリ1のCQL定義310に指定された時間ウィンドウの情報である。図4に示す例では、時間ウィンドウの情報は[1 HOUR]であるので、クエリの時刻精度430は、「1 HOUR」となる。つまり、クエリ1では1時間分のストリームデータを処理対象としていることを示す。
サンプリングデータ1(2210)は、基準時刻440と平均入力間隔441とを含む。
基準時刻440は、サンプリングデータ1(2210)の先頭データである入力データ420のタイムスタンプ411に示された時刻について、クエリの時刻精度430以下の値を切り捨てた値である。つまり、入力情報における処理対象の時刻を示す。基準時刻440に示された時刻を基点として、クエリの時刻精度430に示された時間間隔におけるストリームデータが、処理対象となるストリームデータであることを示す。
図4に示す例では、クエリの時刻精度430が「1 HOUR」であることから、入力データ420のタイムスタンプ「2008/07/01 10:00:10」の「時間」より小さい値、つまり「分」及び「秒」を切り捨てた時刻「2008/07/01 10:00:00」が基準時刻440として設定される。なお、クエリの時刻制度430が「n MINUTE(nは自然数)」又は「n SECOND(nは自然数)」である場合、この例では、入力データ420の基準時刻は、それぞれ「2008/07/01 10:00:00」、「2008/07/01 10:00:10」として設定される。
平均入力間隔441は、ストリームデータが入力された時間間隔の平均値である。具体的には、タイムスタンプ411から算出された入力間隔の平均値である。
図5は、本発明の第1の実施形態の入力情報2(2111)とサンプリングデータ2(2220)の一例を示す説明図である。
入力情報2(2111)は、入力情報2に対するストリーム定義301によって定義された当日のデータとタイムスタンプとを含む。
入力情報2(2111)における1カラム目510は、入力情報2に対するストリーム定義301のINTEGER型のスキーマvalueに格納される値を示し、2カラム目511は、入力情報2に対するストリーム定義301のTIMESTAMP型のスキーマtimに格納される値を示す。
以下、1カラム目510をデータ510といい、2カラム目511をタイムスタンプ511という。
図5に示す例では、入力情報2(2111)に含まれる入力データ520は、データ510が「130」、タイムスタンプ512が「2009/07/01 10:00:05」であることを示す。なお、本実施形態では、タイムスタンプ511には、ストリームデータ処理計算機1200以外のクライアント装置(図示省略)等によって付与された値が格納される。
クエリ2のCQL定義311は、入力情報2(2111)のうち、入力された1時間分のストリームデータの平均値を求めるクエリであることを示す。
FROM句に指定された「DATA_OF_TODAY[1 HOUR]」は、入力情報2に対するストリーム定義301において定義されたストリームを入力データとし、1時間分のストリームデータを処理の対象とすることを示している。また、SELECT句に指定されたAVG関数を用いて、入力情報2のデータ510の平均値が算出される。
クエリの時刻精度530は、クエリ2のCQL定義311に指定された時間ウィンドウの情報である。図5に示す例では、時間ウィンドウの情報は[1 HOUR]であるので、クエリの時刻精度530は、「1 HOUR」となる。つまり、クエリ2では1時間分のストリームデータを処理対象としていることを示す。
サンプリングデータ2(2220)は、基準時刻540と平均入力間隔541とを含む。
基準時刻540は、サンプリングデータ2(2220)の先頭データである入力データ520のタイムスタンプ511に示された時刻について、クエリの時刻精度530以下の値を切り捨てた値である。つまり、入力情報における処理対象の時刻を示す。基準時刻540に示された時刻を基点として、クエリの時刻精度530に示された時間間隔におけるストリームデータが、処理対象となるストリームデータであることを示す。
図5に示す例では、クエリの時刻精度530が「1 HOUR」であることから、入力データ520のタイムスタンプ「2009/07/01 10:00:05」の「時間」より小さい値、つまり「分」及び「秒」を切り捨てた時刻「2009/07/01 10:00:00」が基準時刻540として設定される。
平均入力間隔541は、ストリームデータが入力された時間間隔の平均値である。具体的には、タイムスタンプ511から算出された入力間隔の平均値である。
図6は、本第1の実施形態のサンプリングデータ1(2210)、サンプリングデータ2(2220)及び基準時刻の一例を示す説明図である。
クエリ3のCQL定義312は、クエリ1のCQL定義311によって得られた前年度のデータ410の平均値と、クエリ2のCQL定義312によって得られた当日のデータ510の平均値とから、当該時間帯における平均値の前年度比を求めるクエリであることを示す。
FROM句に指定された「AVG_OF_PREVIOUS_YEAR[1 HOUR]」と「AVG_OF_TODAY[1 HOUR]」とは、それぞれ、クエリ1のCQL定義311の結果及びクエリ2のCQL定義312の結果を入力とし、1時間分のストリームデータを処理の対象とすることを示している。また、SELECT句に指定された計算式は、平均値の比を算出する式であることを示す。
サンプリングデータ1(2210)及びサンプリングデータ2(2220)は、図4及び図5に示したものと同一である。
クエリの時刻精度613は、クエリ3のCQL定義312において、時刻ウィンドウの指定値が「HOUR」であるから、クエリ3が「時間」単位で処理が実行されることを示す。
サンプリングデータ1(2210)における基準時刻440の値「2008/07/01 10:00:00」と、サンプリングデータ2(2220)における基準時刻540の値「2009/07/01 10:00:00」とを比較すると、「年」の値が異なる以外は同一の値である。
また、サンプリングデータ1(2210)における平均入力間隔441は「0:10:21」であり、サンプリングデータ2(2220)における平均入力間隔541は「0:10:29」である。したがって、両サンプリングデータの入力間隔は共に「分」のオーダーであることが分かる。
以上から、入力情報1(2101)と入力情報2(2111)とはそれぞれタイムスタンプの「年」だけ異なる同時刻帯のデータであると判定される。つまり、同時に実行することが可能な処理であると判定される。
新たな基準時刻620は、同時に実行される処理のデータに新たに設定するタイムスタンプを算出するための時刻である。本実施形態では、全てのサンプリングデータの基準時刻のうち最も新しい時刻が設定される。
図6に示す例では、基準時刻620において、クエリの時刻精度613の「HOUR」より大きい「年」、「月」及び「日」は、「2009/07/01」と設定され、基準時刻620のクエリの時刻精度613以下の「時」、「分」及び「秒」は、タイムスタンプの調整対象外であるため、「−−:−−:−−」と設定される。
図7は、本第1の実施形態における新たなタイムスタンプが付与されたストリームデータ1(2301)及びストリームデータ2(2311)の一例を示す説明図である。
ストリームデータ1(2301)の1カラム目700は、INTEGER型のスキーマvalueに格納される値である。
ストリームデータ1(2301)の2カラム目701は、ストリームデータ処理計算機1200以外のクライアント装置(図示省略)等によって付与された値が格納される。具体的には、タイムスタンプ411と同一の値が格納される。
ストリームデータ1(2301)の3カラム目702は、新たに付与されたタイムスタンプである。具体的には、図6において算出された基準時刻620「2009/07/01」に基づいて、新たに生成されたタイムスタンプである。
以下、1カラム目700をデータ700といい、2カラム目701をタイムスタンプ701といい、3カラム目702を新たなタイムスタンプ702という。
図7に示す例では、新たなタイムスタンプ702は、タイムスタンプ701の「年」、「月」、及び「日」に対して、基準時刻620「2009/07/01」が新たに設定され、「時」、「分」及び「秒」の値は、元のタイムスタンプ701の値がそのまま設定される。
ストリームデータ2(2311)は、図6で算出された基準時刻620「2009/07/01」とサンプリングデータ2(2220)の基準時刻540とが同一であるため、新たなタイムスタンプは設定されない。したがって、ストリームデータ2(2311)の1カラム目720は入力情報2(2111)のデータ510が格納され、2カラム目721は入力情報2(2111)のタイムスタンプ511が格納される。3カラム目722には何も格納されない。
以下、1カラム目720をデータ720といい、2カラム目721をタイムスタンプ721といい、3カラム目722を新たなタイムスタンプ722という。
図8は、本第1の実施形態における、新たに付与されたタイムスタンプに基づくストリームデータ処理システムの処理順序を示す説明図である。
ストリームデータ801は、図7におけるストリームデータ1(2301)のデータ700を示す。
ストリームデータ811は、図7におけるストリームデータ2(2311)のデータ720を示す。
ストリームデータ1(800)及びストリームデータ2(810)は、入力されたとき(入力情報1(2101)及び入力情報2(2111))のタイムスタンプにおける「年」の値が異なるストリームデータ、即ちタイムスタンプが異なるストリームデータである。しかし、図8に示すように、新たなタイムスタンプが付与されることによって同時間帯のストリームデータとして同時に処理が実行される。
次に、本実施形態の処理の流れを説明する。
図9は、本第1の実施形態の入力データ解析部1250の処理を説明するフローチャートである。
まず、ストリームデータ受信部1251は、データ送信計算機1100から2以上の入力情報を受信する(ステップS900)。
タイムスタンプ分析部1252は、受信した入力情報毎に所定の数のストリームデータを抽出する(ステップS901)。抽出されるストリームデータの数は、ストリーム定義及びクエリのCQL定義等を参照することによって分かる。抽出されたストリームデータは、タイムスタンプ調整部1253に送信される。
クエリ分析部1255は、ストリーム定義及びクエリのCQL定義を参照して、受信した入力情報毎にクエリの時刻精度を取得する(ステップS902)。取得されたクエリの時刻精度は、タイムスタンプ調整部1253に送信される。
タイムスタンプ調整部1253は、入力されたストリームデータ及びクエリの時刻精度に基づいて、入力情報毎にサンプリングデータを算出する(ステップS903)。即ちタイムスタンプ調整部1253は、入力間隔と基準時刻(「第1の基準時刻」に相当。)を算出する。
タイムスタンプ調整部1253は、算出された各々のサンプリングデータを比較し、新たな基準時刻(「第2の基準時刻」に相当。)を算出し、算出された新たな基準時刻に基づいて、新たなタイムスタンプが付与された入力ストリームデータを生成する(ステップS904)。なお、ステップS904における処理の詳細については、図10を用いて後述する。生成された入力ストリームデータは、入力ストリームデータ送信部1254に送信される。
入力ストリームデータ送信部1254は、受信した入力ストリームデータをストリームデータ処理部1260に送信する(ステップS905)。
以上の処理によって、ストリームデータ処理部1260は、入力ストリームデータに付与された新たにタイムスタンプに基づいて、同時に複数の処理を実行することができる。
図10は、本第1の実施形態のタイムスタンプ調整部1253が実行する処理を説明するフローチャートである。
タイムスタンプ調整部1253は、クエリ分析部1255から結合クエリの時刻精度を取得する(ステップS1000)。ここで、結合クエリとは、複数のクエリの結果を入力として、処理を実行するクエリである。例えば、図2に示す例では、クエリ3が結合クエリとなる。
なお、タイムスタンプ調整部1253は、クエリ分析部1255が分析した結果を取得することによって、結合クエリを把握できる。以下の処理は、結合クエリ毎に実行される。
タイムスタンプ調整部1253は、結合クエリに入力された入力情報に対する全てのサンプリングデータにおけるクエリ時刻精度が同一であるか否かを判定する(ステップS1001)。
結合クエリに入力された入力情報に対する全てのサンプリングデータのクエリ時刻精度が同一でないと判定された場合、タイムスタンプ調整部1253は、ステップS1005に進む。
結合クエリに入力された入力情報に対する全てのサンプリングデータのクエリ時刻精度が同一であると判定された場合、タイムスタンプ調整部1253は、当該結合クエリに入力された入力情報が同時に実行することが可能な処理対象であるか否かを判定する(ステップS1002)。
具体的には、以下の二つの判定処理が実行される。なお、いずれの判定処理から実行されてもよい。
第1の判定処理では、タイムスタンプ調整部1253は、全ての入力情報に対するサンプリングデータの平均入力間隔が同一であるか否かを判定する。
当該判定は、クエリの時刻精度に示された時刻を誤差の範囲とした場合に、全てのサンプリングデータの平均入力間隔が当該誤差の範囲内に含まれるか否かが判定される。
全てのサンプリングデータの平均入力間隔が当該誤差の範囲内に含まれる場合には、全ての入力情報に対するサンプリングデータの平均入力間隔が同一であると判定される。一方、全てのサンプリングデータの平均入力間隔が当該誤差の範囲内に含まれない場合には、全ての入力情報に対するサンプリングデータの平均入力間隔が同一でないと判定される。
例えば、クエリの時刻精度が「1 HOUR」である場合、平均入力間隔が「0:10:00」のサンプリングデータと、平均入力間隔が「0:20:00」のサンプリングデータとは、誤差1時間以内に含まれるため、同一の平均入力間隔のサンプリングデータと判定される。
第2の判定処理では、タイムスタンプ調整部1253は、各サンプリングデータにおける基準時刻において、クエリの時刻精度に示された時刻以下の値が同一であるか否かを判定する。
例えば、クエリの時刻精度が「1 HOUR」である場合、基準時間が「2008/07/01 10:00:00」のサンプリングデータと、基準時間が「2009/07/01 10:00:00」のサンプリングデータとは、「時間」以下の値が同一であるため、クエリの時刻精度に示された時刻以下の値が同一であると判定される。
第1の判定処理及び第2の判定処理の判定が共に満たされる場合、当該結合クエリに入力された入力情報が同時に実行することが可能な処理対象であると判定される。
少なくともいずれか一方の判定処理を満たさない場合、当該結合クエリに入力された入力情報が同時に実行することが可能な処理対象でないと判定される。
当該結合クエリに入力された入力情報が同時に実行することが可能な処理対象でないと判定された場合、タイムスタンプ調整部1253は、ステップS1005に進む。
当該結合クエリに入力された入力情報が同時に実行することが可能な処理対象であると判定された場合、タイムスタンプ調整部1253は、結合クエリに入力された入力情報におけるサンプリングデータの基準時間のうち最新の基準時刻を取得し、クエリの時刻精度と当該取得された新たな基準時刻とに基づいて、新たな基準時間を算出する(ステップS1003)。
具体的には、クエリの時刻精度に示された時刻以下の値は調整対象外とし、クエリの時刻精度に示された時刻より大きい値を、サンプリングデータの基準時刻のうち最も新しい基準時刻に設定することによって新たな基準時刻を算出する。
例えば、クエリの時刻精度が「1 HOUR」である場合、「年」、「月」及び「日」の単位がタイムスタンプの調整対象となり、最も新しい基準時刻の「年」、「月」及び「日」が、新たな基準時間として設定される。
タイムスタンプ調整部1253は、新たに算出された基準時刻に基づいて、入力情報に新たなタイムスタンプを付与して、入力ストリームデータを生成する(ステップS1004)。
具体的には、新たな基準時刻と、各サンプリングデータの基準時刻とを比較し、新たな基準時刻の全ての値が、サンプリングデータにおける基準時刻に示された時刻の値と同一であるか否かを判定する。即ち新たな基準時刻に設定された時刻の値と、当該時刻に対応する単位のサンプリングデータにおける基準時刻の値とが同一であるか否かを判定する。
例えば、新たな基準時刻に「年」、「月」及び「日」が設定されている場合、サンプリングデータにおける基準時刻の「年」、「月」及び「日」の値が、新たな基準時刻に「年」、「月」及び「日」の値と全て同一であるか否かが判定される。
新たな基準時刻において設定された時刻の全ての値が、サンプリングデータの基準時刻に示された時刻の値と同一であると判定された場合、タイムスタンプ調整部1253は、新たなタイムスタンプを付与しない。この場合、元のタイムスタンプのみが付与された入力ストリームデータが生成される。
新たな基準時刻において設定された時刻の全ての値が、サンプリングデータの基準時刻に示された時刻の値と同一でないと判定された場合、新たな基準時刻を、元のタイムスタンプに上書きしたものを新たなタイムスタンプとして入力情報に付与して、入力ストリームデータを生成する。
タイムスタンプ調整部1253は、生成された入力ストリームデータを入力ストリームデータ送信部1254に送信し、処理を終了する(ステップS1005)。
第1の実施形態によれば、任意のクエリに入力された複数のストリームデータが同時に実行可能な処理対象であると判定された場合、新たなタイムスタンプを付与することによって、同時に処理が実行される。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
本発明の第2の実施形態は、外部から定義されたタイムスタンプの調整精度及び調整時刻にしたがって新たな基準時刻を算出する点が本発明の第1の実施形態と異なる。以下、第1の実施形態との差異を中心に説明する。
第2の実施形態のストリーミング処理システムの構成は、第1の実施形態と同一であるため説明を省略する。第2の実施形態では、ストリームデータ処理計算機11000の構成が第1の実施形態と異なる。
図11は、本第2の実施形態のストリームデータ処理計算機11000の構成例を示すブロック図である。なお、図1と同一の構成のものについては、同一の符号を用いる。また、図1と同一の構成については、説明を省略する。
図1との相違点は、ストリームデータ処理計算機11000のメモリ11300がタイムスタンプ定義設定部11400を含む。
タイムスタンプ定義設定部11400は、タイムスタンプに関する定義情報を管理する。タイムスタンプ定義設定部11400は、タイムスタンプ定義登録部11401、タイムスタンプ定義管理テーブル11402及びタイムスタンプ定義管理部11403を含む。
タイムスタンプ定義登録部11401は、ユーザからタイムスタンプに関する定義を受けつける。なお、タイムスタンプに関する定義は、ストリームデータ処理計算機11000を操作するユーザから受け付けてもよいし、クライアント装置(図示省略)を操作するユーザから受け付けてもよい。
タイムスタンプ定義管理テーブル11402は、タイムスタンプ定義登録部11401が受け付けた定義の内容を格納する。
タイムスタンプ定義管理部は11403、タイムスタンプ定義管理テーブル11402を管理し、タイムスタンプ調整部1253からの取得要求に応じて定義情報を送信する。
以下の説明において、本第2の実施形態では、三つのストリームが定義されている場合について説明する。各々のストリームでは、入力情報1、入力情報2及び入力情報3が定義される。また、入力情報1からストリームデータ1、入力情報2からストリームデータ2、入力情報3からストリームデータ3が生成される。
図12は、本第2の実施形態のタイムスタンプ定義管理テーブル11402と基準時刻の一例を示す説明図である。
サンプリングデータ1(12001)、サンプリングデータ2(12002)及びサンプリングデータ2(12003)は、個々の入力情報から算出された基準時刻及び平均入力間隔を含む。
クエリの時刻精度12100は、入力情報1、入力情報2及び入力情報3を結合するクエリの時刻精度であり、「HOUR」という値から「時間」単位で処理を行うことを示す。
タイムスタンプ定義12200は、タイムスタンプ定義管理テーブル11402に格納される定義内容を示す。タイムスタンプ定義12200は、ストリーム名12201、精度調整単位12202、及び調整時刻12203を含む。
ストリーム名12201は、ストリームを識別するための識別子である。精度調整単位12202は、タイムスタンプを調整する時間単位を示す。調整時刻12203は、タイムスタンプを調整するための時刻を示す。
図12に示す例では、タイムスタンプ定義12200の定義データ12300には、ストリーム名12201に「S1、S2、S3」、精度調整単位12202に「HOUR」、調整時刻12203に「12:00:00+0900」が格納される。
つまり、ストリーム名が「S1、S2、S3」のストリームにおいて、精度単位を「時間」としてタイムスタンプを調整し、調整時刻を「12:00:00+0900」と設定することを示す。
新たな基準時刻12400は、サンプリングデータ1(12001)、サンプリングデータ2(12002)、サンプリングデータ(12003)及びクエリの時刻精度12100から決定された年、月及び日「2009/07/01」と、タイムスタンプ定義12200から決定された時刻「12:−−:−−+0900」を含む。
図12に示す例では、サンプリングデータ1(12001)はタイムゾーンがJST、サンプリングデータ2(12002)はタイムゾーンがEST、サンプリングデータ3(12003)はタイムゾーンがGMTで付与されたタイムスタンプデータであることを示す。新たな基準時刻12400は、異なるタイムゾーンのタイムスタンプを同一タイムゾーンのJSTが設定される。
タイムスタンプ調整部1253は、新たな基準時刻12400に基づいて処理を実行する。なお、他の構成によって実行される処理は、第1の実施形態と同一であるため説明を省略する。
図13は、本第2の実施形態における新たなタイムスタンプが付与されたストリームデータ1(13000)、ストリームデータ2(13100)、及びストリームデータ3(13200)の一例を示す説明図である。
ストリームデータ1(13000)の1カラム目のデータ13001及び2カラム目のタイムスタンプ13002は、入力情報1と同一の値である。3カラム目のタイムスタンプ13003は、基準時刻12400とサンプリングデータ1(12001)の基準時刻とが同一のため、付与されていないことを示す。
ストリームデータ2(13100)の1カラム目のデータ13101及び2カラム目のタイムスタンプ13102は、入力情報2と同一の値である。3カラム目のタイムスタンプ13103は、基準時刻12400に基づいて付与された新たなタイムスタンプである。
ストリームデータ3(13200)の1カラム目のデータ13201及び2カラム目のタイムスタンプ13202は、入力情報3と同一の値である。3カラム目のタイムスタンプ13203は、基準時刻12400に基づいて付与された新たなタイムスタンプである。
次に、本第2の実施形態の処理の流れを説明する。
図14は、本発明の第2の実施形態のタイムスタンプ調整部1253が実行する処理を説明するフローチャートである。
なお、以下で説明する処理は、結合クエリ毎に実行される。
タイムスタンプ調整部1253は、タイムスタンプ定義が定義されているか否かを判定する(ステップS14001)。
具体的には、タイムスタンプ調整部1253が、タイムスタンプ定義管理部11403に問い合わせを行い、タイムスタンプ定義が定義されている旨の応答を受けることによって判定することができる。
タイムスタンプ定義が定義されていないと判定された場合、タイムスタンプ調整部1253は、ステップS14005〜ステップS14009の処理を実行する。ステップS14005〜ステップS14009の処理は、第1の実施形態と同一であるため説明を省略する。
タイムスタンプ定義が定義されていると判定された場合、タイムスタンプ調整部1253は、タイムスタンプ定義管理部11403からタイムスタンプ定義を取得する(ステップS14001)。
次に、タイムスタンプ調整部1253は、全てのサンプリングデータにおけるクエリ時刻精度が同一であるか否かを判定する(ステップS14002)。当該判定は、S1001と同一の判定方法が用いられる。
全てのサンプリングデータにおけるクエリ時刻精度が同一でないと判定された場合、タイムスタンプ調整部1253は、ステップS14009に進む。
全てのサンプリングデータにおけるクエリ時刻精度が同一でないと判定された場合、タイムスタンプ調整部1253は、入力情報が同時に実行することが可能な処理対象であるか否かを判定する(ステップS14003)。
具体的には、以下の二つの判定処理が実行される。なお、いずれの判定処理から実行されてもよい。
第1の判定処理では、タイムスタンプ調整部1253は、全ての入力情報に対するサンプリングデータにおける平均入力間隔が同一であるか否かを判定する。当該判定は、クエリの時刻精度に示された時刻を誤差の範囲とした場合に、全てのサンプリングデータにおける平均入力間隔が同一であるか否かが判定される。
例えば、クエリの時刻精度が「1 HOUR」である場合、平均入力間隔が「0:10:00」のサンプリングデータと、平均入力間隔が「0:20:00」のサンプリングデータとは、誤差1時間以内に含まれるため、同一の平均入力間隔のサンプリングデータと判定される。
第2の判定処理では、タイムスタンプ調整部1253は、各サンプリングデータにおける基準時刻において、タイムスタンプ定義の精度調整単に示された時刻以下の値が同一であるか否かを判定する。
例えば、タイムスタンプ定義の精度調整単が「HOUR」である場合、基準時間が「2008/07/01 12:00:00+0900」のサンプリングデータと、基準時間が「2009/07/01 12:00:00−0500」のサンプリングデータとは、「時間」以下の単位の値が同一であるため、タイムスタンプ定義の精度調整単に示された時刻以下の値が同一であると判定される。
第1の判定処理及び第2の判定処理の判定結果が共に、満たされると判定された場合、全ての入力情報が同時に実行することが可能な処理対象であると判定される。
少なくともいずれか一方の判定処理を満たさない場合、当該入力情報は同時に実行することが可能な処理対象でないと判定される。
入力情報が同時に実行することが可能な処理対象でないと判定された場合、タイムスタンプ調整部1253は、ステップS14009に進む。
入力情報が同時に実行することが可能な処理対象であると判定された場合、タイムスタンプ調整部1253は、タイムスタンプ定義に基づいて新たな基準時刻を算出する(ステップS14004)。
具体的には、タイムスタンプ調整部1253は、クエリの時刻精度と、サンプリングデータの基準時刻のうち最も新しい基準時刻とに基づいて、クエリの時間精度に示された時刻より大きな単位の時刻情報を算出する。
例えば、クエリの時刻精度が「1 HOUR」である場合、「年」、「月」、及び「日」の単位の情報が算出される。
さらに、タイムスタンプ調整部1253は、タイムスタンプ定義の調整時刻に基づいて、タイムスタンプ定義の精度調整単位に示された単位の調整を実行する。
例えば、図12に示す例では、タイムスタンプ定義の精度調整単位が「HOUR」であり、タイムスタンプ定義の調整時刻が「12:00:00+0900」であるので、「時間」の単位が「12:−−:−−」に調整され、タイムゾーンをJSTに調整される。
タイムスタンプ調整部1253は、新たに算出された基準時刻に基づいて、入力情報に新たなタイムスタンプを付与して、入力ストリームデータを生成する(ステップS14008)。
具体的には、新たな基準時刻と、各サンプリングデータにおける基準時刻とを比較し、新たな基準時刻において設定された時刻の全ての値が、サンプリングデータにおける基準時刻に示された時刻の値と同一であるか否かを判定する。
新たな基準時刻において設定された時刻の全ての値が、サンプリングデータにおける基準時刻に示された時刻の値と同一であると判定された場合、タイムスタンプ調整部1253は、新たなタイムスタンプを付与しない。
新たな基準時刻において設定された時刻の全ての値が、サンプリングデータにおける基準時刻に示された時刻の値と同一でないと判定された場合、新たな基準時刻に設定さえた時刻を、元のタイムスタンプに上書きしたものを新たなタイムスタンプとして入力情報に付与する。なお、新たなタイムスタンプの設定方法は第1の実施形態と同一であるため説明を省略する。
タイムスタンプ調整部1253は、生成された入力ストリームデータを入力ストリームデータ送信部1254に送信し、処理を終了する(ステップS14009)。
第2の実施形態によれば、任意のクエリに入力された複数のストリームデータが同時に実行可能な処理対象であると判定された場合、ユーザの設定に基づいて新たなタイムスタンプを付与することによって、同時に処理が実行される。
1100 データ送信計算機
1110 CPU
1120 DISK
1130 メモリ
1131 アプリケーション実行部
1132 ストリームデータ送信部
1200 ストリームデータ処理計算機
1210 CPU
1220 DISK
1230 メモリ
1240 オペレーティングシステム
1250 入力データ解析部
1251 ストリームデータ受信部
1252 タイムスタンプ分析部
1253 タイムスタンプ調整部
1254 入力ストリームデータ送信部
1255 クエリ分析部
1260 ストリームデータ処理部
1261 入力ストリームデータ受信部
1262 クエリ処理部
1263 ストリームデータ送信部
1300 結果受信計算機
1310 CPU
1320 DISK
1330 メモリ
1331 ストリームデータ受信部
1332 アプリケーション実行部
1400 ネットワーク
1410 ストリームデータソース
1500 ネットワーク
1600 ネットワーク
11000 ストリームデータ処理計算機
11300 メモリ
11400 タイムスタンプ定義設定部
11401 タイムスタンプ定義登録部
11402 タイムスタンプ定義管理テーブル
11403 タイムスタンプ定義管理部

Claims (15)

  1. 時刻情報が含まれたストリームデータを受信し、予め登録されたクエリにしたがって処理を実行するストリームデータ処理装置のストリームデータ処理方法であって、
    前記ストリームデータ処理装置は、
    複数のストリームデータから構成される複数の入力情報を受信するストリームデータ受信部と、
    前記複数の入力情報が有する時刻情報を、該複数の入力情報毎に分析する時刻情報分析部と、
    前記分析の結果に基づいて、新たな入力情報をそれぞれ生成する時刻情報調整部と、
    前記新たな入力情報のそれぞれについて、前記クエリに従って処理を実行するストリームデータ処理部と、を有し、
    前記ストリームデータ処理方法は、
    前記時刻情報分析部が、前記入力情報毎に、各入力情報を構成するストリームデータを複数抽出し、該ストリームデータの入力間隔と、前記ストリームデータの処理時刻である第1の基準時刻とを算出する第1のステップと、
    前記時刻情報調整部が、前記入力情報毎に算出した前記入力間隔と、前記第1の基準時刻とに基づいて、前記複数の入力情報の新たな処理の時刻とする第2基準時刻を算出する第2のステップと、
    前記時刻情報調整部が、前記第2の基準時刻に基づいて、前記複数の入力情報毎に新たな時刻情報が付与されたストリームデータを生成する第3のステップと、
    を含むことを特徴とするストリームデータ処理方法。
  2. 請求項1に記載のストリームデータ処理方法であって、
    前記ストリームデータ処理方法は、
    前記ストリームデータ処理部が、前記新たな時刻情報に基づいて、前記複数の入力情報を処理する第4のステップを更に含むことを特徴とする。
  3. 請求項1又は2に記載のストリームデータ処理方法であって、
    前記第2のステップは、前記時刻情報調整部が、前記複数の入力情報のストリームデータを用いて処理を実行するクエリで定義されると共に前記ストリームデータのうち処理を行う対象であるストリームデータの時間範囲が示された時刻精度と、前記抽出されたストリームデータに付与された前記時刻情報とに基づいて、前記第2の基準時間を算出するステップを含むことを特徴とする。
  4. 請求項1から3の何れか一項に記載のストリームデータ処理方法であって、
    前記ストリームデータ処理装置は、前記計算機システムの時刻を管理し、
    前記第3のステップは、前記時刻情報調整部が、前記第1の基準時刻のうち、前記計算機システムの時刻に最も近い前記第1の基準時刻を用いて、前記第2の時刻情報を決定するステップを含むことを特徴とする。
  5. 請求項1から4の何れか一項に記載のストリームデータ処理方法であって、
    前記ストリームデータ処理装置は、前記第2の基準時間を決定するための情報である、調整精度情報及び調整時刻情報を受信する時刻情報定義設定部を有し、
    前記第2のステップは、前記時刻情報調整部が、前記複数の入力情報毎のストリームデータの前記入力間隔及び前記第1の基準時刻の比較結果と、前記調整精度情報と、前記調整時刻情報と、に基づいて、前記第2の基準時刻を算出するステップを含むことを特徴とする。
  6. プロセッサと、前記プロセッサと接続されたメモリとを備え、時刻情報が含まれたストリームデータを受信し、予め登録されたクエリにしたがって処理を実行するストリームデータ処理装置を有する計算機システムのストリームデータ処理プログラムであって、
    複数のストリームデータから構成される複数の入力情報を受信し、前記入力情報毎に、各入力情報を構成するストリームデータを複数抽出し、該ストリームデータの入力間隔と、前記ストリームデータの処理時刻である第1の基準時刻とを算出する第1の手順と、
    前記入力情報毎に算出した前記入力間隔と、前記第1の基準時刻とに基づいて、前記複数の入力情報の新たな処理の時刻とする第2基準時刻を算出する第2の手順と、
    前記第2の基準時刻に基づいて、前記複数の入力情報毎に新たな時刻情報が付与されたストリームデータを生成する第3の手順と、
    を前記ストリームデータ処理装置に実行させることを特徴とするストリームデータ処理プログラム。
  7. 請求項6に記載のストリームデータ処理プログラムであって、
    前記ストリームデータ処理プログラムは、
    前記新たな時刻情報に基づいて、前記複数の入力情報を処理する第4の手順を更に前記ストリームデータ処理装置に実行させることを特徴とする。
  8. 請求項6又は7に記載のストリームデータ処理プログラムであって、
    前記第2の手順は、前記複数の入力情報のストリームデータを用いて処理を実行するクエリで定義されると共に前記ストリームデータのうち処理を行う対象であるストリームデータの時間範囲が示された時刻精度と、前記抽出されたストリームデータに付与された前記時刻情報とに基づいて、前記第2の基準時間を算出する手順を含むことを特徴とする。
  9. 請求項6から8の何れか一項に記載のストリームデータ処理プログラムであって、
    前記ストリームデータ処理装置は、前記計算機システムの時刻を管理し、
    前記第3の手順は、前記第1の基準時刻のうち、前記計算機システムの時刻に最も近い前記第1の基準時刻を用いて、前記第2の時刻情報を決定する手順を含むことを特徴とする。
  10. 請求項6から9の何れか一項に記載のストリームデータ処理プログラムであって、
    前記ストリームデータ処理装置は、前記第2の基準時間を決定するための情報である、調整精度情報及び調整時刻情報を受信し、
    前記第2の手順は、前記複数の入力情報毎のストリームデータの前記入力間隔及び前記第1の基準時刻の比較結果と、前記調整精度情報と、前記調整時刻情報と、に基づいて、前記第2の基準時刻を算出する手順を含むことを特徴とする。
  11. プロセッサと、前記プロセッサと接続されるメモリとを備え、時刻情報が含まれたストリームデータを受信し、予め登録されたクエリにしたがって処理を実行するストリームデータ処理装置であって、
    前記メモリは、
    複数のストリームデータから構成される複数の入力情報を受信するストリームデータ受信部と、
    前記複数の入力情報が有する時刻情報を、該複数の入力情報毎に分析する時刻情報分析部と、
    前記分析の結果に基づいて、新たな入力情報をそれぞれ生成する時刻情報調整部と、
    前記新たな入力情報のそれぞれについて、前記クエリに従って処理を実行するストリームデータ処理部と、を有し、
    前記ストリームデータ処理装置は、
    前記入力情報毎に、各入力情報を構成するストリームデータを複数抽出し、該ストリームデータの入力間隔と、前記ストリームデータの処理時刻である第1の基準時刻とを算出し、
    前記入力情報毎に算出した前記入力間隔と、前記第1の基準時刻とに基づいて、前記複数の入力情報の新たな処理の時刻とする第2の基準時刻を算出し、
    前記第2の基準時刻に基づいて、前記複数の入力情報毎に新たな時刻情報が付与されたストリームデータを生成することを特徴とするストリームデータ処理装置。
  12. 請求項11に記載のストリームデータ処理装置であって、
    前記ストリームデータ処理装置は、更に、
    前記新たな時刻情報に基づいて、前記複数の入力情報を処理することを特徴とする。
  13. 請求項11又は12に記載のストリームデータ処理装置であって、
    前記ストリームデータ処理装置は、
    前記第2の基準時刻を算出する場合に、前記複数の入力情報のストリームデータを用いて処理を実行するクエリで定義されると共に前記ストリームデータのうち処理を行う対象であるストリームデータの時刻範囲が示された時刻精度と、前記抽出されたストリームデータに付与された前記時刻情報とに基づいて、前記第2の基準時間を算出することを特徴とする。
  14. 請求項11から13の何れか一項に記載のストリームデータ処理装置であって、
    前記ストリームデータ処理装置は、前記計算機システムの時刻を管理し、
    前記第2のストリームデータを生成する場合に、前記第1の基準時刻のうち、前記計算機システムの時刻に最も近い前記第1の基準時刻を用いて、前記第2の時刻情報を決定することを特徴とする。
  15. 請求項11から14の何れか一項に記載のストリームデータ処理装置であって、
    前記ストリームデータ処理装置は、前記第2の基準時間を決定するための情報である、調整精度情報及び調整時刻情報を受信する時刻情報定義設定部を有し、
    前記第2の基準時刻を算出する場合に、前記複数の入力情報毎のストリームデータの前記入力間隔及び前記第1の基準時刻の比較結果と、前記調整精度情報と、前記調整時刻情報と、に基づいて、前記第2の基準時刻を算出することを特徴とする。
JP2009268689A 2009-11-26 2009-11-26 ストリームデータ処理方法、ストリームデータ処理プログラム及びストリームデータ処理装置 Expired - Fee Related JP4880025B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009268689A JP4880025B2 (ja) 2009-11-26 2009-11-26 ストリームデータ処理方法、ストリームデータ処理プログラム及びストリームデータ処理装置
US12/715,012 US20110125778A1 (en) 2009-11-26 2010-03-01 Stream data processing method, recording medium, and stream data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009268689A JP4880025B2 (ja) 2009-11-26 2009-11-26 ストリームデータ処理方法、ストリームデータ処理プログラム及びストリームデータ処理装置

Publications (2)

Publication Number Publication Date
JP2011113273A JP2011113273A (ja) 2011-06-09
JP4880025B2 true JP4880025B2 (ja) 2012-02-22

Family

ID=44062864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009268689A Expired - Fee Related JP4880025B2 (ja) 2009-11-26 2009-11-26 ストリームデータ処理方法、ストリームデータ処理プログラム及びストリームデータ処理装置

Country Status (2)

Country Link
US (1) US20110125778A1 (ja)
JP (1) JP4880025B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8620945B2 (en) * 2010-09-23 2013-12-31 Hewlett-Packard Development Company, L.P. Query rewind mechanism for processing a continuous stream of data
WO2012059976A1 (ja) * 2010-11-02 2012-05-10 株式会社日立製作所 プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
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
US8880493B2 (en) 2011-09-28 2014-11-04 Hewlett-Packard Development Company, L.P. Multi-streams analytics
US9087052B2 (en) * 2011-11-02 2015-07-21 Hewlett-Packard Development Company, L.P. Batch DBMS statement processing such that intermediate feedback is provided prior to completion of processing
JP5843636B2 (ja) * 2012-02-01 2016-01-13 三菱電機株式会社 時系列データ照会装置、時系列データ照会方法及び時系列データ照会プログラム
US8762408B2 (en) * 2012-03-07 2014-06-24 Sap Ag Optimizing software applications
US9916374B2 (en) * 2013-05-31 2018-03-13 Sap Se On-the-fly calculation scenario provision during query runtime
US10331672B2 (en) * 2013-06-21 2019-06-25 Hitachi, Ltd. Stream data processing method with time adjustment
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10671721B1 (en) * 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
JP6528807B2 (ja) * 2017-06-28 2019-06-12 オムロン株式会社 制御システム、制御装置、結合方法およびプログラム
US11947545B2 (en) * 2022-03-02 2024-04-02 Adobe Inc. Systems and methods for configuring data stream filtering

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4687253B2 (ja) * 2005-06-03 2011-05-25 株式会社日立製作所 ストリームデータ処理システムのクエリ処理方法
US20090125550A1 (en) * 2007-11-08 2009-05-14 Microsoft Corporation Temporal event stream model
JP2009188530A (ja) * 2008-02-04 2009-08-20 Panasonic Corp ストリームデータの多重化装置および多重化方法
US20090319501A1 (en) * 2008-06-24 2009-12-24 Microsoft Corporation Translation of streaming queries into sql queries

Also Published As

Publication number Publication date
US20110125778A1 (en) 2011-05-26
JP2011113273A (ja) 2011-06-09

Similar Documents

Publication Publication Date Title
JP4880025B2 (ja) ストリームデータ処理方法、ストリームデータ処理プログラム及びストリームデータ処理装置
US10217256B2 (en) Visually exploring and analyzing event streams
US9886486B2 (en) Enriching events with dynamically typed big data for event processing
US10120907B2 (en) Scaling event processing using distributed flows and map-reduce operations
CN109408347B (zh) 一种指标实时分析系统及指标实时计算方法
EP3455732B1 (en) Memory usage determination techniques
US10956422B2 (en) Integrating event processing with map-reduce
CN109800223A (zh) 日志处理方法、装置、电子设备及存储介质
JP2011039818A (ja) ストリームデータ処理システム、ストリームデータ処理方法及びストリームデータ処理プログラム
EP2946527B1 (en) Variable duration windows on continuous data streams
US9058631B2 (en) Method and system for e-commerce transaction data accounting
US11010384B2 (en) Imputing data for temporal data store joins
US20180004781A1 (en) Data lineage analysis
CN106951557B (zh) 日志关联方法、装置和应用其的计算机系统
US7421452B2 (en) Method and apparatus for predicting future behavior of data streams
US20130159280A1 (en) Analyzing and Representing Interpersonal Relations
CN108733688B (zh) 数据分析的方法、装置
Zapilko et al. Performing statistical methods on linked data
US7562039B2 (en) Method and computer system for computing and displaying a phase space
US11487756B1 (en) Ingesting and transforming bulk data from various data sources
WO2012132427A1 (ja) レコメンド装置、レコメンドシステム、レコメンド方法およびプログラム
US20200364628A1 (en) Parallel versioning and multi-variate testing
US20240176787A1 (en) Tables time zone adjuster
CN117349388B (zh) 数据时效性确定方法、电子设备
Yumusak et al. SpEnD portal: Linked data discovery using SPARQL endpoints

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110304

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees