Support for user defined aggregations in a data stream management system
First Claim
1. A data stream management system that processes a plurality of streams of data using a plurality of continuous queries, the data stream management system comprising:
- a store comprising a plurality of tuples representing a relation, each tuple being time stamped;
a memory comprising a global plan currently being used in execution of the continuous queries on the plurality of streams;
a processor, coupled to said store, to modify said global plan in said memory in response to receipt of a new continuous query that uses a new aggregation defined by a command, by using an operator to invoke a first instance in a plurality of instances of the new aggregation based on a first value of an attribute of said data;
wherein said new aggregation groups data in said streams by said attribute;
wherein the processor is configured to execute an instruction in the operator, to perform the new aggregation;
wherein a first count corresponds to said first value of said attribute and said first count is changed for data of said first value by the processor;
wherein the processor is configured to create the first instance when the first count is changed from an initial value; and
wherein the processor is configured to delete the first instance when the first count is changed to return to said initial value.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer is programmed to accept a command to create a new aggregation defined by a user during execution of continuous queries on streams of data. The computer is further programmed to thereafter accept and process new continuous queries using the new aggregation, in a manner similar to built-in aggregations. The user typically writes a set of instructions to perform the new aggregation, and identifies in the command, a location of the set of instructions. In response to such a command, the computer creates metadata identifying the new aggregation. The metadata is used to instantiate one aggregation for each group of data in a current window, grouped by an attribute identified in a new query.
-
Citations
20 Claims
-
1. A data stream management system that processes a plurality of streams of data using a plurality of continuous queries, the data stream management system comprising:
-
a store comprising a plurality of tuples representing a relation, each tuple being time stamped; a memory comprising a global plan currently being used in execution of the continuous queries on the plurality of streams; a processor, coupled to said store, to modify said global plan in said memory in response to receipt of a new continuous query that uses a new aggregation defined by a command, by using an operator to invoke a first instance in a plurality of instances of the new aggregation based on a first value of an attribute of said data; wherein said new aggregation groups data in said streams by said attribute; wherein the processor is configured to execute an instruction in the operator, to perform the new aggregation; wherein a first count corresponds to said first value of said attribute and said first count is changed for data of said first value by the processor; wherein the processor is configured to create the first instance when the first count is changed from an initial value; and wherein the processor is configured to delete the first instance when the first count is changed to return to said initial value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more non-transitory computer-readable storage media comprising software including instructions to process a plurality of streams of data, the instructions comprising:
-
instructions to store in a store a plurality of tuples representing a relation, each tuple being time stamped; instructions to use a global plan in a memory to execute a plurality of continuous queries on the plurality of streams; instructions responsive to receipt of a new continuous query that uses a new aggregation defined by a user command, to modify in said memory said global plan currently being used in execution of the continuous queries, by using an operator to invoke a first instance in a plurality of instances of the new aggregation based on a first value of an attribute of said data; wherein on execution of said instructions to modify, said new aggregation groups data in said streams by said attribute; instructions to perform the new aggregation when using said operator; wherein a first count corresponds to said first value of said attribute and said first count is changed for data of said first value by execution of the instructions to perform; instructions to create the first instance when the first count is changed from an initial value; and instructions to delete the first instance when the first count is changed to return to said initial value. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method implemented in a computer of processing a plurality of streams of data, the method comprising:
-
storing in a store a plurality of tuples representing a relation, each tuple being time stamped; using a global plan in a memory to execute a plurality of continuous queries on the plurality of streams; in response to receipt of a new continuous query that uses a new aggregation defined by a command, modifying in said memory said global plan currently being used in execution of the continuous queries, by using an operator to invoke a first instance in a plurality of instances of the new aggregation based on a first value of an attribute of said data; wherein said new aggregation groups data in said streams by said attribute; executing at least one instruction in the operator, to perform the new aggregation; wherein a first count corresponds to said first value of said attribute and said first count is changed for data of said first value by said executing; creating the first instance when the first count is changed from an initial value; and deleting the first instance when the first count is changed to return to said initial value. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification