System for storage, querying, and analysis of time series data
First Claim
1. A system for time series data storage, querying and analysis, comprising at least one computing device to execute the function of:
- a data generator that produces time stamped data associated with the behavior of a plurality of assets;
an ingester configured to receive the time stamped data from the data generator, wherein the ingester configured to read the received time stamped data and to create a data block and an index associated with the received time stamped data;
an index database configured to receive and store the index received from the ingester;
a time series database configured to receive the data blocks from the ingester, wherein the time series database storing the data blocks across a plurality of computing devices, and;
a query layer configured to;
receive a query that specifies criteria defining a set of data retrieved from the system and an analysis performed on that data;
request from the index database the indices associated with the data blocks stored in the time series database needed to evaluate the query;
prepare a sub-query that produces appropriate data matching the criteria, the sub-query including the criteria and a logical operation performed on data matching the criteria; and
send the sub-query to each of the computing devices that corresponds to the data blocks identified in the request from the index database;
an evaluator running on each of the plurality of computing devices, the evaluator configured to;
receive the sub-query from the query layer to evaluate the criteria specified in the sub-query with respect to the data blocks stored on the same computing device as the evaluator to select a subset of data; and
perform the logical operation specified in the sub-query on the subset of data to produce a sub-result; and
an output handler configured to receive the sub-results produced in response to each sub-query and combine them into a query result.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for storing time series data includes an ingester that prepares metadata indices associated with blocks of incoming time series data and stores the blocks of data in a time series database and the indices in a separate index database. The time series database distributes storage of the data blocks among multiple data nodes. A query layer receives queries and uses the index database to determine which data blocks are needed to process the query, and then requests only those data blocks from the time series database. Processing of the query is performed within the time series database only on those data nodes that contain relevant data, and partial results are passed to an output layer for formation into a final query result.
30 Citations
19 Claims
-
1. A system for time series data storage, querying and analysis, comprising at least one computing device to execute the function of:
-
a data generator that produces time stamped data associated with the behavior of a plurality of assets; an ingester configured to receive the time stamped data from the data generator, wherein the ingester configured to read the received time stamped data and to create a data block and an index associated with the received time stamped data; an index database configured to receive and store the index received from the ingester; a time series database configured to receive the data blocks from the ingester, wherein the time series database storing the data blocks across a plurality of computing devices, and; a query layer configured to; receive a query that specifies criteria defining a set of data retrieved from the system and an analysis performed on that data; request from the index database the indices associated with the data blocks stored in the time series database needed to evaluate the query; prepare a sub-query that produces appropriate data matching the criteria, the sub-query including the criteria and a logical operation performed on data matching the criteria; and send the sub-query to each of the computing devices that corresponds to the data blocks identified in the request from the index database; an evaluator running on each of the plurality of computing devices, the evaluator configured to; receive the sub-query from the query layer to evaluate the criteria specified in the sub-query with respect to the data blocks stored on the same computing device as the evaluator to select a subset of data; and perform the logical operation specified in the sub-query on the subset of data to produce a sub-result; and an output handler configured to receive the sub-results produced in response to each sub-query and combine them into a query result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for time series data storage, querying and analysis, comprising at least one computing device to execute the function of:
-
a data generator that produces time stamped data associated with the behavior of a plurality of assets; an ingester configured to receive the time stamped data from the data generator, wherein the ingester configured to read the received time stamped data and to create a plurality of data blocks each comprising time stamped data having a set of shared metadata and an index associated with each of the plurality of data blocks; an index database configured to receive and store the index received from the ingester; a time series database configured to receive the data blocks from the ingester, wherein the time series database comprising a plurality of data nodes, wherein each data node configured to store data blocks and each data node comprising an evaluator; and
a control node configured to choose which data node stores in each data block and to record which data blocks are stored on each of the plurality of data nodes;a query layer configured to; receive a query that specifies criteria defining a set of data retrieved from the system and an analysis performed on that data; request from the index database the indices associated with the data blocks stored in the time series database needed to evaluate the query; prepare a sub-query that produces appropriate data matching the criteria, the sub-query including the criteria and a logical operation performed on data matching the criteria; and send the sub-query to each data node that corresponds to the data blocks identified in the request from the index database; an evaluator on each data node that corresponds to the data blocks, wherein the evaluator configured to; receive the sub-query from the query layer; evaluate the criteria specified in the sub-query with respect to the data blocks stored on the same data node as the evaluator to select a subset of data; and perform the logical operation specified in the sub-query on the subset of data to produce a sub-result; and an output handler configured to receive the sub-results produced in response to each sub-query and combine them into a query result. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification