WO2012046316A1 - ストリームデータ処理方法及び装置 - Google Patents
ストリームデータ処理方法及び装置 Download PDFInfo
- Publication number
- WO2012046316A1 WO2012046316A1 PCT/JP2010/067587 JP2010067587W WO2012046316A1 WO 2012046316 A1 WO2012046316 A1 WO 2012046316A1 JP 2010067587 W JP2010067587 W JP 2010067587W WO 2012046316 A1 WO2012046316 A1 WO 2012046316A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- input
- stream
- operator
- execution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Definitions
- the present invention relates to a method and apparatus for processing stream data.
- DBMS database management system
- the DBMS stores data to be processed in a storage and realizes highly reliable processing represented by transaction processing for the stored data.
- DBMS it is difficult to satisfy the above-mentioned request for real-time processing because search processing is performed on all data every time new data arrives.
- search processing is performed on all data every time new data arrives.
- one of the most important issues of the system is how quickly it can react to fluctuations in stock prices.
- the data search process cannot catch up with the speed of stock price fluctuations, and may miss a business opportunity.
- Non-Patent Document 1 discloses a stream data processing system “STREAM”.
- a query is first registered in the system, and the query is continuously executed as data arrives. Since the query to be executed can be grasped in advance, when new data arrives, high-speed processing is possible by processing only the difference from the processing result up to that point. Therefore, the stream data processing enables real-time analysis of data generated at a high rate in stock trading and the like, and it is possible to monitor and utilize the occurrence of events effective for business.
- Stream data processing assumes input data in time order so that it can be processed simultaneously with data input, realizing real-time performance. Therefore, when data is input from nodes (computers) installed at distributed bases such as stock exchanges, base stations, and electric meters, data from different bases are not input in time order. Sorts in order of time when inputting and enables stream data processing. However, when there are many nodes at distributed bases or when the bases are geographically separated, the time order sorting at the time of data input increases memory cost and processing latency, so input data that is not in time order Patent Document 1, Patent Document 2, Patent Document 3, Patent Document 4, Non-Patent Document 2, and Non-Patent Document 3 are disclosed as countermeasures against the above. Note that the memory cost refers to the amount of memory used in a computer that is required to hold data during processing. The processing latency is a delay time from when stream data is input to a computer that processes stream data until the data is output.
- Patent Documents 2 and 3 in input data aggregation processing that is not in time order, the arrival of input data delayed in time is not necessarily waited, and the processing result is calculated as an approximate solution, thereby increasing memory cost and latency. Suppress. However, since the consistency of data or processing cannot be maintained only by processing using an approximate solution, the scope of operations to which these Patent Documents 2 and 3 can be applied is limited.
- Non-Patent Document 2 In Non-Patent Document 2 above, input that is not in chronological order is permitted for the stream. Then, to explicitly advance the time, a control packet is sent, and when the control packet is input to the operator, the operator processes the data up to the time of the control packet. In the process of Non-Patent Document 2, when the control packet is frequently transmitted, there is a problem that the processing capacity of the computer deteriorates due to the process of the control packet. Further, in the processing of Non-Patent Document 2, when the control packet transmission interval is widened, each operator waits for the control packet and executes the processing, which causes a problem that processing latency and memory cost increase. .
- an object of the present invention is to suppress an increase in processing latency and an increase in memory cost while maintaining processing consistency.
- a stream data processing apparatus comprising a processor and a memory, receiving stream data composed of input data including a time, and executing the processing of the stream data according to a pre-registered query
- the stream data processing device includes: a data input unit that receives a plurality of input data constituting the stream data; a first key that specifies, as a data set, items of the input data that process the input data in time order; , A definition of the stream data, a query registration unit that accepts the definition of the query and generates an operator that processes the input data, an operator that processes the input data for each data set, and determines the operator by the operator
- a data execution unit that outputs the result of processing the input data
- the stream data processing method includes: a data set in which the query registration unit receives the first key, the query definition, and the stream data definition, and processes the items in the input data in time order.
- the data input unit receives the input data, classifies the input data for each data set according to the item specified by the first key, and sets the data set.
- a third step of processing by the operator, and a fourth step of generating a result processed by the operator as a single output stream. Includes a step, a.
- FIG. 1 is a block diagram illustrating an example of a computer system according to a first embodiment of this invention. It is a block diagram which shows the 1st Embodiment of this invention and shows the input / output relationship of a stream data processing server.
- FIG. 3 is a detailed block diagram illustrating a data execution unit of the stream data processing server according to the first embodiment of this invention.
- FIG. 5 is an explanatory diagram illustrating an example of a stream definition according to the first embodiment of this invention. It is explanatory drawing which shows the 1st Embodiment of this invention and shows an example of query definition. It is explanatory drawing which shows the 1st Embodiment of this invention and shows an example of a data set key.
- FIG. 1 It is a block diagram which shows the 1st Embodiment of this invention and shows an example of the execution area A of a data execution part. It is a block diagram which shows the 1st Embodiment of this invention and shows an example of the execution area
- FIG. 1st Embodiment of this invention It is a block diagram which shows the 1st Embodiment of this invention and shows an example of the execution area A of a data execution part. It is a block diagram which shows the 1st Embodiment of this invention and shows an example of the execution area
- FIG. 5 is a first half of a flowchart illustrating an example of processing of a data input unit according to the first embodiment of this invention. It is a latter half part of the flowchart which shows the 1st Embodiment of this invention and shows an example of a process of a data input part.
- FIG. 5 is a first half of a flowchart illustrating an example of processing of a data execution unit according to the first embodiment of this invention. It is a latter half part of the flowchart which shows the 1st Embodiment of this invention and shows an example of a process of a data execution part.
- FIG. 2nd Embodiment of this invention It is a block diagram which shows the 2nd Embodiment of this invention and shows an example of the execution area A.
- FIG. It is a block diagram which shows the 2nd Embodiment of this invention and shows an example of the execution area
- FIG. It is a flowchart which shows the 2nd Embodiment of this invention and shows an example of a process of a query registration part. It is the first half of the flowchart which shows the 2nd Embodiment of this invention and shows an example of the process of a data execution part. It is a second half part of the flowchart which shows the 2nd Embodiment of this invention and shows an example of a process of a data execution part.
- FIG. 1 is a block diagram showing a configuration of a computer system according to the first embodiment of the present invention.
- the transmission servers 101 to 103 are connected via a network 104 to a stream data processing server 108 that executes a stream data processing system.
- the registration server 105 is connected to the stream data processing server 108 via the network 107.
- the receiving server 117 is connected to the stream data processing server 108 via the network 116.
- the networks 104, 107, and 116 may be Ethernet (registered trademark), a local area network (LAN) connected by an optical fiber, or a wide area network (WAN) including the Internet that is slower than the LAN.
- the stream data processing server 108, the transmission servers 101 to 103, the registration server 105, and the reception server 117 can be configured by an arbitrary computer system such as a personal computer (PC) or a blade type computer system.
- PC personal computer
- blade type computer system such as a blade type computer system.
- the stream data processing server 108 is a computer in which an I / O interface 115 constituting an interface unit, a central processing unit (CPU) 113 constituting a processing unit, and a memory 109 serving as a storage unit are coupled by a bus.
- I / O interface 115 constituting an interface unit
- CPU central processing unit
- memory 109 serving as a storage unit
- the stream data processing server 108 accesses the networks 104, 107 and 116 via the I / O interface 115.
- the storage device 114 is a storage unit. Can be used.
- the storage device 114 is directly connected via the I / O interface 115 or is connected via the network from the I / O interface 115.
- the memory 109 stores a query registration unit 111, a data input unit 110, and a data execution unit 112 as modules constituting stream data processing. The operation of each module will be described later.
- FIGS. 2A and 2B are block diagrams illustrating the configuration of the stream data processing server 108 according to the first embodiment.
- 2A is a block diagram of the computer system showing the input / output relationship of the stream data processing server 108.
- FIG. 2B is a detailed block diagram of the data execution unit 112 of the stream data processing server 108.
- the setting data including the stream and query definition 206 and the data set key 205 described by the user 204 is stored in the registration server 105 and transmitted from the registration server 105 to the stream data processing server 108. Then, after receiving the setting data, the stream data processing server 108 generates the data set conversion table 210 and the execution region name reference table 215 from the data set key 205 in the data set key reading unit 211 of the query registration unit 111. To do.
- the compiling unit 212 compiles the stream and query definition 206 to generate an execution tree 228.
- the transmission servers 101 to 103 continue to transmit the input data 201 to 203 to the stream data processing server 108. .
- the input data receiving unit 207 of the data input unit 110 receives the input data 201 to 203, and stores the received input data in the input data storage area 208.
- the input data storage area 208 includes a queue that temporarily holds the received input data 201 to 203.
- the partial time order sort processing unit 209 sorts the input data 201 to 203 stored in the input data storage area 208 partially in time order using the data set conversion table 210, and the sorted input data 213 is input stream. It stores in 214.
- the data input unit 110 outputs the input stream 214 to the data execution unit 112.
- the execution order determination unit 217 of the data execution unit 112 takes out the input data 213 stored in the input stream 214.
- the execution order determination unit 217 refers to the execution area name reference table 215, extracts the execution area name 216 if the execution areas 218 and 219 exist, and creates a new execution area if the execution area does not exist. Is generated.
- the execution areas 218 and 219 include a stream data storage queue 221, an ignition time reference table 222, and an execution state 223.
- the execution order determination unit 217 stores the input data 213 in the stream data storage queue 221 of the execution area 218 pointed to by the extracted execution area name 216, and uses the firing time reference table 222 of the execution area 218 to execute the execution data 224 and The execution operator 226 is extracted.
- the operator processing unit 227 of the data execution unit 112 executes predetermined processing using the execution data 224 extracted by the execution order determination unit 217 and the execution tree 228 from the execution operator 226.
- the operator processing unit 227 uses the execution state 223 of the execution area 218 pointed to by the execution area name 216 when executing the process.
- the output data 229 obtained by the execution of the operator processing unit 227 is stored in the output stream 231 by the data output unit 230.
- the reception server 117 receives the data stored in the output stream 231. Further, the input data receiving unit 207 receives the data stored in the output stream 231 when further operator processing is performed. Next, details of the operation of the first embodiment will be described.
- FIG. Reference numeral 301 shown in FIG. 3A is a definition of an electric meter stream in which “meter” of power, “power used”, and “installation location” of the meter are columns (or data items).
- This stream definition 301 is a definition for the stream data processing server 108 to identify a plurality of items included in the input data 201 to 203 constituting the stream data.
- the input data 201 to 203 includes time (or time stamp), in the present embodiment, it is assumed that time information is given to the input data 201 to 203. Was omitted.
- This query definition 302 shown in FIG. 3B is a definition of a used power totaling query that inputs the electric meter stream definition 301 and outputs the total used power every 10 minutes for each installation location.
- This query definition 302 is a definition for determining an operator who processes the input data 201 to 203.
- the data set key 205 includes an input stream data set key (first key) 304 and an input data data set key (second key) 303.
- first key an input stream data set key
- second key an input data data set key
- “meter” in the input data column is set as the input data data set key 303
- “installation location” is set in the input data column as the input stream data set key 304. An example is shown.
- the input data data set key 303 indicates that input data having the same specified column value is arranged in time order and input to the data input unit 110 of the stream data processing server 108. That is, the input data is input in a state of being arranged in order of time for each “meter”.
- the input stream data set key 304 indicates that input data having the same specified column value is treated as a group to be processed by a query, and is processed in time order in the input stream 214 of the data execution unit 112. That is, the input data is classified by “installation location” to form a data set, and the input data for each data set is processed in time order.
- the input stream data set key 304 indicates that the data execution unit 112 generates a number of execution areas corresponding to the type of “installation location” of the input data. In other words, a data set is configured for each type of “installation location” of the input data.
- the method for designating the input data set key 303 and the input stream data set key 304 may be described in a query, may be instructed via a setting file or the like, or may be another method. .
- FIG. 4 shows an example of the data set conversion table 210.
- the data set conversion table 210 is a table for setting the relationship between the input data set key 303 and the input stream data set key 304 set in FIG. 3C for the input data stored in the input data storage area 208. .
- FIG. 4 shows an example in which a meter is designated as the input data data set key 401 and an installation location is designated as the input stream data set key 402. From the setting of the data set key in FIG. It shows that “Tanaka family” (403), meter “meter 10” and installation location “Sato Building” (404), meter “meter 11” and installation location “Sato Building” (405) correspond to each other.
- FIG. 5 shows an example of the execution area name reference table 215.
- the execution area name reference table 215 shows the correspondence between the input stream data set key value 401 and the independent execution area name 502 that actually processes the input data.
- FIG. 5 shows an example in which the installation location is designated as the input stream data set key 402, as shown in FIG. 4, and the installation location “Tanaka family”, execution region name “execution region A” (503), installation This indicates that the place “Sato Building” and the execution area name “execution area B” (504) correspond to each other.
- FIG. 5 shows an example in which an independent execution area is generated for each input stream data set key 304 among the data set keys in FIG. 3C.
- the input data storage area 208 “Tanaka” and “Sato”
- the execution area name reference table 215 stores independent execution areas A and B (503, 504) for each input stream data set key value 402. Suggest to generate.
- FIG. 6 is a diagram illustrating an example of the execution tree 228.
- the execution tree of FIG. 6 represents the execution tree generated by the query registration unit 111 by compiling the query definition 302 for calculating the power consumption, and includes an operator RANGE 601, an operator GROUP BY 602, and an operator ISTREAM 603.
- the execution tree shown in FIG. 6 indicates that the operator processing unit 227 of the data execution unit 112 executes RANGE 601, GROUP BY 602, and ISTREAM 603 in this order.
- FIG. 7 is a diagram illustrating an example of input data transmitted by the transmission servers 101 to 103.
- FIG. 7 shows input data to the electric meter stream definition 301 shown in FIG. 3A.
- the stream data processing server 108 receives the input data 706, the input data 707, and the input data 708 in this order.
- the input data 706 includes the time “7:59”, the meter “meter 10”, and the power consumption “50 W / min”.
- the installation location“ Sato Building ” the input data 707 is the time“ 8:00 ”, the meter“ Meter 01 ”, the power consumption“ 100 W / min ”, the installation location“ Tanakaya ”, and the input data 708 is the time “7:59”, meter “meter 11”, power consumption “200 W / min”, and installation location “Sato Building”.
- FIG. 8 is a diagram illustrating an example of the input data storage area 208.
- the input data storage area 208 stores the input data received from the transmission servers 101 to 103 in the queues 805 to 807 for each input data data set key value 401 shown in FIG.
- FIG. 8 shows input data for storing “meter” among the input data of the electric meter stream definition 301 when “meter” is designated as the input data data set key value 401 as shown in FIG.
- a storage area 208 is shown.
- 805 is a queue for storing the input data 706 of “Meter 10” (802)
- 806 is a queue for storing the input data 707 of “Meter 01” (803)
- 807 is the queue of “Meter 11” (804).
- This is a queue for storing input data 708. That is, the data input unit 110 generates a queue for storing the input data for each input data data set key value 401 on the memory 109 and stores the input data 201 to 203 (706, 707, 708). .
- FIG. 9 is a diagram illustrating an example of the input stream 214.
- the input stream 214 stores input data for executing operator processing.
- 214 is an example of an input stream generated by the data input unit 110 in accordance with the definition (301) of the electric meter stream shown in FIG. 3A.
- FIG. 10A and FIG. 10B are diagrams showing examples of execution areas 218 and 219 of operator processing generated independently.
- the execution area is generated by the data execution unit 112 for each value 402 of the input stream data set key.
- the execution area A (218) is generated as the execution area of the installation location “Tanaka family” with the input stream data set key value 402.
- the input stream data set key value 402 is set to the installation location “ An example is shown in which execution area B (219) is generated as the execution area of “Sato Building”.
- stream data storage queues 1002, 1015 for storing the input stream 214 In each execution area 218, 219, stream data storage queues 1002, 1015 for storing the input stream 214, firing time reference tables 1004, 1017 in which the time for starting the operator processing for the input stream 214 is set, and the state of the operator Including execution states 1008 and 1021.
- the generic name of the execution states 1008 and 1021 is 223.
- the execution state 223 can store, for example, an operator processing result, and can represent the operator state by the stored value.
- Stream data storage queues 1000 and 1015 are queues that store input data 213 having the input stream data set key value 402 of the input stream 214. Note that a generic name of the stream data storage queues 1000 and 1015 is represented by reference numeral 221.
- the firing time reference tables 1004 and 1017 are the operators 1005 and 1018 that execute processing of the input data stored in the stream data storage queues 1002 and 1015, and the firing times 1006 and 1019 that are times when the operators are executed. Is stored.
- the firing time 1006 of the operator RANGE in the execution area A (218) is as shown in the power usage totalization query definition 302 of FIG. Since the counting period is a 10-minute window, the next firing time becomes “8:01” (1007) by “7: 51 + 10 minutes” obtained by adding 10 minutes to the previous execution time. Similarly, the firing time of the operator RANGE in the execution area B is the same as the 10 minutes window when the time of the oldest data in the operator RANGE is “7:50”. Becomes “8:00” (1029). These firing times can be set by the execution order determination unit 217.
- Execution states 1008 and 1021 indicate states used for processing of each operator in processing of input data stored in the stream data storage queues 1002 and 1015.
- the execution state A1 (1011) and the execution state B1 (1024), which are the execution states of the operator RANGE, are 10-minute windows. Therefore, input data at a time within 10 minutes from the current time is stored in each execution area. To do.
- the execution state A2 (1012) and execution state B2 (1025) indicating the execution state of the operator GROUP BY store the total value of input data at a time within 10 minutes from the current time.
- FIG. 11 shows an example of the execution data 224 and the execution operator 226.
- the execution data 224 is data executed by the operator processing unit 227
- the execution operator 226 is an operator that executes processing for the execution data 224 by the operator processing unit 227.
- 11 exemplifies the input data 706 shown in FIG. 7 as the execution data 224 and the operator RANGE 601 shown in FIG. 6 as the execution operator 226.
- FIG. 12 is a diagram illustrating an example of the output data 229 and the output stream 231.
- the output data is an operator processing result acquired by the receiving server 117 or the input data receiving unit 207.
- the output stream 231 is an area for storing output data.
- reference numeral 231 denotes an output stream for storing output data 1202 to 1204 of the power usage total query definition 302.
- the processing results of the input data 706, the input data 707, and the input data 708 are output data 1203, output data 1204, Output data 1202.
- the generic name of the output data 1202 to 1204 is represented by reference numeral 229 shown in FIG. 2B.
- FIG. 13 is a flowchart illustrating an example of processing of the query registration unit 111.
- the query registration unit 111 receives the stream definition 301 and query definition 302 defined by the registration server 105, compiles them, and processes the input data and the operator.
- Execution tree 228 (FIG. 6) is generated.
- the query registration unit 111 stores the generated execution tree 228 in the operator processing unit 227 (1307).
- the query registration unit 111 After compilation, the query registration unit 111 starts reading the data set key 205 in the data set key reading unit 211 (1301).
- the data set key reading unit 211 receives the input data set key 303 and the input stream data set key 304 constituting the data set key 205 from the registration server 105 (1302).
- the data set key reading unit 211 generates an execution area name reference table 215 (FIG. 5) indicating the correspondence between the received input stream data set key value 402 and the execution area name 502 (1303).
- the generated execution region name reference table 215 may include data such as the entries 503 and 504 illustrated in FIG. 5 or may be an empty table in which no data exists.
- the query registration unit 111 ends the data set key reading unit (1306).
- a data set conversion table 210 (FIG. 4) is generated (1305).
- the generated data set conversion table 210 may contain data such as entries 403 to 405 shown in FIG. 4, or may be an empty table in which no data exists. *
- the query registration unit 111 compiles the stream definition 301 and the query definition 302 defined by the registration server 105 to generate an operator and an execution tree 228, and the data from the data set key 205 defined by the registration server 105.
- a set conversion table 210 and an execution area name reference table 215 are generated. This process can be executed when the query registration unit 111 receives a stream and query definition 206 and a data set key 205 from the registration server 105.
- FIG. 14A and 14B are flowcharts showing an example of processing performed in the data input unit 110.
- FIG. In the data input unit 110 first, the input data receiving unit 207 (1401) receives the input data 201 to 203 from the transmission servers 101 to 103 (1402).
- the data input unit 110 determines whether or not the data set conversion table 210 exists (1403). When the data set conversion table does not exist, the data input unit 110 stores the input data 201 to 203 in the input stream 214 (1405), outputs the input stream 214 to the data execution unit 112, and then receives the input data reception unit. The process of 207 is terminated (1406).
- the data input unit 110 executes the following processing. First, the data input unit 110, when the input data data set key value 401 exists in the items of the input data 201 to 203 in the data set conversion table 210 (1404), the value 401 of the input data data set key 401 Accordingly, the input data is stored in the queue of the input data storage area 208 (1408), and the processing of the input data receiving unit 207 is ended (1409).
- FIG. 4 and FIG. 8 show the data set conversion table 210 and the input data storage area 208 when the input data 708 shown in FIG. 7 is received by the data input unit 110 (when it arrives).
- meter is designated as the input data set key, and the value of the meter 703 in the input data 708 shown in FIG. 7 is “meter 11”.
- the unit 110 creates a queue 807 in the input data storage area 208 and stores the input data 708.
- step 1404 if the data set key value 401 for the input data 201 to 203 does not exist in the data set conversion table 210, the input received by the data input unit 110 in the data set conversion table 210. A data set key value 401 for input data and a data set key value 402 for input stream are stored. Further, the data input unit 110 adds a queue corresponding to the input data data set key value 401 of the input data to the input data storage area 208 (1407).
- the data input unit 110 stores the input data in the queue of the input data storage area 208 in accordance with the input data data set key value 401 (1408), and ends the processing of the input data receiving unit 207 (1409).
- the input data receiving unit 207 stores the dummy data input data set key value 401 and the input stream data set key value 402 in the data set conversion table 210 in the same manner as the data input described above.
- a queue corresponding to the input data data set key value 401 for dummy data may be added to the storage area 208.
- input data data set key value 401, input stream data set key value 402, time and dummy data having an end flag can be input, and the following processing can be executed by the input data receiving unit 207.
- the input data receiving unit 207 reads an end flag.
- the data set conversion table 210 has a data set to which the input data extracted by the input data receiving unit 207 from the input data data set key value 401 of the dummy data belongs.
- the input data set key value 401 and the input stream data set key value 402 for the dummy data are deleted from the data set conversion table 210.
- the queue corresponding to the input data data set key value 401 of the dummy data is deleted from the input data storage area 208.
- the entry of the data set conversion table 210 and the queue of the input data storage area 208 can be deleted. Thereby, it is possible to prevent the amount of memory 109 used in the data input unit 110 from becoming excessive.
- the queue of the input data storage area 208 can be generated by the data input unit 110 in the order of arrival of data, as indicated by reference numerals 805 to 807 shown in FIG.
- the data input unit 110 generates a queue for each value of the input data data set key value 401 (“meter” in the present embodiment).
- the data input unit 110 stores a queue 805 that stores input data of “Meter 10”, a queue 806 that stores input data of “Meter 01”, and input data of “Meter 11”.
- generated the queue 807 is shown.
- input data is stored by being classified for each “meter” in the order of arrival at the data input unit 110. That is, the data input unit 110 classifies the input data for each item specified by the input data data set key value 401 and stores it in the queues 805 to 807.
- step 1404 if the data set conversion table 210 exists, the processing of the partial time order sort processing unit 209 is started (1410).
- the partial time order sort processing unit 209 first compares the time of the head data of the queue in which data having the same input stream data set key value 402 is stored in the input data storage area 208 (1411). In this process, the time (first time 702 in FIG. 7) of the first input data stored in the queue of the input data storage area 208 having different input data data set key values 401 and the same input stream data set key values 402 is partially stored. The target time order sort processing unit 209 performs comparison.
- the partial time order sort processing unit 209 stores the input data shown in FIG. 7 in the queues 805 to 807 of the input data storage area 208 and then sets the input stream data set key value 402 as the first key.
- Comparing time 702 of input data with the same “installation location” and different input data data set key value 401 “meter” as the second key.
- the partial time order sort processing unit 209 determines that the oldest data (hereinafter, the oldest data) among the input data having the same input stream data set key value 402 in the input data storage area 208 is obtained. It is determined whether or not there is data (1412).
- the oldest data is acquired from the queues 805 to 807 of the input data storage area 208 and stored in the input stream 214 (1413). Then, the processes of steps 1411 to 1413 are repeated as long as the oldest data exists. When the oldest data is exhausted, the process proceeds to step 1402 to receive new input data from the transmission server.
- FIG. 9 shows the input stream 214 after the input data 708 is received by the data input unit 110.
- the “installation location” of the meter is designated as the input stream data set key 304, and as shown in FIG. 8, the installation location of the meter of the input data 708 is “Sato Building”. Therefore, the times of the head data 706 and 708 in the queues 805 and 807 in which the input data whose installation location is “Sato Building” are stored are compared. Then, since there is no data in the queue 807 that is older than the data 706 in the queue 805, the oldest data is set as data 706 and stored in the input stream 214.
- the partial time order sort processing unit 209 sorts the input data 706 and 708 in which the input stream data set key value 402 is equal to “Sato Building” in order of oldest time. Is output to the data execution unit 112.
- the partial time order sort processing unit 209 has the same “installation location” designated by the input stream data set key value 402 as the first key from the input data of FIG. Input data with different “meters” specified by a certain input data data set key value 401 is sorted in order of oldest time 702 to generate an input stream 214, and the input stream 214 is output to the data execution unit 112. Therefore, the partial time order sort processing unit 209 outputs the input stream 214 in which the input data is grouped and sorted in order of time for each “installation location” specified by the input stream data set key value 402 as the first key. can do.
- FIG. 16A and 16B show time charts of the data input unit 110 and the data execution unit 112 when the input data 707 to 708 arrive at the stream data processing server 108.
- FIG. 16A and 16B show time charts of the data input unit 110 and the data execution unit 112 when the input data 707 to 708 arrive at the stream data processing server 108.
- the data input unit 110 stores the input data 706 and the input data 708 in the input stream 214 and outputs them to the data execution unit 112 as shown in FIG.
- the data set key value 402 of the input data 707 is “Tanaka family”, and the input data data set key value is other than “meter 01”. Since there is no input data for the meter, the input data 707 which is the oldest data in the data of “Meter 01” becomes the oldest data in the “Tanaka family”, so the input data 707 is input to the input stream 214. Store and output to the data execution unit 112.
- FIG. 15A and 15B are flowcharts showing an example of processing of the data execution unit 112.
- FIG. This process can be started when the input stream 214 is received from the data input unit 110.
- the execution order determination unit 217 acquires the input data 213 from the input stream 214 output from the data input unit 110. Then, the execution order determination unit 217 refers to the execution area name reference table 215 from the input stream data set key value 402 of the input data 213 and extracts the execution area name corresponding to the input stream data set key value 402. , It is set as the execution area of the data set to which the input data 213 belongs. At that time, the execution order determination unit 217 may check whether or not the input data 213 is arranged in time order in the same data set (input stream 214).
- the execution order determination unit 217 determines whether or not there is an execution region corresponding to the input stream data set key value 402 of the input data 213 in the execution region name reference table 215 (1503).
- the execution order determination unit 217 stores the input data in the stream data storage queue 221 of the execution area to which the input data 213 belongs (1505). .
- the execution order determination unit 217 determines that the input stream data set An execution area corresponding to the key value 402 is generated, and the input stream data set key value 402 and the generated execution area name are added to the execution area name reference table 215 (1504).
- the execution area generated by the execution order determination unit 217 is set as the execution area of the data set to which the input data 213 belongs, and the input data 213 is stored in the stream data storage queue 221 of the execution area (1505).
- the firing time reference table 222 for the execution area is an empty table such as 1007 where there is no entry.
- the execution state 223 of the execution area is also an empty area where no entry such as 1011 and 1012 exists.
- the operator processing unit 227 updates the firing time reference table 222 and the execution state 223.
- the input data 707 is stored in the stream data storage queue 1002 of the execution area A218 illustrated in FIG. 10A because the input stream data set key value 402 is “Tanaka family”.
- the input data 708 is stored in the stream data storage queue 1015 in the execution area B219 of FIG. 10B.
- the execution order determination unit 217 When the dummy data is input, the execution order determination unit 217 generates an execution area corresponding to the dummy data input stream data set key value 402, and the execution area name reference table 215 stores the dummy data input stream. The data set key value 402 and the generated execution area name may be added. Further, by inputting dummy data having an end flag, the following processing can be executed by the execution order determination unit 217. As an example of processing, the execution order determination unit 217 first reads an end flag. When the end flag is a predetermined value, if there is an execution area corresponding to the dummy data input stream data set key value 402, the execution area is deleted and the input stream name is read from the execution area name reference table 215. The data set key value 402 and the execution area name 502 are deleted.
- the execution order determination unit 217 refers to the stream data storage queue 221 in the execution area of the data set to which the input data 213 belongs, and the time of the top data (in the case of a query that processes data of a plurality of input streams, The time of the head data of the plurality of stream data storage queues) is compared with the firing time of each operator in the firing time reference table 222, and if the oldest data exists in the stream data storage queue 221 (1506), This data is assumed to be execution data.
- the execution order determination unit 217 also sets the first operator of the execution tree 228 as the execution operator when the execution data 224 is the head data of the stream data storage queue 221. If the current time is data corresponding to the ignition time of the operator, the execution order determining unit 217 sets the operator corresponding to the ignition time as the execution operator (1507), and the execution order determining unit 217 The process ends (1508).
- step 1506 if there is no data with the oldest time, the execution order determination unit 217 returns to the process of step 1502 again to acquire the next input data 213 from the input stream 214, and the same as above. Repeat the process.
- the execution order determination unit 217 stores the input data 706 in the stream data storage queue 1016 in the execution area B 219, the time “7:59” of the input data 706 and the firing time reference table 222 are stored.
- the execution order determination unit 217 compares the firing time “8:00” (1020) of the operator RANGE, and the time “7:59” of the input data 706 is old, so that the execution data 224 is set as the input data 706 and the execution tree 228
- the first operator 601 in FIG. 6 is commanded to the operator processing unit 227 as the execution operator 226.
- the operator processing unit 227 processes the execution data 224 with the execution operator 226 using the execution state 223 on the execution area corresponding to the input stream data set key value 402 of the execution data 224 (1509).
- the data execution unit 112 performs processing of the data output unit 230 that outputs the processing result of the execution operator 226 (1510).
- the data output unit 230 determines whether there is output data for the processing result of the execution operator 226 (1511). If there is no output data, the process proceeds to step 1513 and the process of the data output unit 230 is terminated. On the other hand, if the output data exists, the data output unit 230 performs Step 1512.
- the data output unit 230 When the processing result of the execution operator 226 is acquired as output data by the receiving server 117 or the input data receiving unit 207, the data output unit 230 outputs the output data 229 that is the processing result of the execution operator 226 for each execution region. Are merged into a single stream (1512). The data output unit 230 merges the plurality of output data 229 and outputs it as an output stream 231. When the processing of the data output unit 230 ends (1513), the data execution unit 112 resumes the processing of the execution order determination unit 217 (1514).
- step 1515 the execution order determination unit 217 determines whether or not the next operator exists in the execution tree 228 (1515). If the next operator exists in the execution tree 228, the process proceeds to step 1516. If the operator does not exist, the process returns to step 1506 to repeat the above processing. In step 1516, the execution order determination unit 217 determines the next operator of the execution tree 228 as the execution operator 226, returns to step 1508, and repeats the above processing.
- the data execution unit 112 sets the next operator as the execution operator 226 and uses the same data set as the execution data 224 that has been processed (data set key for input stream).
- the next data at the same time is the execution data 224, and the processing is continued using the execution state 223 on the execution area corresponding to the input stream data set key value 402 of the execution data 224.
- step 1515 if there is no next operator in the execution tree 228, the data execution unit 112 extracts executable data in step 1506 and processes it as described above. If the executable data cannot be extracted in 1506, the input data is acquired from the input stream in 1502, and the operation is performed as described above.
- the processing result 1603 is set as the execution data 224, and the next operator GROUP BY (602 ) Is executed as the execution operator 226.
- the data execution unit 112 further performs an operator process using the processing result 1604 of the operator GROUP BY (602) as the execution data 224, the next operator ISTREAM (603) as the execution operator 226, and the processing result 1203 to the receiving server 117. In order to transmit, it is stored in the output stream 231 as output data. Further, since there is no next operator in the execution tree 228 (FIG. 6), the operator processing is subsequently executed using the input data 708 as the execution data 224.
- the first embodiment described above is one implementation method of the present invention based on the operator scheduling disclosed in Patent Document 4, and there are various other implementation methods.
- the firing time reference tables 1004 and 1017 and the stream data storage queues 1002 and 1015 are divided for each input stream data set key value 402 without dividing the execution areas 218 and 219 for each input stream data set key value 402.
- the execution order determination unit 217 refers to the firing time reference table 222 and the stream data storage queue 221, and is common to the above-mentioned Patent Document 4, but the execution region name reference table 215 Unlike Patent Document 4, the configuration is unique to the present invention in that the execution region name 216 and the execution regions 218 and 219 are referred to.
- the data set key reading unit 211, the data set key 205, the partial time order sort processing unit 209, the data set conversion table 210, and the data output unit 230 are included. This is a configuration unique to the present invention.
- the stream data processing server 108 that processes the input data 201 to 203 including time (hereinafter simply referred to as input data) receives the data set key 205 and generates the data set conversion table 210.
- the data set conversion table 210 is input in the state of being arranged in time order with the input stream data set key 402 (first key) that defines the type (group) of input data processed in the same execution area.
- Input data data set key 401 (second key) defining two items of input data to be input.
- the query registration unit 111 receives the stream and query definition 206, generates an execution tree 228, and outputs the execution tree 228 to the data execution unit 112.
- the data input unit 110 of the stream data processing server 108 collects the input data for each input data data set key 401 and then sorts the input data in order of time for each input stream data set key 402 to generate the input stream 214.
- the data execution unit 112 sets execution areas 218 and 219 as areas for processing input data on the memory 109 for each input stream data set key 402 of the data set conversion table 210. In other words, an execution area is generated for each group (data set) of input data classified by the item of the input stream data set key 402.
- an operator corresponding to the input data is determined in the execution area for each type (data set) of the input data included in the input stream 214, a predetermined query process is performed by the operator, and the output stream 231. Is output.
- the input data 213 can be processed by the operator in the execution areas 218 and 219 on the memory 109 that are different for each input stream data set key value 402 as the first key. That is, only one input data having the same input stream data set key value 402, which is the first key, can be processed by the operator while maintaining the time order.
- the execution areas 218 and 219 of the data execution unit 112 can input the input data with different input stream data set key values 402 as the first key without waiting for the arrival of the input data delayed in time. Therefore, it is possible to suppress an increase in processing latency while maintaining processing consistency.
- the data input unit 110 accepts a plurality of input data from a plurality of transmission servers 101 to 103 by sorting the input data in time order for each data set before executing the query in the data execution unit 112. In the same way as the data set in one server, the execution order can be determined.
- the data execution unit 112 can dynamically generate an execution area on the memory 109 during stream data processing. In other words, even if the stream data processing is started, the stream data processing server 108 does not generate an execution area until the input data corresponding to the input stream data set key 402 is actually received. For this reason, since the stream data processing server 108 of the present invention secures only the execution area necessary for the stream data processing on the memory 109, it is possible to suppress an increase in memory cost as in the conventional example.
- FIG. 17A and 17B are block diagrams of the second embodiment.
- FIG. 17A is a block diagram of the computer system showing the input / output relationship of the stream data processing server 108.
- FIG. 17B is a detailed block diagram of the data execution unit 112 of the stream data processing server 108.
- the data set key reading unit 211 of the query registration unit 111 generates the executable data reference table 1701 from the data set key 205 and the execution tree 228 generated by the compiling unit 212.
- the data input unit 110 performs the same processing as in the first embodiment.
- the execution order determination unit 217 of the data execution unit 112 extracts the execution data 224 and the execution operator 226 using the executable data reference table 1701.
- the execution areas 218A and 219A differ from the first embodiment in that the firing time reference table is deleted.
- the operator processing unit 227 and the data output unit 230 of the data execution unit 112 perform processing in the same manner as in the first embodiment.
- symbol as FIG. 2A and FIG. 2B was attached
- FIG. 18 is an explanatory diagram showing an example of the executable data reference table 1701.
- the executable data reference table 1701 is generated by the query registration unit 111 and updated by the data execution unit 112.
- the executable data reference table 1701 indicates whether or not each operator of the execution tree 228 has executable data for each input stream data set key value 402.
- 19A and 19B are block diagrams illustrating an example of the execution areas 218A and 219A. Unlike the execution areas 218 and 219 of the first embodiment, the execution areas 218A and 219A in the second embodiment do not include the firing time reference tables 1004 and 1017, and the stream data storage queues 1002 and 1015 and the execution state 1008. , 1021.
- FIG. 20 is a flowchart illustrating an example of processing of the query registration unit 111. This flowchart is obtained by adding Step 2001 between Step 1303 and Step 1304 of the flowchart shown in FIG. 13 of the first embodiment, and other processes are the same as those in FIG. In addition, below, the overlapping description is abbreviate
- the executable data reference table 1701 is generated from each operator included in the list (2001).
- the generated executable data reference table 1701 may include data such as 1805 and 1806 shown in FIG. 18, or may be an empty table in which no data exists.
- Other processes at the time of query registration are the same as those in the first embodiment (1301 to 1307).
- the processing of the data input unit 110 is the same as in the first embodiment.
- FIGS. 21A and 21B are flowcharts showing an example of processing of the data execution unit 112.
- FIG. The processes in FIGS. 21A and 21B are processes performed by the data execution unit 112 in place of FIGS. 15A and 15B in the first embodiment.
- the stream data storage queue is executed according to the procedures 1502 to 1505 (similar to the first embodiment). Continue to store input data in.
- the execution order determination unit 217 determines that the input data 213 of the input stream 214 is input to the input stream data set key value 402 as in FIG. 15A of the first embodiment. Stored in the stream data storage queue 221 of each execution area 218A, 219A.
- FIG. 22A and 22B show time charts of the data input unit 110 and the data execution unit 112.
- the data execution unit 112 obtains input data 707, 706, and 708 continuously from the input stream 214 output from the data input unit 110 by the processing of the step 2101, unlike the first embodiment.
- 707 stores the stream data storage queue 1002 in the execution area A and the input data 706 and 708 in the stream data storage queue 1015 in the execution area B.
- the execution order determination unit 217 of the data execution unit 112 sets the first operator of the execution tree 228 as the execution operator 226 (2102 in FIG. 21A).
- the data execution unit 112 sets the time of the top data in the stream data storage queue 221 of the execution area of the data set to which the acquired input data 213 belongs (in the case of a query that processes data of a plurality of input streams, a plurality of stream data The time of the first data in the storage queues 1002 and 1015) is compared, and the stream data storage queue in which the data with the oldest time exists is selected. Then, the data execution unit 112 corresponds to the input data set (input stream data set key 402) in the executable data reference table 1701 (FIG. 18) for the input data 213 in the selected stream data storage queue. An “O” flag is added to the item of the execution operator, and the executable data reference table 1701 is updated.
- the execution order determination unit 217 extracts the input data 213 having the oldest time from the input data 213 of the stream data storage queues 1002 and 1015, and corresponds to the input data 213 and the execution tree 228.
- the entry of the executable data reference table 1701 is updated by writing a value indicating that it is executable (for example, “ ⁇ ”).
- the execution order determination unit 217 refers to the executable data reference table 1701 after the update, and in the execution operator 226, when there is executable data in any data set (2103 in FIG. 21B), Using the execution state 223 on the execution area of the data set, the execution data 224 is processed by the execution operator 226 (1509 in FIG. 21B).
- the execution order determination unit 217 resets by deleting the corresponding “ ⁇ ” flag in the executable data reference table (FIG. 18). (2106 in FIG. 21B).
- the execution order determination unit 217 processes the execution operator 226 and then acquires the processing result as output data in the reception server 117 or the input data reception unit 207 (1511), as in the first embodiment. Merge into a single stream (1512).
- the execution order determination unit 217 repeats the processing from step 2103 to step 1512 described above. If the execution data 224 is not obtained in step 2103, the execution order determination unit 217 sets the next operator of the execution tree 228 as the execution operator 226 (2104), and performs the process of step 2103. When the next operator no longer exists in the execution tree 228 in step 2104, the execution order determination unit 217 returns to the processing in step 1502, acquires the input data 213 from the input stream 214, and processes it in the same manner as described above.
- FIGS. 19A and 19B are stream data storage queues 221 (1002, 1016) in which input data 707, 706, and 708 are stored.
- the execution order determination unit 217 of the data execution unit 112 is the first operator of the execution tree 228 (FIG. 6) after storing the input data 213 in the stream data storage queue 221 as shown in FIGS. 22A and 22B.
- the operator RANGE 601 is determined as the execution operator 226.
- the execution order determination unit 217 refers to the executable data reference table 1701 (FIG. 18), and the data set “Sato Building” can be executed by the operator RANGE 601 (the flag “ ⁇ ” is stored).
- the execution data is assumed to be 706.
- the execution order determination unit 217 then processes the execution data 706 by the RANGE 601 that is the execution operator 226 in the execution area B, and then deletes the flag “ ⁇ ” of the operator RANGE of the data set “Sato Building” in the executable data reference table 1701. (Reset), set the flag “ ⁇ ” in the operator GROUP BY of the same data set, and update the executable data reference table 1701.
- the execution order determination unit 217 executes the data 708 of the data set “Sato Building” as execution data, and then executes the data 707 of the data set “Tanaka family”.
- the executable data reference table 1701 is updated in the same manner as described above.
- the execution order determination unit 217 finally processes the execution data 1604, 1606, and 1602 by the operator ISTREAM 603, and then outputs the processing results as output data 1203, 1202, and 1204, as in the first embodiment. Store in stream.
- the processing performed by the data execution unit 112 is the same operator as the execution operator 226 as long as there is execution data 224 of each operator in the round robin operator scheduling disclosed in Non-Patent Document 3. It is a technique to process. In addition to the above, there are a scheduling method in which the same operator is set as the execution operator 226 for a certain time or a certain number of times, and a scheduling method in which an operator having executable data is randomly executed as an execution operator. However, the present invention can be similarly realized.
- the execution order determination unit 217 refers to the stream data storage queue 221 in common with Non-Patent Document 3.
- the execution area name reference table 215, the execution area name 216, and the execution area 218 are used. 219, which differs from Non-Patent Document 3 in that it refers to the executable data reference table 1701.
- the stream data processing server 108 includes a data set key reading unit 211, a data set key 205, a partial time order sort processing unit 209, a data set conversion table 210, and a data output.
- the point including the portion 230 is a structural feature.
- FIG. 23A and 23B are block diagrams showing a computer system according to the third embodiment.
- FIG. 23A is a block diagram showing the input / output relationship of the stream data processing server 108.
- FIG. 23B is a detailed block diagram of the stream data processing server 108.
- the user 204 in the query registration unit 111, specifies the maximum processing data number 2301, and the specified maximum processing data number 2301 is stored in the registration server. The data is transmitted from 105 to the stream data processing server 108.
- the query registration unit 111 receives the data set key 205, the stream and query definition 206, and the maximum number of data sets 2301 from the registration server 105 in the stream and query replication unit 2302, and generates a plurality of streams and query definition 2303. .
- the compiling unit 212 generates a plurality of execution trees 228 from the plurality of streams and the query definition 2303, and transfers each execution tree 228 to the plurality of data execution units 112.
- 23A and 23B show an example in which the plurality of data execution units 112 are configured by three data execution units # 1 to # 3, but any number of data execution units 112 can be provided.
- the input data partially sorted in the time order by the partial time order sort processing unit 209 is converted according to the data set and stream correspondence table 2305. And stored in the input streams 214 of the plurality of data execution units 112, respectively.
- the plurality of data execution units (# 1 to # 3) 112 process the input stream 214 in the same manner as the conventional stream data processing system, store the output data 229 of the processing result in the output stream 231 and output it.
- the stream merge unit 2306 acquires the output data 229 from the output streams 231 of the plurality of data execution units 112 and stores them in the output queue 2307.
- the output data 229 stored in the output queue 2307 is transmitted to the receiving server 117 and the input data receiving unit 207.
- FIG. 24 shows an example of the maximum number of data sets 2301.
- the maximum data set number 2301 by the query registration unit 111 represents the number of values that can be set in the input stream data set key 402.
- reference numeral 2301 indicates that the maximum number of data sets is 3, and the input stream data set key is “installation location”, which indicates that the maximum number of installation locations is 3.
- the maximum number of data sets 2301 indicates the number of input streams 214 of the data execution unit 112.
- FIG. 25 shows an example of a correspondence table 2305 between the data set of the data input unit 110 and the stream.
- the data input unit 110 generates different input streams 214 corresponding to the plurality of data execution units # 1 to # 3 for each input stream data set key value, and stores the input data.
- a data set / stream correspondence table 2305 shows a correspondence relationship between the input stream data set key value 2501 and the input stream 2502 storing the input data having the input stream data set key value. For example, an entry 2503 in the figure indicates that input data whose input stream data set key value 2501 is “Tanakaya” is stored in the input stream “electric meter 1”.
- An entry 2504 indicates that input data whose input stream data set key value 2501 is “Sato Building” is stored in the input stream “electric meter 2”.
- An entry 2505 indicates that there is no input data to be stored in the input stream “electric meter 3”.
- the input stream “Electric meter 1” corresponds to the input stream 214 of the data execution unit # 1
- the input stream “Electric meter 2” corresponds to the input stream 214 of the data execution unit # 2
- the input stream “Electric meter 3” corresponds to the input stream 214 of the data execution unit # 3.
- FIG. 26 shows an example of the output queue 2307.
- the output queue 2307 is a queue that stores output data 229 to be transmitted to the receiving server 117 and the input data receiving unit 207.
- FIG. 26 shows an example in which output data 1202 to 1204 are stored in the output queue 2307.
- FIGS. 27A to 27F show an example of a duplicate stream and query definition 2303 of the query registration unit 111.
- the duplicate stream and query definition 2303 is a stream and query definition 206 (FIGS. 3A and 3B) specified by the user on the registration server 105, and the query definition is duplicated by the stream and query duplication unit 2302, and the stream after duplication Name, stream definition with changed query name, and query definition.
- 27A, 27C, and 27E show the electric meter 1 to 3 streams 2701, 2703, and 2705 of the data set and stream correspondence table 2305 shown in FIG. 25.
- the definition of each stream is a stream and query duplication unit 2302.
- the electric meter stream definition 301 of FIG. 3A is duplicated into three, and the stream names are changed respectively.
- FIG. 27B, FIG. 27D, and FIG. 27F show power usage 1 to 3 queries 2702, 2704, and 2706 corresponding to the electricity meter 1 to 3 streams, and the stream and query replication unit 2302 uses the usage shown in FIG. 3B.
- This is a query definition in which the power aggregation query definition 302 is duplicated into three and the query name is changed.
- FIG. 28 is a flowchart illustrating an example of processing of the query registration unit 111.
- the query registration unit 111 receives the data set key 205 from the registration server 105 by the data set key reading unit 211 (2801, 1302).
- the query registration unit 111 generates a data set & stream correspondence table 2305 from the input stream data set key 304 of the data set key 205 shown in FIG. 3C (2802).
- the generated data set & stream correspondence table 2305 may include data such as entries 2503 to 2505 in FIG. 25, or may be an empty table in which no data exists.
- the query registration part 111 produces
- the query registration unit 111 receives the stream and query definition 206 and the maximum number of data sets 2301 from the registration server 105 in the stream and query replication unit 2302, and defines The stream and the query are duplicated by the number corresponding to the value of the maximum data set number 2301, and the names are changed to generate a plurality of streams and the query definition 2303 (2804).
- the compiling unit 212 of the query registration unit 111 compiles the plurality of copied streams and the query definition 2303 to generate a plurality of execution trees 228 (2805).
- the generated plurality of execution trees 228 are stored in the operator processing unit 227 in the different data execution units # 1 to # 3.
- the query registration unit Reference numeral 111 denotes duplicate streams (electric meter 1 to 3 streams) 2701, 2703, and 2705 shown in FIGS. 27A, 27C, and 27E, and query definitions (used power aggregation 1 to 3 queries) shown in FIGS.
- 27B, 27D, and 27F. ) 2702, 2704, 2706 are generated.
- the compiling unit 212 generates three execution trees 228 (FIG. 6) from the duplicate stream and the query definitions 2701 to 2706.
- the generated execution trees 228 are output from the query registration unit 111 to the data execution units # 1 to # 3.
- FIG. 29 is a flowchart showing an example of processing of the data input unit 110.
- input data reception processing is performed using the data set conversion table 210, and an input stream data set key value 402 (FIG. 4). ), The input data is sorted in time order (1411). Then, after the partial time order sort processing unit 209 of the data input unit 110 finishes the partial time order sort processing (2902), the stream distribution processing unit 2304 starts processing (2903).
- the stream distribution processing unit 2304 extracts the input stream 2502 to which the data belongs by referring to the data set & stream correspondence table 2305 from the input stream data set key value 2501 of the input data with the oldest time (2905), The data is stored in the input stream 214 (2907).
- step 2905 when the input stream 2502 to which the data belongs is not extracted, the stream distribution processing unit 2304 stores the data set key value 2501 for the input stream of the data and the data set in the data set & stream correspondence table 2305.
- An unassigned input stream name 2502 is added (2906), and the data is stored in the input stream (2907).
- the input stream 2502 for each input stream data set key value 2501 is processed by a plurality of data execution units # 1 to # 3, and the processing result is stored in the output stream 231. .
- FIG. 31 shows a time chart of the data input unit 110, the data execution unit (# 1, # 2) 112, and the stream merge unit 2306.
- the data input unit 110 receives the input data 706 to 708, and inputs the input data 707 of the data set “Tanakaya” and the input data 706 and 708 of the data set “Sato Building” into a data set & stream correspondence table 2305 (FIG. 25) and stored in the input streams 2502 (214) of the independent data execution units # 1 and # 2.
- the output data 1204 and the output data 1203 and 1202 are stored in the output stream 231.
- FIG. 30 is a flowchart showing an example of processing of the stream merge unit 2306.
- the stream merge unit 2306 (3001) as long as output data exists in any one of the output streams 231 of the data execution units # 1 to # 3 (3002), the output data is sent to a single output queue 2307 regardless of the output stream. (3003).
- the processing results of the input data 706 to 708 are stored as output data 1202 to 1204 in the output queue 2307.
- the output data 1202 to 1204 stored in the output queue 2307 is transmitted to the reception server 117 at a predetermined timing (for example, a predetermined cycle).
- the third embodiment described above can achieve the same effects as the first embodiment without changing the conventional stream data processing engine (data execution units # 1 to # 3).
- the maximum number of data sets 2301 is not specified, and as the number of input stream data set key values 2501 increases during the execution of processing by the data execution units # 1 to # 3, the stream and query Duplicate definition. It is also possible to compile the copied stream and query and register the generated execution tree 228.
- the setting information such as the data set key 205 and the stream and query definition 206 is received from the registration server 105.
- the stream data processing server 108 is provided with an input device. The setting information may be received from the input device.
- the present invention can be applied to a computer system that performs stream data processing on input data including time.
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
図1は本発明の第一の実施形態における計算機システムの一構成を示すブロック図である。送信サーバ101~103はネットワーク104を介して、ストリームデータ処理システムを実行するストリームデータ処理サーバ108に接続されている。登録サーバ105はネットワーク107を介して、ストリームデータ処理サーバ108に接続されている。受信サーバ117はネットワーク116を介して、ストリームデータ処理サーバ108に接続されている。ネットワーク104、107、116は、イーサネット(登録商標)、光ファイバなどで接続されるローカルエリアネットワーク(LAN)、もしくはLANよりも低速なインターネットを含んだワイドエリアネットワーク(WAN)でも差し支えない。また、ストリームデータ処理サーバ108、送信サーバ101~103、登録サーバ105、受信サーバ117はパーソナルコンピュータ(PC)や、ブレード型の計算機システムなどの任意のコンピュータシステムで構成することができる。
続いて、第一実施形態の動作の詳細を説明する。
続いて本発明の第二実施形態について図面を用いて説明する。第二実施形態では、非特許文献3に開示されているラウンドロビンのオペレータスケジューリングを基にした、本発明の実現方法を示す。
実行順序決定部217では、以上のステップ2103からステップ1512の処理を繰り返す。そして実行順序決定部217は、ステップ2103において実行データ224が求められなかった場合には、実行木228の次のオペレータを実行オペレータ226として(2104)、上記ステップ2103の処理を行う。そして実行順序決定部217は、ステップ2104において実行木228に次のオペレータが存在しなくなったら、ステップ1502の処理に戻って入力ストリーム214から入力データ213を取得し、上記と同様に処理する。
続いて第三実施形態について図面を用いて説明する。第三実施形態は前記第一実施形態、第二実施形態とは異なり、ストリームデータ処理エンジン(本発明ではデータ実行部112に相当)を従来例から変更することなしに、同様の効果を実現する。
Claims (14)
- プロセッサとメモリを備えたストリームデータ処理装置で、時刻が含まれた入力データで構成されるストリームデータを受信し、予め登録されたクエリに従って前記ストリームデータの処理を実行するストリームデータ処理方法であって、
前記ストリームデータ処理装置は、
前記ストリームデータを構成する複数の入力データを受信するデータ入力部と、
前記入力データを時刻順に処理する前記入力データの項目をデータセットとして指定する第1のキーと、前記ストリームデータの定義と、前記クエリの定義を受け付けて前記入力データを処理するオペレータを生成するクエリ登録部と、
前記データセット毎に前記入力データを処理するオペレータを決定し、当該オペレータで前記入力データを処理した結果を出力するデータ実行部と、を有し、
前記ストリームデータ処理方法は、
前記クエリ登録部が、前記第1のキーとクエリの定義及びストリームデータの定義を受け付けて、前記入力データに含まれる項目のうち、時刻順に処理するデータセットを設定する第1のステップと、
前記データ入力部が、前記入力データを受信して、入力ストリームを生成する第2のステップと、
前記データ実行部が、前記入力ストリームを受け付けて、当該入力ストリームに含まれる入力データを、前記データセット毎に前記オペレータで処理する第3のステップと、
前記オペレータが処理した結果を単一の出力ストリームとして生成する第4のステップと、を含むことを特徴とするストリームデータ処理方法。 - 請求項1に記載のストリームデータ処理方法であって、
前記第3のステップは、
前記データ実行部が、前記第1のキーで指定された項目を用いて前記データセット毎に入力データを処理する実行領域を前記メモリ上に生成する第5のステップと、
前記データ実行部が、前記入力ストリームに含まれる入力データが属するデータセットを決定する第6のステップと、
前記データ実行部が、前記決定されたデータセットに対応する前記実行領域へ前記入力データを格納する第7のステップと、
前記データ実行部が、前記実行領域毎に前記オペレータで前記入力データを処理する第8のステップと、を含むことを特徴とするストリームデータ処理方法。 - 請求項2に記載のストリームデータ処理方法であって、
前記第5のステップは、
前記データ実行部が、前記データセットに対応する入力データを初めて受け付けたときに前記実行領域を前記メモリ上に生成することを特徴とするストリームデータ処理方法。 - 請求項2に記載のストリームデータ処理方法であって、
前記第8のステップは、
前記データ実行部が、前記入力データを処理する前記オペレータを前記実行領域に格納し、前記オペレータを実行する時刻を発火時刻として格納し、前記時刻が前記発火時刻となった入力データを実行し、前記オペレータの処理が終わった入力データと同一のデータセットかつ同一時刻に実行可能な次の入力データがある限り、当該オペレータで前記次の入力データを処理することを特徴とするストリームデータ処理方法。 - 請求項2に記載のストリームデータ処理方法であって、
前記第8のステップは、
前記データ実行部が、前記入力データとオペレータ毎に実行可能か否かを示す情報を格納する実行可能データ情報を設定する第9のステップと、
前記データ実行部が、前記実行可能データ情報を参照して実行可能な入力データとオペレータを決定する第10のステップと、
前記データ実行部が、前記実行した入力データとオペレータに対応する実行可能データ情報を更新する第11のステップと、
を含むことを特徴とするストリームデータ処理方法。 - 請求項1に記載のストリームデータ処理方法であって、
前記第1のステップは、
前記クエリ登録部が、前記データセットとして指定する第1のキーに加えて、前記入力データを時刻順にソートする前記入力データの項目を指定する第2のキーを受け付けて、
前記第2のステップは、
前記データ入力部が、前記第1のキーで指定された項目で、前記入力データを前記データセット毎に分類し、前記データセット毎に前記第2のキーに対応する入力データの項目を時刻順にソートして入力ストリームを生成する際に、前記第1のキーの値が同一の入力データのうち、前記第2のキーの値が異なる入力データを時刻順にソートすることを特徴とするストリームデータ処理方法。 - 請求項1に記載のストリームデータ処理方法であって、
前記第1のステップは、
前記クエリ登録部が、前記第1のキーとクエリの定義及びストリームデータの定義を受け付けて、前記ストリームデータの定義を複製して複数の入力ストリームを定義し、前記入力データに含まれる項目のうち、時刻順に処理するデータセットと複数の入力ストリームの関係を設定し、
前記第2のステップは、
前記データ入力部が、前記入力データを受信して、前記第1のキーで指定された項目で、前記入力データを前記データセット毎に分類し、前記データセット毎に前記入力データを時刻順にソートして前記データセットと複数の入力ストリームの関係から複数の入力ストリームを生成し、
前記第3のステップは、
前記データ実行部が、前記複数の入力ストリームをそれぞれ受け付けて、当該入力ストリームに含まれる入力データを、前記入力ストリーム毎に前記オペレータで処理し、
前記第4のステップは、
前記複数の入力ストリームをオペレータが処理した結果を単一のキューに出力して出力ストリームを生成することを特徴とするストリームデータ処理方法。 - プロセッサとメモリを備えて、時刻が含まれた入力データで構成されるストリームデータを受信し、予め登録されたクエリに従って前記ストリームデータの処理を実行するストリームデータ処理装置であって、
前記ストリームデータを構成する複数の入力データを受信するデータ入力部と、
前記入力データを時刻順に処理する前記入力データの項目をデータセットとして指定する第1のキーと、前記ストリームデータの定義と、前記クエリの定義を受け付けて前記入力データを処理するオペレータを生成するクエリ登録部と、
前記データセット毎に前記入力データを処理するオペレータを決定し、当該オペレータで前記入力データを処理した結果を出力するデータ実行部と、を有し、
前記クエリ登録部は、
前記第1のキーとクエリの定義及びストリームデータの定義を受け付けて、前記入力データに含まれる項目のうち、時刻順に処理するデータセットを設定し、
前記データ入力部は、
前記入力データを受信して、入力ストリームを生成し、
前記データ実行部は、
前記入力ストリームを受け付けて、当該入力ストリームに含まれる入力データを、前記データセット毎に前記オペレータで処し、前記オペレータが処理した結果を単一の出力ストリームとして生成することを特徴とするストリームデータ処理装置。 - 請求項8に記載のストリームデータ処理装置であって、
前記データ実行部は、前記第1のキーで指定された項目を用いて前記データセット毎に入力データを処理する実行領域を前記メモリ上に生成し、前記入力ストリームに含まれる入力データが属するデータセットを決定し、前記決定されたデータセットに対応する前記実行領域へ前記入力データを格納し、前記実行領域毎に前記オペレータで前記入力データを処理することを特徴とするストリームデータ処理装置。 - 請求項9に記載のストリームデータ処理装置であって、
前記データ実行部は、前記データセットに対応する入力データを初めて受け付けたときに前記実行領域を前記メモリ上に生成することを特徴とするストリームデータ処理装置。 - 請求項9に記載のストリームデータ処理装置であって、
前記データ実行部は、前記入力データを処理する前記オペレータを前記実行領域に格納し、前記オペレータを実行する時刻を発火時刻として格納し、前記時刻が前記発火時刻となった入力データを実行し、前記オペレータの処理が終わった入力データと同一のデータセットかつ同一時刻に実行可能な次の入力データがある限り、当該オペレータで前記次の入力データを処理することを特徴とするストリームデータ処理装置。 - 請求項9に記載のストリームデータ処理装置であって、
前記データ実行部は、前記入力データとオペレータ毎に実行可能か否かを示す情報を格納する実行可能データ情報を設定し、前記実行可能データ情報を参照して実行可能な入力データとオペレータを決定し、前記実行した入力データとオペレータに対応する実行可能データ情報を更新することを特徴とするストリームデータ処理装置。 - 請求項8に記載のストリームデータ処理装置であって、
前記クエリ登録部は、前記データセットとして指定する第1のキーに加えて、前記入力データを時刻順にソートする前記入力データの項目を指定する第2のキーを受け付け、
前記データ入力部は、前記第1のキーで指定された項目で、前記入力データを前記データセット毎に分類し、前記データセット毎に前記第2のキーに対応する入力データの項目を時刻順にソートして入力ストリームを生成する際に、前記第1のキーの値が同一の入力データのうち、前記第2のキーの値が異なる入力データを時刻順にソートすることを特徴とするストリームデータ処理装置。 - 請求項8に記載のストリームデータ処理装置であって、
前記クエリ登録部は、前記第1のキーとクエリの定義及びストリームデータの定義を受け付けて、前記ストリームデータの定義を複製して複数の入力ストリームを定義し、前記入力データに含まれる項目のうち、時刻順に処理するデータセットと複数の入力ストリームの関係を設定し、
前記データ入力部は、前記入力データを受信して、前記第1のキーで指定された項目で、前記入力データを前記データセット毎に分類し、前記データセット毎に前記入力データを時刻順にソートして前記データセットと複数の入力ストリームの関係から複数の入力ストリームを生成し、
前記データ実行部は、前記複数の入力ストリームをそれぞれ受け付けて、当該入力ストリームに含まれる入力データを、前記入力ストリーム毎に前記オペレータで処理し、前記複数の入力ストリームをオペレータが処理した結果を単一のキューに出力して出力ストリームを生成することを特徴とするストリームデータ処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012537519A JP5480395B2 (ja) | 2010-10-06 | 2010-10-06 | ストリームデータ処理方法及び装置 |
PCT/JP2010/067587 WO2012046316A1 (ja) | 2010-10-06 | 2010-10-06 | ストリームデータ処理方法及び装置 |
US13/824,873 US20130226909A1 (en) | 2010-10-06 | 2010-10-06 | Stream Data Processing Method and Device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/067587 WO2012046316A1 (ja) | 2010-10-06 | 2010-10-06 | ストリームデータ処理方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012046316A1 true WO2012046316A1 (ja) | 2012-04-12 |
Family
ID=45927332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/067587 WO2012046316A1 (ja) | 2010-10-06 | 2010-10-06 | ストリームデータ処理方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130226909A1 (ja) |
JP (1) | JP5480395B2 (ja) |
WO (1) | WO2012046316A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014041673A1 (ja) * | 2012-09-14 | 2014-03-20 | 株式会社日立製作所 | ストリームデータ多重処理方法 |
WO2016067335A1 (ja) * | 2014-10-27 | 2016-05-06 | 株式会社日立製作所 | ストリームデータの処理方法及びストリームデータ処理装置 |
JPWO2014163072A1 (ja) * | 2013-04-01 | 2017-02-16 | 日本電気株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2017514216A (ja) * | 2014-03-31 | 2017-06-01 | 華為技術有限公司Huawei Technologies Co.,Ltd. | イベント処理システム |
JP2017535012A (ja) * | 2014-10-08 | 2017-11-24 | シグナルエフエックス インコーポレイテッド | ソフトウェアの計測に基づいたリアルタイム報告 |
JP2019521421A (ja) * | 2016-05-24 | 2019-07-25 | アビニシオ テクノロジー エルエルシー | ネットワーク内のキー付きデータを処理するための実行可能ロジック |
JP2020074157A (ja) * | 2014-12-19 | 2020-05-14 | シグナルエフエックス インコーポレイテッド | 計測手段が組み込まれたソフトウェアを分析するためのデータストリーム処理言語 |
US11010278B2 (en) | 2014-10-08 | 2021-05-18 | Splunk Inc. | Real-time reporting based on instrumentation of software |
US11194697B2 (en) | 2015-01-29 | 2021-12-07 | Splunk Inc. | Real-time processing of data streams received from instrumented software |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10579603B2 (en) | 2015-04-17 | 2020-03-03 | International Business Machines Corporation | Removing sets of tuples in a streaming environment |
US10073877B2 (en) | 2015-06-11 | 2018-09-11 | International Business Machines Corporation | Data processing flow optimization |
CN107589907B (zh) * | 2017-08-10 | 2019-12-13 | 深圳壹账通智能科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
CN107590023B (zh) * | 2017-08-10 | 2020-10-02 | 深圳壹账通智能科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
US11409701B2 (en) * | 2019-08-07 | 2022-08-09 | Sap Se | Efficiently processing configurable criteria |
US12001427B2 (en) * | 2020-12-28 | 2024-06-04 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for acceleration of merge join operations |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010108044A (ja) * | 2008-10-28 | 2010-05-13 | Hitachi Ltd | ストリームデータ処理プログラム及び計算機システム |
JP2010108152A (ja) * | 2008-10-29 | 2010-05-13 | Hitachi Ltd | ストリームデータ処理方法、及びそのシステム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8396886B1 (en) * | 2005-02-03 | 2013-03-12 | Sybase Inc. | Continuous processing language for real-time data streams |
US7673065B2 (en) * | 2007-10-20 | 2010-03-02 | Oracle International Corporation | Support for sharing computation between aggregations in a data stream management system |
-
2010
- 2010-10-06 US US13/824,873 patent/US20130226909A1/en not_active Abandoned
- 2010-10-06 JP JP2012537519A patent/JP5480395B2/ja not_active Expired - Fee Related
- 2010-10-06 WO PCT/JP2010/067587 patent/WO2012046316A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010108044A (ja) * | 2008-10-28 | 2010-05-13 | Hitachi Ltd | ストリームデータ処理プログラム及び計算機システム |
JP2010108152A (ja) * | 2008-10-29 | 2010-05-13 | Hitachi Ltd | ストリームデータ処理方法、及びそのシステム |
Non-Patent Citations (1)
Title |
---|
SATOSHI KATSUNUMA ET AL.: "Stream Data Shori no Bunsan Heiretsuka Jikko ni Okeru Merge Shori Cost Sakugen Hoshiki", THE SECOND FORUM ON DATA ENGINEERING AND INFORMATION MANAGEMENT RONBUNSHU, 25 May 2010 (2010-05-25), pages 1 - 8, Retrieved from the Internet <URL:http://db-event.jpn.org/deim2010/proceedings/files/B3-3.pdf> [retrieved on 20101026] * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798830B2 (en) | 2012-09-14 | 2017-10-24 | Hitachi, Ltd. | Stream data multiprocessing method |
JP5887418B2 (ja) * | 2012-09-14 | 2016-03-16 | 株式会社日立製作所 | ストリームデータ多重処理方法 |
WO2014041673A1 (ja) * | 2012-09-14 | 2014-03-20 | 株式会社日立製作所 | ストリームデータ多重処理方法 |
JPWO2014163072A1 (ja) * | 2013-04-01 | 2017-02-16 | 日本電気株式会社 | 情報処理装置、情報処理方法およびプログラム |
US11138177B2 (en) | 2014-03-31 | 2021-10-05 | Huawei Technologies Co., Ltd. | Event processing system |
JP2017514216A (ja) * | 2014-03-31 | 2017-06-01 | 華為技術有限公司Huawei Technologies Co.,Ltd. | イベント処理システム |
US11010278B2 (en) | 2014-10-08 | 2021-05-18 | Splunk Inc. | Real-time reporting based on instrumentation of software |
JP7065916B2 (ja) | 2014-10-08 | 2022-05-12 | スプランク インコーポレイテッド | ソフトウェアの計測に基づいたリアルタイム報告 |
JP2020187798A (ja) * | 2014-10-08 | 2020-11-19 | スプランク インコーポレイテッド | ソフトウェアの計測に基づいたリアルタイム報告 |
JP2017535012A (ja) * | 2014-10-08 | 2017-11-24 | シグナルエフエックス インコーポレイテッド | ソフトウェアの計測に基づいたリアルタイム報告 |
JP7023113B2 (ja) | 2014-10-08 | 2022-02-21 | スプランク インコーポレイテッド | ソフトウェアの計測に基づいたリアルタイム報告 |
JPWO2016067335A1 (ja) * | 2014-10-27 | 2017-04-27 | 株式会社日立製作所 | ストリームデータの処理方法及びストリームデータ処理装置 |
WO2016067335A1 (ja) * | 2014-10-27 | 2016-05-06 | 株式会社日立製作所 | ストリームデータの処理方法及びストリームデータ処理装置 |
US12039307B1 (en) | 2014-12-19 | 2024-07-16 | Splunk Inc. | Dynamically changing input data streams processed by data stream language programs |
JP2020074157A (ja) * | 2014-12-19 | 2020-05-14 | シグナルエフエックス インコーポレイテッド | 計測手段が組み込まれたソフトウェアを分析するためのデータストリーム処理言語 |
US10949180B2 (en) | 2014-12-19 | 2021-03-16 | Splunk Inc. | Dynamically changing input data streams processed by 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 |
US11709661B2 (en) | 2014-12-19 | 2023-07-25 | Splunk Inc. | Representing result data streams based on execution of 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 |
JP7163435B2 (ja) | 2016-05-24 | 2022-10-31 | アビニシオ テクノロジー エルエルシー | ネットワーク内のキー付きデータを処理するための実行可能ロジック |
US11295049B2 (en) | 2016-05-24 | 2022-04-05 | Ab Initio Technology Llc | Executable logic for processing keyed data in networks |
JP2021106000A (ja) * | 2016-05-24 | 2021-07-26 | アビニシオ テクノロジー エルエルシー | ネットワーク内のキー付きデータを処理するための実行可能ロジック |
JP2019521421A (ja) * | 2016-05-24 | 2019-07-25 | アビニシオ テクノロジー エルエルシー | ネットワーク内のキー付きデータを処理するための実行可能ロジック |
Also Published As
Publication number | Publication date |
---|---|
JP5480395B2 (ja) | 2014-04-23 |
US20130226909A1 (en) | 2013-08-29 |
JPWO2012046316A1 (ja) | 2014-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5480395B2 (ja) | ストリームデータ処理方法及び装置 | |
JP5395565B2 (ja) | ストリームデータ処理方法及び装置 | |
He et al. | Comet: batched stream processing for data intensive distributed computing | |
JP5377897B2 (ja) | ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム | |
Yang et al. | Huge: An efficient and scalable subgraph enumeration system | |
US9426211B2 (en) | Scaling event processing in a network environment | |
US20160098450A1 (en) | Querying input data | |
Margara et al. | High-performance publish-subscribe matching using parallel hardware | |
CN105138679B (zh) | 一种基于分布式缓存的数据处理系统及处理方法 | |
US9990403B2 (en) | System and a method for reasoning and running continuous queries over data streams | |
WO2012137347A1 (ja) | 計算機システム及び並列分散処理方法 | |
CN114756629A (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
JP2013058108A (ja) | タグ管理装置およびタグ管理プログラム | |
Lv et al. | An effective framework for asynchronous incremental graph processing | |
Zhang et al. | Egraph: efficient concurrent GPU-based dynamic graph processing | |
US10599472B2 (en) | Information processing apparatus, stage-out processing method and recording medium recording job management program | |
Chen et al. | Pisces: optimizing multi-job application execution in mapreduce | |
Aziz et al. | An efficient data access approach with queue and stack in optimized hybrid join | |
Yan et al. | Efficient processing of very large graphs in a small cluster | |
Nykiel et al. | Sharing across multiple MapReduce jobs | |
CN114116015B (zh) | 用于管理硬件命令队列的方法及系统 | |
Farag et al. | Adaptive query processing in data stream management systems under limited memory resources | |
US9172595B2 (en) | Systems and methods of packet object database management | |
Wang et al. | OPTAS: Optimal data placement in MapReduce |
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: 10858124 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2012537519 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13824873 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10858124 Country of ref document: EP Kind code of ref document: A1 |