Analytical data processing engine
First Claim
Patent Images
1. A method comprising:
- under control of one or more computing devices;
receiving a real-time or near real-time query for a stream of incoming data events;
annotating each individual data event of the incoming data events with a first timestamp and a second timestamp, wherein;
the first timestamp identifies when the individual data event is received; and
the second timestamp identifies additional information associated with the individual data event;
organizing the stream of the incoming data events into a sequence of data batches based at least in part on the first timestamp of each individual data event of the incoming data events, wherein individual data batches, of the sequence of data batches, include multiple data events; and
processing the individual data batches of the sequence of data batches in a non-decreasing time order, wherein each individual data batch stores;
a key array that includes an array of grouping key values, the grouping key values representing a logic group of a data event, andcontrol parameters that include;
a synctime array that includes synctime values of at least some events in an individual data batch, andan othertime array that includes othertime values that indicate known future times that individual ones of the events in the individual data batch are expected to end;
based on at least one of the key array, the synctime array, and the othertime array, presenting a result comprising one or more values from the stream of incoming data events in response to the received real-time or near real-time query.
2 Assignments
0 Petitions
Accused Products
Abstract
Some examples include high-performance query processing of real-time and offline temporal-relational data. Further, some implementations include processing streaming data events by annotating individual events with a first timestamp (e.g., a “sync-time”) and second timestamp that may identify additional event information. The stream of incoming data events may be organized into a sequence of data batches that each include multiple data events. The individual data batches in the sequence may be processed in a non-decreasing “sync-time” order.
-
Citations
20 Claims
-
1. A method comprising:
-
under control of one or more computing devices; receiving a real-time or near real-time query for a stream of incoming data events; annotating each individual data event of the incoming data events with a first timestamp and a second timestamp, wherein; the first timestamp identifies when the individual data event is received; and the second timestamp identifies additional information associated with the individual data event; organizing the stream of the incoming data events into a sequence of data batches based at least in part on the first timestamp of each individual data event of the incoming data events, wherein individual data batches, of the sequence of data batches, include multiple data events; and processing the individual data batches of the sequence of data batches in a non-decreasing time order, wherein each individual data batch stores; a key array that includes an array of grouping key values, the grouping key values representing a logic group of a data event, and control parameters that include; a synctime array that includes synctime values of at least some events in an individual data batch, and an othertime array that includes othertime values that indicate known future times that individual ones of the events in the individual data batch are expected to end; based on at least one of the key array, the synctime array, and the othertime array, presenting a result comprising one or more values from the stream of incoming data events in response to the received real-time or near real-time query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing system comprising:
-
one or more processors; one or more computer readable media maintaining instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising; receiving a real-time or near real-time query for a stream of incoming data events; annotating each individual data event of the incoming data events with a first timestamp and a second timestamp, wherein; the first timestamp identifies when the individual data event is received; and the second timestamp identifies additional information associated with the individual data event; organizing the stream of the incoming data events into a sequence of data batches based at least in part on the first timestamp of each individual data event of the incoming data events, wherein individual data batches store a key array that includes an array of grouping key values, the grouping key values representing a logic group of a data event; processing the individual data batches in the sequence of data batches in a non-decreasing time order, wherein each individual data batch stores; a key array that includes an array of grouping key values, the grouping key values representing a logic group of a data event, and control parameters that include; a synctime array that includes synctime values of at least some events in an individual data batch, and an othertime array that includes othertime values that indicate known future times that individual ones of the events in the individual data batch are expected to end; and based on at least one of the key array, the synctime array, or the othertime array, presenting a result comprising one or more values from the stream of incoming data events in response to the received real-time or near real-time query. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. One or more computer-readable media maintaining instructions that, when executed by one or more processors, cause the one or more processors to perform acts comprising:
-
receiving a real-time or near real-time query for a stream of incoming data events;
'"'"'annotating each individual data event of the stream of the incoming data events with a first timestamp and a second timestamp, wherein; the first timestamp identifies when the individual data event is received; and the second timestamp identifies additional information associated with the individual data event; organizing the stream of the incoming data events into a sequence of data batches based at least in part on the first timestamp of each individual data event of the incoming data events, wherein individual data batches include multiple data events, and wherein the individual data batches store; a bitvector that includes an occupancy vector representing an array with one bit; a key array that includes an array of grouping key values, the grouping key values representing a logic group of a data event; and a hash array that includes an array of hash values; processing the individual data batches in the sequence of data batches in a non-decreasing time order, wherein a logical result of the processing is unaffected by the organizing and wherein an amount of time required to output the logical result is affected by the organizing; and based on at least one of the key array, the bitvector, or the hash array, presenting a result comprising one or more values from the stream of incoming data events in response to the received real-time or near real-time query. - View Dependent Claims (19, 20)
-
Specification