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

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

Info

Publication number
WO2013186831A1
WO2013186831A1 PCT/JP2012/064892 JP2012064892W WO2013186831A1 WO 2013186831 A1 WO2013186831 A1 WO 2013186831A1 JP 2012064892 W JP2012064892 W JP 2012064892W WO 2013186831 A1 WO2013186831 A1 WO 2013186831A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
tuple
stream
query
interpolation
Prior art date
Application number
PCT/JP2012/064892
Other languages
English (en)
French (fr)
Inventor
俊太郎 人見
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2012/064892 priority Critical patent/WO2013186831A1/ja
Publication of WO2013186831A1 publication Critical patent/WO2013186831A1/ja

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

Definitions

  • the present invention relates to processing of stream data that receives stream data and immediately executes arithmetic processing, and particularly relates to processing when a part of stream data is lost.
  • arithmetic processing is executed in real time in units of tuples that consist of multiple sets of data output from a number of data sources such as sensors.
  • a query is first registered in the system, and the query is continuously executed when data arrives.
  • CQL Continuous Query Language
  • Patent Documents 1, 2, and 3 As the data constituting the tuple, data arriving before a certain time (or time interval) is treated as a tuple.
  • a tuple is a set of a plurality of data generated at a specific same time t.
  • an object of the present invention is to provide a stream data processing method and apparatus capable of continuing arithmetic processing even when tuple data is lost.
  • the present invention is a stream data processing method for processing received stream data with a query by a computer including a processor and a memory, wherein the computer receives a stream definition defining data constituting a tuple of stream data.
  • the fourth step of constructing the tuple, and the computer has a deficiency in the data comprising the tuple
  • a predetermined mark for example, NULL
  • data or an interpolation method for interpolating the predetermined mark is set in advance, and the stream data processing is input.
  • the calculation of the tuple can be continued by replacing the predetermined mark with predetermined data before performing the query calculation process.
  • FIG. 1 is a block diagram illustrating an example of a stream data processing system according to a first embodiment of this invention.
  • FIG. It is a block diagram which shows a 1st Example of this invention and shows an example of the stream data processing part of a server computer. It is a figure which shows the 1st Example of this invention and shows an example of a stream definition. It is a figure which shows Example 1 of this invention and shows an example of a stream management table. It is a flowchart which shows a 1st Example of this invention and shows an example of the process performed in a stream data processing part. It is a flowchart which shows a 1st Example of this invention and shows an example of the process performed in a data interpolation process part.
  • FIG. 1 is a block diagram illustrating an example of a stream data processing system according to a first embodiment of this invention.
  • the client computer 4 that executes the application 44 is connected via the network 2 to the server computer 1 that causes the stream data processing unit 20 to function. Further, stream data sources 5-1 to 5-N are connected to the server computer 1 via the network 3. The stream data sources 5-1 to 5-N are configured by sensors and computers that transmit stream data to the server computer 1.
  • the client computer 4 includes a processor 41 that performs operations, a main memory 42 that holds data and programs, and an interface (I / F in the figure) 45 that is connected to the network 2.
  • An application 44 is loaded into the main memory 42 and executed by the processor 41.
  • the application 44 of the client computer 4 executes the registration of the query 105, the registration of the stream definition 106, and the registration of the data interpolation definition 107 to the stream data processing unit 20 of the server computer 1 using commands to be described later.
  • the server computer 1 registers the query 105 definition, the stream definition 106, and the data interpolation definition 107 from the command received from the client computer 4, and is registered among the data received from the stream data sources 5-1 to 5-N. Execute the query for the data corresponding to the stream data.
  • the server computer 1 includes a processor 11 that performs operations, a main memory 12 that holds data and programs, an interface (I / F in the figure) 13 connected to the network 2, and an interface connected to the network 3. (I / F in the figure) 14, an input device 15 configured with a keyboard, a mouse, and the like, an output device 16 configured with a display, and an auxiliary storage device 17 configured with a non-volatile storage medium. .
  • the stream data processing unit 20 is loaded into the main memory 12 and executed by the processor 11.
  • the processor 11 operates as a functional unit that realizes a predetermined function by operating according to a program of each functional unit.
  • the processor 11 functions as the stream data processing unit 20 by operating according to the stream data processing program. The same applies to other programs.
  • the processor 11 also operates as a functional unit that implements each of a plurality of processes executed by each program.
  • a computer and a computer system are an apparatus and a system including these functional units.
  • Information such as programs and tables for realizing each function of the stream data processing unit 20 is stored in an auxiliary storage device 17, a nonvolatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), or an IC card or an SD card. And can be stored in a computer-readable non-transitory data storage medium such as a DVD.
  • FIG. 2 is a functional block diagram illustrating an example of the stream data processing unit 20.
  • the stream data processing unit 20 stores a command manager 200 that analyzes a received command and registers a query or registers a stream, a query processing engine 220 that processes stream data using the registered query, and a query management table 300.
  • the query repository 210 the system dictionary 230 that holds the stream management table 400, the scheduling manager 280 that schedules the system during query processing, and the query processing engine 220 or other manager that stores the main memory 12 necessary for system operation.
  • the stream management table 400 in the system dictionary 230 the stream is copied as necessary, and the query processing is performed. It includes a stream data flow manager 240 to be delivered to the engine 220, a.
  • the application 44 of the client computer 4 transmits a query to the command manager 200 of the stream data processing unit 20 using a predetermined query registration command.
  • the command manager 200 analyzes the received command and transmits the query part in the query registration command to the query analysis unit 201.
  • the query analyzed by the query analysis unit 201 is subsequently sent to the query optimization unit 202.
  • the query optimization unit 202 performs an optimization process for selecting an efficient execution method, and the query generation unit 203 generates a query execution format based on the result of the optimization process.
  • the query converted into the execution format by the query generation unit 203 is stored in the query repository 112.
  • the application 44 running on the client computer 4 issues a stream definition S1 instruction to the stream data processing unit 20 using the stream registration command shown in FIG.
  • the command manager 200 analyzes the command, checks the schema of the specified stream definition with reference to the system dictionary 230, and registers the stream definition S1 in the stream management table 400 shown in FIG.
  • the stream management table 400 is held in the system dictionary 230.
  • FIG. 3 is a diagram showing an example of the stream definition.
  • a tuple is constructed from the temperature data T1, T2, T3, T4 of the four temperature sensors, and the default values of the temperature data T1 to T4 are set to 30, 30, 25, 40 (° C). An example is shown. Note that one tuple is formed by combining data of temperatures T1, T2, T3, and T4 measured at the same time t.
  • FIG. 4 is a diagram illustrating an example of the stream management table 400.
  • the stream management table 400 includes one entry including a name 401 for storing the name (or identifier) of the stream definition, a stream definition 402 for storing the stream data definition, and a default value 403 for storing the default value of the stream data.
  • the default value 403 is a value specified in the above stream definition S1, and shows an example in which the default values of the temperature data T1 to T4 are set to 30, 30, 25, and 40 (° C.).
  • the query processing engine 220 includes a window management unit 250 that controls a sliding window for cutting out part of the stream data, a query calculation unit 260 that performs a predetermined calculation on the stream data, and a tuple data that is missing.
  • the window management unit 250 and the query calculation unit 260 are the same as those in Patent Documents 1 and 2 of the conventional example, and will not be described in detail here.
  • the data interpolation processing unit 270 uses a default value set in the stream definition S1.
  • an error evaluation formula is calculated from the measured value and the average value of the temperature data, as in the conventional example.
  • FIG. 5 is a flowchart illustrating an example of processing performed by the stream data processing unit 20. This process is repeatedly executed when stream data is received.
  • the stream data processing unit 20 has a stream definition 106 that defines a tuple of stream data from the client computer 4, a query 105 that processes the tuple, and stream data that constitutes the tuple.
  • a data interpolation definition 107 that defines data to be interpolated at a certain time is received, and each definition is stored in the stream management table 400 and the query management table 300.
  • step S 01 the stream data flow manager 240 of the stream data processing unit 20 receives data from the stream data sources 5-1 to 5 -N, and configures a tuple according to the stream definition 106.
  • step S02 the stream data flow manager 240 configures a tuple from the received data set, and registers the tuple in the window management unit 250 of the query processing engine 220.
  • the stream data flow manager 240 sets NULL as a mark indicating that there is no data in the data.
  • step S03 the query calculation unit 260 refers to the tuple in the window management unit 250.
  • step S04 it is determined whether or not NULL is included in the tuple referred to by the query calculation unit 260. If NULL is included, the query calculation unit 260 determines that the data in the tuple is missing and proceeds to step S05. If there is no NULL, the query calculation unit 260 determines that there is no data loss and proceeds to step S06.
  • step S05 the data interpolation processing unit 270 replaces NULL in the tuple with a preset default value.
  • the data interpolation processing unit 270 specifies data that is missing from the NULL position in the tuple.
  • the data interpolation processing unit 270 refers to the stream management table 400 and acquires a default value 403 of missing data.
  • the data interpolation processing unit 270 replaces NULL of missing data with the acquired default value 403.
  • step S06 the query calculation unit 260 acquires a query corresponding to the tuple from the query management table 300, and processes the data of the tuple with the query.
  • FIG. 6 is a flowchart illustrating an example of processing performed by the data interpolation processing unit 270. This process is a process performed in step S05 of FIG.
  • step S11 the data interpolation processing unit 270 acquires the head element (data) of the tuple including NULL.
  • the data interpolation processing unit 270 determines whether or not the currently acquired tuple element is NULL. If the currently acquired element is NULL, the data interpolation processing unit 270 proceeds to step S13, and otherwise proceeds to step S15.
  • step S13 the default value 403 corresponding to the element of the tuple currently acquired by the data interpolation processing unit 270 is acquired from the stream management table 400.
  • step S14 the data interpolation processing unit 270 replaces NULL of the current element with the acquired default value 403.
  • step S15 the data interpolation processing unit 270 determines whether the current tuple has the next element. If there is a next element, the data interpolation processing unit 270 acquires the next element in the tuple and repeats the process of step S12. On the other hand, if there is no next element, the data interpolation processing unit 270 ends the process and returns to the process of FIG.
  • the query calculation unit 260 can execute the query by substituting the default value 403 set in advance in the stream management table 400.
  • the query calculation unit 260 can execute the query by substituting the default value 403 set in advance in the stream management table 400.
  • FIG. 7 is a diagram illustrating an example of replacement of missing data by the data interpolation processing unit 270.
  • the temperature data T3 is missing and a NULL value is set.
  • the data interpolation processing unit 270 acquires “25” (° C.) from the stream management table 400 as the default value 403 corresponding to the temperature data T3, and replaces the NULL value with “25”.
  • the tuples (T1 to T4) at time t become values that can be processed by the query calculation unit 260, and the stream data processing can be continued.
  • FIG. 8 is a diagram illustrating an example of processing performed by the data interpolation processing unit 270 according to the second embodiment of this invention.
  • the second embodiment shows an example in which the previous value (previous value) is used instead of the default value 403 of the first embodiment.
  • the default value 403 of the stream management table 400 is not used, and other configurations are the same as those in the first embodiment.
  • the data interpolation processing unit 270 holds the value of the previous tuple element, and when the tuple element has NULL, replaces the NULL with the previous value. As a result, it is possible to replace the data that is known to hardly fluctuate rapidly with time, such as temperature data, with an accurate estimated value when the data is lost, and continue the stream data processing. It becomes possible.
  • the temperature data T3 at time t5 is NULL and is missing.
  • the data interpolation processing unit 270 holds the value (28) of the tuple element (T3) at the previous time t4, and replaces NULL with the previous value “28”.
  • the tuple element at time t5 becomes a value that can be calculated by the query calculation unit 260, and the stream data processing can be continued.
  • NULL is replaced with a value calculated by an interpolation process defined by a user of the stream data processing unit 20 (hereinafter simply referred to as a user).
  • the other configuration is the same as that of the first embodiment. This allows the user to specify a data interpolation process definition that corresponds to the characteristics of the data source, so if data is missing, replace NULL with a good estimate that corresponds to the characteristics of the data source, Stream data processing can be continued.
  • FIG. 9 is a diagram illustrating an example of the stream management table 400.
  • the function call destination defined by the user and the argument information are stored in the data interpolation process definition 403A.
  • the user can define a function from the client computer 4 or the input device 15.
  • FIG. 10 is a flowchart illustrating an example of processing performed by the data interpolation processing unit 270. This process is the process performed in step S05 of FIG.
  • the data interpolation processing unit 270 refers to the data interpolation processing definition 403A corresponding to the stream definition name 401 from the stream management table 400.
  • the data interpolation processing unit 270 calls a user-defined function registered in the data interpolation process definition 403A using the data of the tuple to be processed as an argument.
  • the data interpolation processing unit 270 calculates a return value by assigning an argument to a user-defined function.
  • the NULL element is replaced with the return value acquired by the data interpolation processing unit 270.
  • FIG. 11 is a diagram illustrating an example of processing performed by the data interpolation processing unit 270.
  • FIG. 11 shows an example in which an interpolation value that replaces NULL is calculated from past values of elements with missing data.
  • a1, a2, a3, and a4 are predetermined coefficients.
  • the stream data processing can be continued in the query calculation unit 260.
  • Lagrange's interpolation formula is "Jean-Paul Berrut, Lloyd N. Trefethen (2004).” Barycentric Lagrange Interpolation ". SIAM Review 46 (3): 501-517.” (Http://dx.doi.org/ 10.1137 / S0036144502417715) can be used.
  • FIG. 12 is a diagram illustrating another example of processing performed by the data interpolation processing unit 270.
  • FIG. 12 shows an example in which an interpolation value T3 (t5) for replacing NULL is calculated from the values of other temperature data T1, T2, and T4 at time t5 when data is lost.
  • b1, b2, b3, b4 are predetermined coefficients.
  • the missing temperature data T3 at time t5 is calculated as an interpolation value T3 (t5) estimated from the values of other temperature data T1, T2, and T4 at time t5, and the data interpolation processing unit 270 calculates NULL.
  • the stream data processing can be continued in the query calculation unit 260.
  • FIG. 13 to 17 show a fourth embodiment of the present invention.
  • the presence / absence of interpolation shown in the first to third embodiments is defined by a query, and the other configurations are the same as those in the first embodiment.
  • FIG. 13 shows a query Q1 registration command that the stream data processing unit 20 accepts from the client computer 4.
  • the registration command of the query Q1 an instruction to omit data interpolation when stream data is lost is described by “with no interpolation” at the bottom line in the drawing.
  • the command manager 200 of the stream data processing unit 20 receives the registration command of the query Q1, it analyzes as in the first embodiment, generates a query, and registers it in the query management table 300.
  • the registration command of the query Q1 can be input from the client computer 4 or the input device 15.
  • FIG. 14 is a diagram illustrating an example of the query management table 300.
  • the query management table 300 stores queries generated by the command generation unit 203 by the command manager 200.
  • the query management table 300 includes a name 301 for storing a query name or identifier, a query definition 302 for storing a query generated by the query generation unit 203, and data for storing presence / absence of data interpolation when stream data is missing.
  • One entry is formed from the interpolation designation 303.
  • the query definition 302 generated by the query generation unit 203 from the registration command of the query Q1 shown in FIG. 13 and the data interpolation designation 303 are stored.
  • the query definition 302 stores a query for evaluating the difference between the average value of the stream data (tuple) S1 and the stream data at time T1.
  • “no interpolation” is set corresponding to “with no interpolation” in the lowermost row in the drawing shown in the registration command of the query Q1 in FIG.
  • FIG. 15 is a flowchart illustrating an example of processing performed by the stream data processing unit 20 in the fourth embodiment. This process is obtained by adding the process of step S35 to the process shown in FIG. 5 of the first embodiment.
  • Steps S31 to S34 are the same as steps S01 to S04 in FIG. 5, and the stream data flow manager 240 sends tuples received from the stream data sources 5-1 to 5-N to the window management unit 250 of the query processing engine 220.
  • the query calculation unit 260 refers to the tuple in the window management unit 250 and determines whether or not NULL is included in the tuple. If NULL is included, the query calculation unit 260 determines that the data in the tuple is missing and proceeds to step S35. If there is no NULL, the query calculation unit 260 determines that there is no data loss and proceeds to step S37.
  • step S35 the query calculation unit 260 refers to the query management table 300 and determines whether there is an instruction to omit data interpolation. If there is an instruction to omit data interpolation, the process proceeds to step S37, and if there is no instruction to omit data interpolation, the process proceeds to step S36.
  • step S36 the data interpolation processing unit 270 replaces NULL in the tuple with a preset value.
  • the data interpolation processing unit 270 specifies data that is missing from the NULL position in the tuple.
  • the data interpolation processing unit 270 refers to the stream management table 400, performs the interpolation processing according to the default value 403 of the missing data and the data interpolation processing definition 403A as in the first to third embodiments, and calculates or The set value is set instead of NULL of the missing data.
  • the query calculation unit 260 refers to the tuple data and executes a predetermined query.
  • 16 and 17 show an example in which data interpolation is performed using a query registration command.
  • FIG. 16 is a query Q1 registration command that the stream data processing unit 20 accepts from the client computer 4.
  • the registration command of query Q1 in FIG. 16 in response to the query registration command in FIG. 13, an instruction for data interpolation of “with interpolation” in the bottom row in the figure and an interpolation of “S1 using FUNC1 (S1 [ROWS 10])”
  • S1 using FUNC1 S1 [ROWS 10]
  • the command manager 200 of the stream data processing unit 20 receives the registration command of the query Q1, it analyzes as in the first embodiment, generates a query, and registers it in the query management table 300.
  • FIG. 17 is a diagram illustrating an example of the query management table 300.
  • the query management table 300 is the same as in FIG. 14, and stores the query generated by the command manager 200 by the query generation unit 203.
  • the interpolation processing after “with interpolation” is stored in the data interpolation designation 303 for the query shown in FIG. “S1 using FUNC1 (S1 [ROWS 10])” of data interpolation specification 303 is an argument for all data stored in window S1 [ROWS 10] when NULL is included in the latest tuple of stream S1.
  • S1 using FUNC1 S1 [ROWS 10]
  • the user-defined function FUNC1 calculates the NULL value that is the missing part of the data.
  • a new tuple is generated by replacing the interpolation value calculated from the argument.
  • the user of the stream data processing unit 20 can specify the presence or absence of data interpolation when stream data is lost with a query registration command, and can realize stream data processing according to the user's intention. .

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)

Abstract

 プロセッサとメモリを備えた計算機で、受信したストリームデータをクエリで処理するストリームデータ処理方法であって、前記計算機が、ストリームデータのタプルを構成するデータを定義したストリーム定義とタプルを処理するクエリとタプルを構成するデータが欠損したときに当該データを補間するデータ補間定義とを受信し、ストリームデータを受信してストリーム定義に基づいてタプルを構成し、タプルを構成するデータに欠損があるか否かを判定し、欠損がある場合には当該データにデータがないことを示す所定の印を設定し、タプルを構成するデータに所定の印が設定されている場合には所定の印を前記データ補間定義に応じた値に置換し、タプルに対応するクエリで処理する。

Description

[規則37.2に基づきISAが決定した発明の名称] ストリームデータ処理方法、ストリームデータ処理装置及びプログラム
 本発明は、ストリームデータを受信して即座に演算処理を実行するストリームデータの処理に関し、特に、ストリームデータの一部が欠損した場合の処理に関する。
 ストリームデータ処理では、多数のセンサなどのデータソースが出力した複数のデータをひとつの組としたタプルを単位としてリアルタイムで演算処理を実行している。ストリームデータ処理では、まずクエリ(問合せ)をシステムに登録しておき、データが到来するとクエリが継続的に実行される。このクエリの記述言語の好適な例として、CQL(Continuous Query Language)が知られている(特許文献1、2、3)。そして、タプルを構成するデータは、ある時刻(または時間間隔)までに到着したデータをタプルとして扱う。なお、タプルとは特定の同一時刻tに発生した複数のデータをひとつの組にしたものである。
米国特許第7403959号 米国特許第7958108号 米国特許第8024350号
 上記従来例において、上記クエリとして、センサから出力されたデータの実測値と平均値から誤差の評価式で演算処理を行う場合、タプルのデータが全て揃っていることが前提となっており、データが一つでも欠損すると評価式の演算はできない。つまり、到着しないデータについて、NULL(値が存在しないことを示す印)を設定すると、NULLに対して加減乗除の演算はできないので、上記評価式の演算も不能となる。したがって、欠損したデータにNULLを挿入することができたとしても、タプルの演算結果は得られない、という問題があった。
 そこで本発明は、上記問題点に鑑みて成されたもので、タプルのデータが欠損しても演算処理を継続することが可能なストリームデータの処理方法及び装置を提供することを目的とする。
 本発明は、プロセッサとメモリを備えた計算機で、受信したストリームデータをクエリで処理するストリームデータ処理方法であって、前記計算機が、ストリームデータのタプルを構成するデータを定義したストリーム定義を受信し、前記タプルを構成するデータをストリーム管理情報に格納する第1のステップと、前記計算機が、前記タプルを処理するクエリを受信し、当該クエリをクエリ管理情報に格納する第2のステップと、前記計算機が、前記タプルを構成するデータが欠損したときに、当該データを補間するデータ補間定義を受信する第3のステップと、前記計算機が、前記データを受信し、前記ストリーム管理情報に基づいて前記タプルを構成する第4のステップと、前記計算機が、前記タプルを構成するデータに欠損があるか否かを判定し、欠損がある場合には当該データにデータがないことを示す所定の印を設定する第5のステップと、前記計算機が、前記タプルを構成するデータに所定の印が設定されている場合には、当該データの所定の印を前記データ補間定義に応じた値に置換する第6のステップと、前記計算機が、前記タプルに対応する前記クエリを前記クエリ管理情報から取得して、当該クエリで前記タプルを処理する第7のステップと、を含む。
 本発明によれば、ストリームデータが欠損したときに所定の印(例えば、NULL)を設定し、当該所定の印を補間するデータまたは補間方法を予め設定しておき、ストリームデータ処理に投入されたタプルに所定の印が含まれるときには、クエリの演算処理を行う以前に所定のデータで所定の印を置換することで、タプルの演算を継続させることができる。
本発明の第1の実施例を示し、ストリームデータ処理システムの一例を示すブロック図である。 本発明の第1の実施例を示し、サーバ計算機のストリームデータ処理部の一例を示すブロック図である。 本発明の第1の実施例を示し、ストリーム定義の一例を示す図である。 本発明の第1の実施例を示し、ストリーム管理テーブルの一例を示す図である。 本発明の第1の実施例を示し、ストリームデータ処理部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、データ補間処理部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、データ補間処理部で行われる処理の一例を示す図である。 本発明の第2の実施例を示し、データ補間処理部で行われる処理の一例を示す図である。 本発明の第3の実施例を示し、ストリーム管理テーブルの一例を示す図である。 本発明の第3の実施例を示し、データ補間処理部で行われる処理の一例を示すフローチャートである。 本発明の第3の実施例を示し、データ補間処理部で行われる処理の一例を示す図である。 本発明の第3の実施例を示し、データ補間処理部で行われる処理の他の例を示す図である。 本発明の第4の実施例を示し、クエリ定義の一例を示す図である。 本発明の第4の実施例を示し、クエリ定義テーブルの一例を示す図である。 本発明の第4の実施例を示し、ストリームデータ処理部で行われる処理の一例を示すフローチャートである。 本発明の第4の実施例を示し、クエリ定義の他の例を示す図である。 本発明の第4の実施例を示し、クエリ定義テーブルの他の例を示す図である。
 以下、本発明の一実施例について添付図面を用いて説明する。
 図1は、本発明の第1の実施例のストリームデータ処理システムの一例を示すブロック図である。
 ストリームデータ処理システムは、アプリケーション44を実行するクライアント計算機4が、ネットワーク2を介してストリームデータ処理部20を機能させるサーバ計算機1に接続される。また、サーバ計算機1にはネットワーク3を介してストリームデータソース5-1~5-Nが接続される。ストリームデータソース5-1~5-Nは、サーバ計算機1へストリームデータを送信するセンサや計算機で構成される。
 ここで、クライアント計算機4は、演算を行うプロセッサ41と、データやプログラムを保持する主記憶42と、ネットワーク2に接続されるインターフェース(図中I/F)45とを備える。主記憶42には、アプリケーション44がロードされてプロセッサ41によって実行される。
 クライアント計算機4のアプリケーション44は、サーバ計算機1のストリームデータ処理部20に対して、クエリ105の登録と、ストリーム定義106の登録と、データ補間定義107の登録を、後述するコマンドにより実行する。サーバ計算機1は、クライアント計算機4から受け付けたコマンドからクエリ105定義と、ストリーム定義106と、データ補間定義107を登録し、ストリームデータソース5-1~5-Nから受信したデータのうち、登録されたストリームデータに該当するデータについてクエリを実行する。
 ここで、サーバ計算機1は、演算を行うプロセッサ11と、データやプログラムを保持する主記憶12と、ネットワーク2に接続されるインターフェース(図中I/F)13と、ネットワーク3に接続されるインターフェース(図中I/F)14と、キーボードやマウスなどで構成された入力装置15と、ディスプレイ等で構成された出力装置16と、不揮発性の記憶媒体で構成された補助記憶装置17とを備える。
 主記憶12には、ストリームデータ処理部20がロードされてプロセッサ11によって実行される。
 プロセッサ11は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ11は、ストリームデータ処理プログラムに従って動作することでストリームデータ処理部20として機能する。他のプログラムについても同様である。さらに、プロセッサ11は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
 ストリームデータ処理部20の各機能を実現するプログラム、テーブル等の情報は、補助記憶装置17や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
 図2は、ストリームデータ処理部20の一例を示す機能ブロック図である。ストリームデータ処理部20は、受け付けたコマンドを解析してクエリの登録またはストリームの登録を行うコマンドマネージャ200と、登録されたクエリでストリームデータを処理するクエリ処理エンジン220と、クエリ管理テーブル300を保持するクエリリポジトリ210と、ストリーム管理テーブル400を保持するシステムディクショナリ230と、クエリ処理時のシステムのスケジューリングを行うスケジューリングマネージャ280と、システムの稼動に必要な主記憶12をクエリ処理エンジン220あるいは他のマネージャに割り当てて、不要になった領域を回収するメモリマネージャ290と、システムディクショナリ230中のストリーム管理テーブル400を参照し、必要に応じてストリームを複製し、クエリ処理エンジン220に配信するストリームデータフローマネージャ240と、を含む。
 クライアント計算機4のアプリケーション44は、所定のクエリ登録コマンドを用いて、クエリをストリームデータ処理部20のコマンドマネージャ200に送信する。コマンドマネージャ200は受け付けたコマンドを解析し、クエリ登録コマンド中のクエリ部分をクエリ解析部201へ送信する。クエリ解析部201で解析されたクエリは、続いてクエリ最適化部202に送られる。クエリ最適化部202では効率のよい実行方式を選択する最適化処理を実施し、クエリ生成部203で該最適化処理の結果に基づいてクエリの実行形式を生成する。そして、クエリ生成部203で実行形式に変換されたクエリは、クエリリポジトリ112に格納される。
 クライアント計算機4で稼動するアプリケーション44は、図3に示すストリーム登録コマンドを用いてストリーム定義S1の指示をストリームデータ処理部20に対して発行する。ストリーム登録コマンドを受け付けたコマンドマネージャ200は、コマンドを解析し、システムディクショナリ230を参照して指定されたストリーム定義のスキーマをチェックし、ストリーム定義S1を図4に示すストリーム管理テーブル400に登録する。ストリーム管理テーブル400はシステムディクショナリ230内に保持される。
 ここで、図3は、ストリーム定義の一例を示す図である。ストリーム定義S1の例として、4つの温度センサの温度データT1、T2、T3、T4からタプルを構成し、各温度データT1~T4のデフォルト値が30、30、25、40(°C)に設定された例を示す。なお、同一時刻tに測定した温度T1、T2、T3、T4のデータを組にして、一つのタプルを構成する。
 図4は、ストリーム管理テーブル400の一例を示す図である。ストリーム管理テーブル400は、ストリーム定義の名称(または識別子)を格納する名称401と、ストリームデータの定義を格納するストリーム定義402、ストリームデータのデフォルト値を格納するデフォルト値403から一つのエントリが構成される。ストリーム定義402は、温度データT1~T4が「real」=実測値であることを示し、4つのデータでひとつのタプルを構成することが定義される。デフォルト値403は、上述のストリーム定義S1で指定された値であり、各温度データT1~T4のデフォルト値は30、30、25、40(℃)に設定された例を示す。
 次に、クエリ処理エンジン220は、ストリームデータの一部を切り取るスライディングウィンドウを制御するウィンドウ管理部250と、ストリームデータに対して所定の演算を行うクエリ演算部260と、タプルのデータに欠損があった場合に、欠損したデータを補間するデータ補間処理部270と、から構成される。ウィンドウ管理部250及びクエリ演算部260は、前記従来例の特許文献1、2と同様であるので、ここでは詳述しない。
 本第1の実施例では、データに欠損があった場合、データ補間処理部270がストリーム定義S1で設定されたデフォルト値を用いる例を示す。なお、クエリについては、前記従来例と同様に、温度データの実測値と平均値から誤差の評価式を演算するものとする。
 図5は、ストリームデータ処理部20で行われる処理の一例を示すフローチャートである。この処理は、ストリームデータを受け付けると繰り返して実行される。なお、本処理を開始する以前に、ストリームデータ処理部20は、クライアント計算機4からストリームデータのタプルを定義するストリーム定義106と、タプルを処理するクエリ105と、タプルを構成するストリームデータに欠損があるときに補間するデータを定義したデータ補間定義107とを受信し、ストリーム管理テーブル400とクエリ管理テーブル300に各定義を格納している。
 まず、ステップS01では、ストリームデータ処理部20のストリームデータフローマネージャ240が、ストリームデータソース5-1~5-Nからデータを受信し、ストリーム定義106に従ってタプルを構成する。
 ステップS02で、ストリームデータフローマネージャ240は、受信したデータの組からタプルを構成して、当該タプルをクエリ処理エンジン220のウィンドウ管理部250に登録する。ここで、ストリームデータフローマネージャ240は、タプルを構成するデータに欠損がある場合には、当該データにデータが無いことを示す印(マーク)としてのNULLを設定する。
 次に、ステップS03で、クエリ演算部260が、ウィンドウ管理部250内のタプルを参照する。ステップS04では、クエリ演算部260が参照しているタプル内にNULLが含まれているか否かを判定する。クエリ演算部260はNULLが含まれている場合は、タプル内のデータ欠損したと判定してステップS05へ進み、NULLがない場合にはデータの欠損はないと判定してステップS06に進む。
 ステップS05では、データ補間処理部270がタプル内のNULLを、予め設定したデフォルト値に置き換える。つまり、データ補間処理部270は、タプル内のNULLの位置から欠損したデータを特定する。そして、データ補間処理部270はストリーム管理テーブル400を参照し、欠損したデータのデフォルト値403を取得する。データ補間処理部270は、欠損したデータのNULLを、取得したデフォルト値403に置換する。ステップS06では、クエリ演算部260がタプルに対応するクエリをクエリ管理テーブル300から取得し、当該クエリで該タプルのデータを処理する。
 図6は、データ補間処理部270で行われる処理の一例を示すフローチャートである。この処理は、図5のステップS05で行われる処理である。
 ステップS11では、データ補間処理部270がNULLを含むタプルの先頭要素(データ)を取得する。次に、データ補間処理部270は現在取得しているタプルの要素がNULLであるか否かを判定する。データ補間処理部270は、現在取得している要素がNULLであればステップS13へ進み、そうでなければステップS15に進む。
 ステップS13では、データ補間処理部270が現在取得しているタプルの要素に対応するデフォルト値403を、ストリーム管理テーブル400から取得する。ステップS14で、データ補間処理部270は現在の要素のNULLを、取得したデフォルト値403に置き換える。
 次に、ステップS15で、データ補間処理部270は現在のタプルに次の要素があるか否かを判定する。次の要素があれば、データ補間処理部270はタプル内の次の要素を取得してステップS12移行の処理を繰り返す。一方、次の要素がなければ、データ補間処理部270は処理を終了して図5の処理に復帰する。
 以上の処理により、タプルのデータに欠損がある場合には、ストリーム管理テーブル400に予め設定したデフォルト値403を代用してクエリ演算部260がクエリを実行することができる。これにより、時系列的な統計処理を行うクエリを有するストリームデータ処理において、データの欠損を許容してクエリで定義された演算を継続することが可能となる。
 図7は、データ補間処理部270による欠損したデータの置換の一例を示す図である。温度データT1~T4で構成される時刻tのタプルは、温度データT3が欠損しておりNULL値が設定される。データ補間処理部270は、温度データT3に対応するデフォルト値403として「25」(°C)をストリーム管理テーブル400から取得し、NULL値を「25」に置換する。これにより、時刻tのタプル(T1~T4)は、クエリ演算部260で処理可能な値となって、ストリームデータ処理を継続することが可能となるのである。
 図8は、本発明の第2の実施例を示し、データ補間処理部270で行われる処理の一例を示す図である。第2の実施例は、前記第1の実施例のデフォルト値403に代わって、直前の値(前回値)を用いる例を示す。第2の実施例では、ストリーム管理テーブル400のデフォルト値403を使用せず、その他の構成は前記第1の実施例と同様である。
 データ補間処理部270は、直前のタプルの要素の値を保持しており、タプルの要素にNULLがある場合には、当該NULLを直前の値に置き換える。これにより、温度データのように時間の経過で急激に変動することが少ないと分かっているデータに対して、データが欠損した場合に精度よい推定値で置き換えることができ、ストリームデータ処理を継続することが可能になる。
 図8の例では、タプルの要素である温度データT1~T4のうち、時刻t5の温度データT3がNULLとなって欠損している。ここで、データ補間処理部270は、直前の時刻t4のタプルの要素(T3)の値(28)を保持しており、NULLを前回値の「28」に置き換える。これにより、時刻t5のタプルの要素はクエリ演算部260で演算可能な値となって、ストリームデータ処理を継続することが可能となるのである。
 図9~図12は、本発明の第3の実施例を示す。第3の実施例では、前記第1の実施例のデフォルト値403に代わって、ストリームデータ処理部20のユーザ(以下、単にユーザとする)が定義した補間処理によって算出した値でNULLを置き換えるもので、その他の構成は前記第1の実施例と同様である。これにより、データ発生源の特性に対応したデータ補間処理定義をユーザが指定できるようになるので、データが欠損した場合にデータ発生源の特性に対応した精度のよい推定値でNULLを置き換えて、ストリームデータ処理を継続することが可能になる。
 図9は、ストリーム管理テーブル400の一例を示す図である。第3の実施例のストリーム管理テーブル400では、前記第1の実施例のデフォルト値403に代わって、データ補間処理定義403Aにユーザが定義した関数の呼び出し先と、引数の情報が格納される。ここで、ユーザは、クライアント計算機4や入力装置15から関数の定義を行うことができる。
 図10は、データ補間処理部270で行われる処理の一例を示すフローチャートである。この処理は、実施例1に示した図5のステップS05で行われる処理である。
 ステップS21では、データ補間処理部270がストリーム管理テーブル400から、ストリーム定義の名称401に対応するデータ補間処理定義403Aを参照する。そして、ステップS22で、データ補間処理部270は、処理対象のタプルのデータを引数として、データ補間処理定義403Aに登録されたユーザ定義の関数を呼び出す。データ補間処理部270は、ユーザ定義の関数に引数を代入して戻り値を演算する。そして、ステップS23では、データ補間処理部270が取得した戻り値でNULLの要素を置き換える。
 図11は、データ補間処理部270で行われる処理の一例を示す図である。図11では、データが欠損した要素の過去の値からNULLを置き換える補間値を演算する例を示す。時刻t5における温度データT3の補間値T3(t5)は、
T3(t5) = a1*T3(t1) + a2*T3(t2) + a3*T3(t3) +a4*T3(t4)  ………(1)
ただし、a1、a2、a3、a4は、所定の係数である。
 上記処理により、欠損した時刻t5の温度データT3は、時刻t1~t4の過去の値から推定された補間値T3(t5)が算出され、データ補間処理部270はNULLを補間値T3(t5)に置き換えて、クエリ演算部260でストリームデータ処理を継続することができる。
 上記補間値の推定については、ラグランジュの補間公式など周知または公知の手法を適用すれば良い。ラグランジュの補間公式としては、「Jean-Paul Berrut, Lloyd N. Trefethen (2004). "Barycentric Lagrange Interpolation". SIAM Review 46 (3): 501-517.」(http://dx.doi.org/10.1137/S0036144502417715)に開示される手法を用いることができる。
 図12は、データ補間処理部270で行われる処理の他の例を示す図である。図12では、データが欠損した時刻t5の他の温度データT1、T2、T4の値からNULLを置き換える補間値T3(t5)を演算する例を示す。時刻t5における温度データT3の補間値T3(t5)は、
T3(t5) = b1*T1(t5) + b2*T2(t5) + b4*T4(t5) ………(2)
ただし、b1、b2、b3、b4は、所定の係数である。
 上記処理により、欠損した時刻t5の温度データT3は、時刻t5の他の温度データT1、T2、T4の値から推定された補間値T3(t5)が算出され、データ補間処理部270はNULLを補間値T3(t5)に置き換えて、クエリ演算部260でストリームデータ処理を継続することができる。
 図13~図17は、本発明の第4の実施例を示す。第4の実施例では、前記実施例1~実施例3に示した補間の有無をクエリで定義するようにしたもので、その他の構成は前記第1の実施例と同様である。
 図13は、ストリームデータ処理部20がクライアント計算機4から受け付けるクエリQ1の登録コマンドである。クエリQ1の登録コマンドでは、図中最下行の「with no interpolation」によって、ストリームデータが欠損した場合のデータ補間を省略する指示が記述される。ストリームデータ処理部20のコマンドマネージャ200は、クエリQ1の登録コマンドを受け付けると、前記実施例1と同様に解析を行ってクエリを生成し、クエリ管理テーブル300に登録する。
 なお、クエリQ1の登録コマンドは、クライアント計算機4や入力装置15から入力することができる。
 図14は、クエリ管理テーブル300の一例を示す図である。クエリ管理テーブル300は、コマンドマネージャ200が、クエリ生成部203によって生成したクエリを格納する。クエリ管理テーブル300は、クエリの名称または識別子を格納する名称301と、クエリ生成部203で生成されたクエリを格納するクエリ定義302と、ストリームデータが欠損した場合のデータ補間の有無を格納するデータ補間の指定303とからひとつのエントリが構成される。
 図示の例では、図13に示したクエリQ1の登録コマンドからクエリ生成部203で生成されたクエリ定義302と、データ補間の指定303が格納される。クエリ定義302は、ストリームデータ(タプル)S1の平均値と、時刻T1のストリームデータの差分を評価するクエリが格納される。データ補間の指定303の指定には、図13のクエリQ1の登録コマンドに示した図中最下行の「with no interpolation」に対応して、「補間なし」が設定される。
 図15は、第4の実施例で、ストリームデータ処理部20で行われる処理の一例を示すフローチャートである。この処理は、実施例1の図5に示した処理にステップS35の処理を加えたものである。
 ステップS31~S34は、図5のステップS01~S04と同様であり、ストリームデータフローマネージャ240が、ストリームデータソース5-1~5-Nから受信したタプルをクエリ処理エンジン220のウィンドウ管理部250に登録し、クエリ演算部260が、ウィンドウ管理部250内のタプルを参照して、タプル内にNULLが含まれているか否かを判定する。クエリ演算部260はNULLが含まれている場合は、タプル内のデータ欠損したと判定してステップS35へ進み、NULLがない場合にはデータの欠損はないと判定してステップS37に進む。
 ステップS35では、クエリ演算部260がクエリ管理テーブル300を参照し、データの補間を省略する指示の有無を判定する。データの補間を省略する指示がある場合には、ステップS37へ進み、データの補間を省略する指示がない場合には、ステップS36へ進む。
 ステップS36では、データ補間処理部270がタプル内のNULLを、予め設定した値に置き換える。つまり、データ補間処理部270は、タプル内のNULLの位置から欠損したデータを特定する。そして、データ補間処理部270はストリーム管理テーブル400を参照し、実施例1~実施例3のように欠損したデータのデフォルト値403やデータ補間処理定義403Aに応じた補間処理を実施し、算出または設定された値を欠損したデータのNULLに代わって設定する。ステップS37では、クエリ演算部260がタプルのデータを参照し、所定のクエリを実行する。
 以上の処理により、クエリの登録コマンドで、データ補間の有無を指定することができ、ユーザの意図に応じたストリームデータ処理を実現できる。
 図16、図17は、クエリ登録コマンドでデータの補間を実施させる例を示す。
 図16は、ストリームデータ処理部20がクライアント計算機4から受け付けるクエリQ1の登録コマンドである。図16のクエリQ1の登録コマンドでは、図13のクエリ登録コマンドに対して、図中最下行の「with interpolation」というデータ補間の指示と、「S1 using FUNC1(S1[ROWS 10])」という補間の指令によって、ストリームデータが欠損した場合のデータ補間処理が記述される。ストリームデータ処理部20のコマンドマネージャ200は、クエリQ1の登録コマンドを受け付けると、前記実施例1と同様に解析を行ってクエリを生成し、クエリ管理テーブル300に登録する。
 図17は、クエリ管理テーブル300の一例を示す図である。クエリ管理テーブル300は、図14と同様であり、コマンドマネージャ200が、クエリ生成部203によって生成したクエリを格納する。
 図示の例では、図14に示したクエリに対して、「with interpolation」以降の補間処理がデータ補間の指定303に格納される。データ補間の指定303の「S1 using FUNC1(S1[ROWS 10])」は、ストリームS1の最新のタプルにNULLが含まれている場合、ウィンドウS1[ROWS 10]に格納されている全データを引数として、ユーザ定義関数FUNC1を呼び出すことが指示される。ユーザ定義関数FUNC1は、データの欠損箇所であるNULLの値を、
引数から演算した補間値に置き換えた、新たなタプルを生成する。
 以上の処理により、ストリームデータ処理部20のユーザは、クエリの登録コマンドで、ストリームデータが欠損したときのデータ補間の有無を指定することができ、ユーザの意図に応じたストリームデータ処理を実現できる。

Claims (20)

  1.  プロセッサとメモリを備えた計算機で、受信したストリームデータをクエリで処理するストリームデータ処理方法であって、
     前記計算機が、ストリームデータのタプルを構成するデータを定義したストリーム定義を受信し、前記タプルを構成するデータをストリーム管理情報に格納する第1のステップと、
     前記計算機が、前記タプルを処理するクエリを受信し、当該クエリをクエリ管理情報に格納する第2のステップと、
     前記計算機が、前記タプルを構成するデータが欠損したときに、当該データを補間するデータ補間定義を受信する第3のステップと、
     前記計算機が、前記データを受信し、前記ストリーム管理情報に基づいて前記タプルを構成する第4のステップと、
     前記計算機が、前記タプルを構成するデータに欠損があるか否かを判定し、欠損がある場合には当該データにデータがないことを示す所定の印を設定する第5のステップと、
     前記計算機が、前記タプルを構成するデータに所定の印が設定されている場合には、当該データの所定の印を前記データ補間定義に応じた値に置換する第6のステップと、
     前記計算機が、前記タプルに対応する前記クエリを前記クエリ管理情報から取得して、当該クエリで前記タプルを処理する第7のステップと、
    を含むことを特徴とするストリームデータ処理方法。
  2.  請求項1に記載のストリームデータ処理方法であって、
     前記データ補間定義は、
     前記タプルを構成するデータ毎に予め設定した値であることを特徴とするストリームデータ処理方法。
  3.  請求項1に記載のストリームデータ処理方法であって、
     前記データ補間定義は、
     前記タプルを構成するデータの前回値であることを特徴とするストリームデータ処理方法。
  4.  請求項1に記載のストリームデータ処理方法であって、
     前記データ補間定義は、
     前記タプルを構成するデータを補間する関数であって、
     前記第6のステップは、
     前記データの所定の印を前記関数で算出した値で置換することを特徴とするストリームデータ処理方法。
  5.  請求項1に記載のストリームデータ処理方法であって、
     前記データ補間定義は、
     前記タプルを構成するデータを補間する多項式であって、
     前記第6のステップは、
     前記データの所定の印を前記多項式から算出した値で置換することを特徴とするストリームデータ処理方法。
  6.  請求項1に記載のストリームデータ処理方法であって、
     前記データ補間定義は、
     前記タプルを構成するデータを推定する多項式であって、
     前記第6のステップは、
     前記データの所定の印を前記多項式から推定した値で置換することを特徴とするストリームデータ処理方法。
  7.  請求項1に記載のストリームデータ処理方法であって、
     前記クエリは、
     前記タプルを構成するデータが欠損したときに、当該データを補間するか否かを指定する補間情報を含み、
     前記第6のステップは、
     前記補間情報が、データを補間しないことを示す場合には、前記データの所定の印を前記データ補間定義に応じた値に置換する処理を省略することを特徴とするストリームデータ処理方法。
  8.  プロセッサとメモリを備えて、受信したストリームデータをクエリで処理するストリームデータ処理装置であって、
     前記ストリームデータのタプルを構成するデータを定義したストリーム定義を受信し、前記タプルを構成するデータを格納するストリーム管理情報と、
     前記タプルを処理するクエリを受信し、当該クエリを格納するクエリ管理情報と、
     前記データを受信し、前記ストリーム管理情報に基づいて前記タプルを構成するストリームデータフロー管理部と、
     前記タプルを構成するデータが欠損したときに当該データを補間するデータ補間定義を予め受け付けて、当該データ補間定義を前記欠損したデータに適用するデータ補間部と、
     前記タプルに対応する前記クエリを前記クエリ管理情報から取得して、当該クエリで前記タプルを処理するクエリ演算部と、を備え、
     前記ストリームデータフロー管理部は、
     前記タプルを構成するデータに欠損があるか否かを判定し、欠損がある場合には当該データにデータがないことを示す所定の印を設定し、
     前記データ補間部は、
     前記タプルを構成するデータに所定の印が設定されている場合には、当該データの所定の印を前記データ補間定義に応じた値に置換し、
     前記クエリ演算部は、
     前記置換されたデータを含むタプルを前記クエリで処理することを特徴とするストリームデータ処理装置。
  9.  請求項8に記載のストリームデータ処理装置であって、
     前記データ補間定義は、
     前記タプルを構成するデータ毎に予め設定した値であることを特徴とするストリームデータ処理装置。
  10.  請求項8に記載のストリームデータ処理装置であって、
     前記データ補間定義は、
     前記タプルを構成するデータの前回値であることを特徴とするストリームデータ処理装置。
  11.  請求項8に記載のストリームデータ処理装置であって、
     前記データ補間定義は、
     前記タプルを構成するデータを補間する関数であって、
     前記データ補間部は、
     前記データの所定の印を前記関数で算出した値で置換することを特徴とするストリームデータ処理装置。
  12.  請求項8に記載のストリームデータ処理装置であって、
     前記データ補間定義は、
     前記タプルを構成するデータを補間する多項式であって、
     前記データ補間部は、
     前記データの所定の印を前記多項式から算出した値で置換することを特徴とするストリームデータ処理装置。
  13.  請求項8に記載のストリームデータ処理装置であって、
     前記データ補間定義は、
     前記タプルを構成するデータを推定する多項式であって、
     前記データ補間部は、
     前記データの所定の印を前記多項式から推定した値で置換することを特徴とするストリームデータ処理装置。
  14.  請求項8に記載のストリームデータ処理装置であって、
     前記クエリは、
     前記タプルを構成するデータが欠損したときに、当該データを補間するか否かを指定する補間情報を含み、
     前記データ補間部は、
     前記補間情報が、データを補間しないことを示す場合には、前記データの所定の印を前記データ補間定義に応じた値に置換する処理を省略することを特徴とするストリームデータ処理装置。
  15.  プロセッサとメモリを備えた計算機で、受信したストリームデータをクエリで処理するプログラムであって、
     前記ストリームデータのタプルを構成するデータを定義したストリーム定義を受信し、前記タプルを構成するデータをストリーム管理情報に格納する第1のステップと、
     前記タプルを処理するクエリを受信し、当該クエリをクエリ管理情報に格納する第2のステップと、
     前記タプルを構成するデータが欠損したときに、当該データを補間するデータ補間定義を受信する第3のステップと、
     前記データを受信し、前記ストリーム管理情報に基づいて前記タプルを構成する第4のステップと、
     前記タプルを構成するデータに欠損があるか否かを判定し、欠損がある場合には当該データにデータがないことを示す所定の印を設定する第5のステップと、
     前記タプルを構成するデータに所定の印が設定されている場合には、当該データの所定の印を前記データ補間定義に応じた値に置換する第6のステップと、
     前記タプルに対応する前記クエリを前記クエリ管理情報から取得して、当該クエリで前記タプルを処理する第7のステップと、
    を前記計算機に実行させるプログラム。
  16.  請求項15に記載のプログラムであって、
     前記データ補間定義は、
     前記タプルを構成するデータ毎に予め設定した値であることを特徴とするプログラム。
  17.  請求項15に記載のプログラムであって、
     前記データ補間定義は、
     前記タプルを構成するデータの前回値であることを特徴とするプログラム。
  18.  請求項15に記載のプログラムであって、
     前記データ補間定義は、
     前記タプルを構成するデータを補間する関数であって、
     前記第6のステップは、
     前記データの所定の印を前記関数で算出した値で置換することを特徴とするプログラム。
  19.  請求項15に記載のプログラムであって、
     前記データ補間定義は、
     前記タプルを構成するデータを補間する多項式であって、
     前記第6のステップは、
     前記データの所定の印を前記多項式から算出した値で置換することを特徴とするプログラム。
  20.  請求項15に記載のプログラムであって、
     前記データ補間定義は、
     前記タプルを構成するデータを推定する多項式であって、
     前記第6のステップは、
     前記データの所定の印を前記多項式から推定した値で置換することを特徴とするプログラム。
PCT/JP2012/064892 2012-06-11 2012-06-11 ストリームデータ処理方法、ストリームデータ処理装置及びプログラム WO2013186831A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/064892 WO2013186831A1 (ja) 2012-06-11 2012-06-11 ストリームデータ処理方法、ストリームデータ処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/064892 WO2013186831A1 (ja) 2012-06-11 2012-06-11 ストリームデータ処理方法、ストリームデータ処理装置及びプログラム

Publications (1)

Publication Number Publication Date
WO2013186831A1 true WO2013186831A1 (ja) 2013-12-19

Family

ID=49757695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/064892 WO2013186831A1 (ja) 2012-06-11 2012-06-11 ストリームデータ処理方法、ストリームデータ処理装置及びプログラム

Country Status (1)

Country Link
WO (1) WO2013186831A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016071479A (ja) * 2014-09-29 2016-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データをストリーム処理する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
JP2017535012A (ja) * 2014-10-08 2017-11-24 シグナルエフエックス インコーポレイテッド ソフトウェアの計測に基づいたリアルタイム報告
US10437705B2 (en) 2014-10-08 2019-10-08 Signalfx, Inc. Real-time reporting based on instrumentation of software
US10949180B2 (en) 2014-12-19 2021-03-16 Splunk Inc. Dynamically changing input data streams processed by data stream language programs
US11194697B2 (en) 2015-01-29 2021-12-07 Splunk Inc. Real-time processing of data streams received from instrumented software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143565A (ja) * 2001-08-08 2003-05-16 Matsushita Electric Ind Co Ltd 補間処理装置およびその方法並びに補間処理プログラム
JP2005318473A (ja) * 2004-04-30 2005-11-10 Toshiba Corp 動画像のメタデータ
JP2007104716A (ja) * 2006-12-04 2007-04-19 Toshiba Corp 動画像中のオブジェクトに関するメタデータストリームのデータ構造及び再生方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143565A (ja) * 2001-08-08 2003-05-16 Matsushita Electric Ind Co Ltd 補間処理装置およびその方法並びに補間処理プログラム
JP2005318473A (ja) * 2004-04-30 2005-11-10 Toshiba Corp 動画像のメタデータ
JP2007104716A (ja) * 2006-12-04 2007-04-19 Toshiba Corp 動画像中のオブジェクトに関するメタデータストリームのデータ構造及び再生方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TSUNEYUKI IMAKI ET AL.: "Visualization of Meetings by Stream Data Processing of Voices", IEICE TECHNICAL REPORT, vol. 107, no. 294, 23 October 2007 (2007-10-23), pages 25 - 30 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016071479A (ja) * 2014-09-29 2016-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データをストリーム処理する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US10146502B2 (en) 2014-09-29 2018-12-04 International Business Machines Corporation Stream-processing data
US10579453B2 (en) 2014-09-29 2020-03-03 International Business Machines Corporation Stream-processing data
JP2017535012A (ja) * 2014-10-08 2017-11-24 シグナルエフエックス インコーポレイテッド ソフトウェアの計測に基づいたリアルタイム報告
US10437705B2 (en) 2014-10-08 2019-10-08 Signalfx, Inc. Real-time reporting based on instrumentation of software
US10949180B2 (en) 2014-12-19 2021-03-16 Splunk Inc. Dynamically changing input data streams processed by data stream language programs
US11709661B2 (en) 2014-12-19 2023-07-25 Splunk Inc. Representing result data streams based on execution of data stream language programs
US11733982B1 (en) 2014-12-19 2023-08-22 Splunk Inc. Dynamically changing input data streams processed by data stream language programs
US11194697B2 (en) 2015-01-29 2021-12-07 Splunk Inc. Real-time processing of data streams received from instrumented software
US11928046B1 (en) 2015-01-29 2024-03-12 Splunk Inc. Real-time processing of data streams received from instrumented software

Similar Documents

Publication Publication Date Title
JP6889289B2 (ja) 計測手段が組み込まれたソフトウェアを分析するためのデータストリーム処理言語
JP6952067B2 (ja) 継続時間可変イベントなしパターンマッチング
WO2013186831A1 (ja) ストリームデータ処理方法、ストリームデータ処理装置及びプログラム
US20190158420A1 (en) Mainframe migration tools
JP6493400B2 (ja) サービスチェーン管理装置、サービスチェーン管理システム、サービスチェーン管理方法、及び、プログラム
US20140282053A1 (en) Configurable Metrics and Metric Visualization
US10489266B2 (en) Generating a visualization of a metric at one or multiple levels of execution of a database workload
WO2014181475A1 (ja) 複数バージョンのデータを格納するデータベースサーバ、及び、データベース管理方法
US9996332B2 (en) Accurately estimating install time
WO2013183115A1 (ja) ログ管理システム及びプログラム
US9531842B2 (en) Network-independent programming model for online processing in distributed systems
JPWO2020204144A1 (ja) 業務分析方法
CN103440167A (zh) Hadoop多作业环境下自学习反馈的任务调度方法
JP2017146888A (ja) 設計支援装置及び方法及びプログラム
US20160292233A1 (en) Discarding data points in a time series
US20160125033A1 (en) Stream data processing method with time adjustment
US20150317297A1 (en) System and method for managing data and data models
JP2016115359A (ja) データセットの解釈方法
US20150347507A1 (en) Hierarchical query plans in an elastic parallel database management system
JP2015191397A (ja) 設計パラメータ探索装置、設計パラメータ探索方法、及びプログラム
JP7039232B2 (ja) 技術情報共有システム及び技術情報共有方法
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
JP6150545B2 (ja) データ処理装置及びプログラム
JP2016173789A (ja) 移行支援システム、方法およびプログラム
JP5667118B2 (ja) データ転送制御装置、データ転送制御システム、データ転送制御方法、及びそのためのプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12879003

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12879003

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP