# Patent

## Title
Storage of multiple, related time-series data streams

## Abstract

A method and system may receive time-series data of each of a plurality of real-time data streams from one or more sensors and create an electronic file based on the plurality of real-time data streams. The plurality of real-time data streams comprises a primary data stream, a low limit data stream, a high limit data stream, and a target value data stream. The electronic file includes a data portion and a metadata portion. The metadata portion of the electronic file comprises, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type, and the data portion comprises the time-series data of each of the plurality of real-time data streams.

## Background
CLAIM OF PRIORITY
This application is based on, and hereby claims benefit of and priority to, U.S. Provisional Patent Application Ser. No. 60/904,099 filed on Feb. 27, 2007, the contents of which are incorporated herein in their entirety for all purposes.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to storage of streaming data.
2. Description of the Related Art
Industrial processes (e.g., manufacturing, material processing, production, power generation, fabrication, and refining) generate a high volume of real-time time-series data. Conventional data collection systems, such as relational databases, may not be capable of handling the volume and/or rate at which the data is generated. Process historians, such as supervisory control and data acquisition (“SCADA”) systems or distributed control systems (“DCS”), may therefore be used to collect industrial process data.
Collection of industrial process data typically requires proprietary technology tailored to the particular configuration of the industrial process. The interdependency between data collection and industrial configuration may hinder subsequent analysis of the stored data. In this regard, effective interpretation of the collected data may be difficult without intimate knowledge of the industrial process from which the data was generated. Furthermore, accurate analysis of time-series data may require the creation of a duplicate system to ensure accurate sensor readings, which is cost prohibitive.
SUMMARY
Generally, a method and a system are provided to receive time-series data of each of a plurality of real-time data streams from one or more sensors and create an electronic file based on the plurality of real-time data streams. The plurality of real-time data streams comprises a primary data stream, a low limit data stream, a high limit data stream, and a target value data stream. The electronic file includes a data portion and a metadata portion. The metadata portion of the electronic file comprises, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type, and the data portion comprises the time-series data of each of the plurality of real-time data streams.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a system according to some embodiments.
FIG. 2 illustrates a method according to some embodiments.
FIG. 3 illustrates a recording apparatus according to some embodiments.
FIG. 4 illustrates an electronic file according to some embodiments.
FIG. 5 illustrates an output of an analyzing apparatus.



DETAILED DESCRIPTION
Now referring to FIG. 1, an embodiment of a system 100 is illustrated. The system 100 may comprise one or more sensors 101, a receiving apparatus 102, and an analyzing apparatus 103.
The one or more sensors 101 may transmit real-time time-series data associated with a single device and/or process. In some embodiments, multiple sensors 101 may sense and transmit time-series data associated with a single device or monitored process such as, but not limited to, a pump flow rate, a fluid level and a level of viscosity. The real-time data may include a plurality of data steams such as, but not limited to, a primary data stream representing a measured value, a low limit data stream representing a low limit of the measured value, a high limit data stream representing a high limit of the measured value, and/or a target value data stream representing a target of the measured value. In some embodiments, the real-time data may comprise multiple levels of limits. For example the real-time data may comprise a plurality of ascending high limit streams and a plurality of descending low limit streams (e.g. a High-High limit and a Low-Low limit).
The real-time data may comprise an indication of one or more alarms, such as, but not limited to a rate-of-change alarm indicator, or a deviation alarm indicator. In some embodiments, an alarm may comprise a status indicator that may have either the value NORMAL or ALARM. For example of an alarm may indicate a “water tank full” light which may require intervention from an operator. In response to a change in the status indicator, a system may trigger one or more system alarm messages that may be recorded and/or sent to the operator. The system alarm message may comprise a value of the status indicator.
The sensor(s) 101 may comprise hardwired sensors coupled to a control system (not shown) and/or to the recording apparatus 102. In some embodiments, the one or more sensors 101 may comprise one or more wireless sensors that transmit real-time time-series data to the recording apparatus 102. One or more of the sensor(s) 101 may be located at an industrial process site and may be integrated with an industrial device (e.g., a pump, etc.)
In some embodiments, the recording apparatus 102 may receive time-series data of each of a plurality of real-time data streams from the one or more sensors 101. The recording apparatus 102 may also receive one or more annotations associated with one or more of the plurality of real-time data streams. In some embodiments, annotations may be user-entered. In some embodiments annotations may be system generated. For example, artificial intelligence programs or other such mechanisms that monitor a process may generate textual commentary. The recording apparatus 102 may create an electronic file including a data portion and a metadata portion based on the plurality of real-time data streams. The metadata portion of the electronic file may include, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type. The data portion may include the received time-series data of each of the plurality of real-time data streams and, optionally, the one or more annotations. The recording apparatus 102 may then transmit the electronic file to the analyzing apparatus 103.
The metadata portion of the electronic file may provide the analyzing apparatus 103 with information to facilitate the application of trend charting or other analysis tools to the time-series data of the data portion. Accordingly, in some embodiments, the analyzing apparatus 103 may plot charts or determine problems in signals without extensive knowledge of the system from which the time-series data was received. In some embodiments, the analyzing apparatus 103 may also display the time-series data of one or more of the plurality of data streams in conjunction with any annotations that were provided in the electronic file.
Now referring to FIG. 2, an embodiment of a method 200 is illustrated. Method 200 may be performed by a system, such as, but not limited to, system 100 of FIG. 1. At 201, a plurality of real-time data streams comprising a primary data stream, a low limit data stream, a high limit data stream, and a target value data stream are received from one or more sensors. In some embodiments, the plurality of real-time data streams may be received at an input of a recording apparatus, such as, but not limited to, input 301 of FIG. 3.
For illustrative purposes, and to aid in understanding FIG. 2, an example will now be introduced. This example is not intended to limit the scope of the appended claims.
A water tank may be deployed in an industrial process and monitored by one or more sensors. One of these sensors may monitor a fill level of the water tank. The sensor may therefore output several streams of time-series data associated with the fill level of the water tank.
One of the data streams may represent the actual fill level of the water tank and is referred to below as a primary data stream. Other data streams may represent a high limit of the fill level, a low limit of the fill level, and a target value of the fill level. In some embodiments, any of the low limit, the target value, and the high limit may change during operation of the industrial process. Accordingly, the primary data stream, the low limit data stream, the high limit data stream, and the target value data stream are received from the sensor at 201.
Next, at 202, an electronic file is created based on the plurality of real-time data streams. The electronic file includes a data portion and a metadata portion. The data portion of an electronic file may comprise the time-series data of each of the plurality of real-time data streams. In some embodiments, the time-series data of a data stream may include a plurality of time stamps and a data value associated with each time stamp for all data points collected over a time range. The data portion may also comprise a plurality of quality levels. A quality level of a data stream may vary over time and thus, each of the plurality of quality levels may be associated with both a time stamp and a respective one of the plurality of received data streams.
The metadata portion may comprise descriptive data (i.e., metadata) associated with the plurality of data streams. The metadata portion of the electronic file may comprise, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type.
In some embodiments, the electronic file may comprise a flat file, a data file, a packetized data stream, or any known data encapsulating structure. The electronic file may be stored in any storage medium such as, but not limited to a hard drive, a flash drive, or a random access memory drive. For example, the electronic file may be stored in storage 303 or memory 306 of FIG. 3.
During execution of an industrial process, a user may enter an annotation into a recording apparatus, such as apparatus 102, to document process-related information. An annotation may comprise alphanumeric characters or symbols. Each annotation may be associated with one or more of the plurality of data streams and may be associated with a particular time stamp or time range. Each annotation may further comprise a locale (i.e., language) identifier and/or an author (i.e., a user, machine, or system identifier). The annotation may be stored in the data portion of the electronic file, and in some embodiments, the metadata portion may comprise an annotation locator index to define a location of each annotation. The annotation index may associate one or more annotations with one or more data streams and a respective time stamp.
Continuing with the above water tank example, the data portion of the electronic file created at 202 may comprise time-series data of the primary data stream, the low limit data stream, the high limit data stream, and the target value data stream. The metadata portion of the electronic file may comprise descriptive data associated with the received data streams. For example, the primary data stream may be identified as “PD”, the low limit data stream may be identified as “LL”, the high limit data stream may be identified as “HL”, and the target data stream may be identified as “TD”. If more than one water tank exists, then each data stream may be associated with a specific water tank identifier (e.g., source type) and a specific water tank controller. An identifier may comprise any alphanumeric character or combination thereof.
During the time range represented by the time-series data, a user may have entered in an annotation such as “pump malfunction” or “ice blockage in line” to disclose information that may be pertinent to future analysis of the data streams. The annotation may be associated with a time stamp an included in the data portion.
Now referring to FIG. 3, an embodiment of a recording apparatus 300 is illustrated. The recording apparatus 300 may comprise an input 301, storage 302, a bus 303, an output 304, a processor 305, and a memory 306. The input 301 may comprise a receiver to receive a plurality of data streams. In some embodiments, the input 301 may be electrically coupled to one or more sensors, and, in some embodiments, the input 301 may comprise a wireless receiver.
The storage 302 may comprise, but is not limited to, a hard drive, cache memory or flash memory to buffer or store the plurality of data streams. In some embodiments, the storage 302 may comprise a medium to store processor-executable instructions that may cause apparatus 300 to perform a method when executed by the processor 305. In some embodiments, the method may comprise, but is not limited to, method 200 of FIG. 2. The processor 305 may comprise any computer processor that is or becomes known.
The bus 303 may comprise a subsystem to transfer data between various elements of the recording apparatus 300. The output 304 may be used to transfer an electronic file to an analyzing apparatus, such as the analyzing apparatus 103 of FIG. 1. The memory 306 may comprise, according to some embodiments, any type of memory for storing data, such as a Single Data Rate Random Access Memory (SDR-RAM), a Double Data Rate Random Access Memory (DDR-RAM), or a Programmable Read Only Memory (PROM).
FIG. 4 illustrates an embodiment of an electronic file 400 created at 202 according to some embodiments. The electronic file 400 may comprise a metadata portion 401 and a data portion 402. The electronic file 400 may take the form of a flat file, a data file, a packetized data stream, or any known data-encapsulating structure. For example, the electronic file 400 may comprise a flat file that contains comma-delimited, tab-delimited, or space-delimited data. In some embodiments, the electronic file 400 may comprise a packetized data stream with a packet header comprising the metadata portion 401 and a packet body comprising the data portion 402.
As shown, the metadata portion 401 comprises metadata of “PD, LL, HL, TD, 030000, 040000, Tank1, GAL, A_PD_033000”. Values “PD, LL, HL, TD” may represent stream identifiers for a primary data stream “PD”, a lower limit data stream “LL”, a high limited data stream “HL”, and a target data stream “TD”. The order of the stream identifiers may represent an order of data stored in the data portion 402. The metadata portion 401 may further indicate a time range of the sample data (i.e., 03:00:00 to 04:00:00), a source identifier (i.e., Tank1), a data type (i.e., gallons), and an annotation index (i.e., A_PD_033000), that indicates an annotation associated with the primary data stream at time 03:30:00.
The data portion 402, as shown, may include data associated with a plurality of data streams recorded at five-minute intervals. For example, “032500,50,20,60,55,” may represent a time stamp associated with time 03:25:00, a primary data value, a lower limit value, a high limit value, and a target value each recorded at 03:25:00. At a next time interval (i.e., time 03:30:30), and as indicated in the metadata portion 401, an annotation was recorded to reflect a primary data value 65 exceeding a high limit value of 60.
FIG. 5 illustrates an output of an analyzing apparatus according to some embodiments. In some embodiments the output of an analyzing apparatus, such as the analyzing apparatus 103, may comprise a graph 500. The analyzing apparatus may receive an electronic file comprising a metadata portion and a data portion as described above. To graph the received data, the analyzer may parse the data portion of the electronic file using information found within the metadata portion.
The graph 500 may illustrate a value 505 of each of a plurality of data streams versus time 503. The graph 500 may display a primary data stream 501, a low limit data stream 502, a high limit data stream 507, and a target value data stream 508. The graph 500 may also illustrate one or more time stamps 504 and one or more annotations 506 such as illustrated annotation 506, “Viscosity lower than spec. Flow too high.” The illustrated annotation 506 is displayed with a time stamp 504 to denote a specific time at which the annotation 506 was entered into a recording system.
Although particular embodiments have been described above, those in the art will note that various substitutions may be made to those embodiments described herein without departing from the spirit and scope of the appended claims.

## Claims

1. A method comprising:
receiving time-series data of each of a plurality of real-time data streams from one or more sensors, the plurality of real-time data streams comprising a primary data stream representing a measured value, a low limit data stream representing a low limit of the measured value, a high limit data stream representing a high limit of the measured value, and a target value data stream representing a target value of the measured value, wherein the time-series data of the primary data stream includes a plurality of time stamps and a plurality of data values that are separate from the plurality of time stamps, each of the plurality of data values of the primary data stream being associated with a respective one of the plurality of time stamps and representing the measured value, wherein the time-series data of the low limit data stream includes a plurality of data values that are separate from the plurality of time stamps and the plurality of data values of the primary data stream, each of the plurality of data values of the low limit data stream being associated with a respective one of the plurality of time stamps and representing a low limit of the measured value, wherein the time-series data of the high limit data stream includes a plurality of data values that are separate from the plurality of time stamps, the plurality of data values of the primary data stream and the plurality of data values of the low limit data stream, each of the plurality of data values of the high limit data stream being associated with a respective one of the plurality of time stamps and representing a high limit of the measured value, and wherein the time-series data of the target value data stream includes a plurality of data values that are separate from the plurality of time stamps, the plurality of data values of the primary data stream, the plurality of data values of the low limit data stream and the plurality of data values of the high limit data stream, each of the plurality of data values of the target value data stream being associated with a respective one of the plurality of time stamps and representing a target value of the measured value; and
creating an electronic file based on the plurality of real-time data streams, the electronic file including a data portion and a metadata portion,
wherein the metadata portion of the electronic file comprises, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type, and
wherein the data portion comprises the time-series data of each of the plurality of real-time data streams.

2. The method of claim 1, wherein the metadata portion comprises an annotation locator index.

3. The method of claim 2, wherein the annotation locator index is associated with one or more annotations, each annotation associated with a time stamp.

4. The method of claim 1, wherein the data portion further comprises a plurality of quality levels, and wherein each quality level is associated with a time stamp and one of the plurality of received data streams.

5. The method of claim 1, further comprising:
transferring the electronic file from a first apparatus to a second apparatus, wherein the real-time measured data streams are received at the first apparatus.

6. The method of claim 1, further comprising:
displaying annotations; and
graphing the plurality of real-time data streams based on the metadata portion.

7. The method of claim 1, wherein the data portion further comprises one or more alarm indicators.

8. The method of claim 1, wherein the data portion further comprises a plurality of ascending high limit streams and a plurality of descending low limit streams.

9. A medium storing processor-executable instructions that when executed by a processor perform a method, the method comprising:
receiving time-series data of each of a plurality of real-time data streams from one or more sensors, the plurality of real-time data streams comprising a primary data stream representing a measured value, a low limit data stream representing a low limit of the measured value, a high limit data stream representing a high limit of the measured value, and a target value data stream representing a target value of the measured value, wherein the time-series data of the primary data stream includes a plurality of time stamps and a plurality of data values that are separate from the plurality of time stamps, each of the plurality of data values of the primary data stream being associated with a respective one of the plurality of time stamps and representing the measured value, wherein the time-series data of the low limit data stream includes a plurality of data values that are separate from the plurality of time stamps and the plurality of data values of the primary data stream, each of the plurality of data values of the low limit data stream being associated with a respective one of the plurality of time stamps and representing a low limit of the measured value, wherein the time-series data of the high limit data stream includes a plurality of data values that are separate from the plurality of time stamps, the plurality of data values of the primary data stream and the plurality of data values of the low limit data stream, each of the plurality of data values of the high limit data stream being associated with a respective one of the plurality of time stamps and representing a high limit of the measured value, and wherein the time-series data of the target value data stream includes a plurality of data values that are separate from the plurality of time stamps, the plurality of data values of the primary data stream, the plurality of data values of the low limit data stream and the plurality of data values of the high limit data stream, each of the plurality of data values of the target value data stream being associated with a respective one of the plurality of time stamps and representing a target value of the measured value; and
creating an electronic file based on the plurality of real-time data streams, the electronic file including a data portion and a metadata portion,
wherein the metadata portion of the electronic file comprises, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type, and
wherein the data portion comprises the time-series data of each of the plurality of real-time data streams.

10. The medium of claim 9, wherein the metadata portion comprises an annotation locator index.

11. The medium of claim 10, wherein the annotation locator index is associated with one or more annotations, each annotation associated with a time stamp.

12. The medium of claim 10, wherein the data portion further comprises a quality level of each of the plurality of received data streams.

13. The medium of claim 9, wherein the method further comprises:
transferring the electronic file from a first apparatus to a second apparatus, wherein the real-time data streams are received at a first apparatus.

14. The medium of claim 13, wherein the method further comprises:
displaying annotations at the second apparatus; and
graphing the plurality of real-time data streams based on the metadata portion at the second apparatus.

15. A system comprising:
a receiver to receive time-series data of each of a plurality of real-time data streams from one or more sensors, the plurality of real-time data streams comprising a primary data stream representing a measured value, a low limit data stream representing a low limit of the measured value, a high limit data stream representing a high limit of the measured value, and a target value data stream representing a target value of the measured value, wherein the time-series data of the primary data stream includes a plurality of time stamps and a plurality of data values that are separate from the plurality of time stamps, each of the plurality of data values of the primary data stream being associated with a respective one of the plurality of time stamps and representing the measured value, wherein the time-series data of the low limit data stream includes a plurality of data values that are separate from the plurality of time stamps and the plurality of data values of the primary data stream, each of the plurality of data values of the low limit data stream being associated with a respective one of the plurality of time stamps and representing a low limit of the measured value, wherein the time-series data of the high limit data stream includes a plurality of data values that are separate from the plurality of time stamps, the plurality of data values of the primary data stream and the plurality of data values of the low limit data stream, each of the plurality of data values of the high limit data stream being associated with a respective one of the plurality of time stamps and representing a high limit of the measured value, and wherein the time-series data of the target value data stream includes a plurality of data values that are separate from the plurality of time stamps, the plurality of data values of the primary data stream, the plurality of data values of the low limit data stream and the plurality of data values of the high limit data stream, each of the plurality of data values of the target value data stream being associated with a respective one of the plurality of time stamps and representing a target value of the measured value;
a processor to:
create an electronic file based on the plurality of real-time data streams, the electronic file including a data portion and a metadata portion,
wherein the metadata portion of the electronic file comprises, for each of the plurality of data streams, one or more data stream identifiers, a time range, a source type, and a data type, and
wherein the data portion comprises the time-series data of each of the plurality of real-time data streams.

16. The system of claim 15, wherein the metadata portion comprises an annotation locator index.

17. The system of claim 16, wherein the annotation locator index is associated with one or more annotations, each annotation associated with a time stamp.

18. The system of claim 16, wherein the data portion further comprises a plurality of quality levels, and wherein each quality level is associated with a time stamp and one of the plurality of received data streams.

19. The system of claim 15, wherein the electronic file is to be transferred from a first system to a second apparatus, and wherein the real-time data streams are received at a first apparatus.

20. The system of claim 19, wherein annotations are displayed and the plurality of real-time data streams are graphed based on the metadata portion at the second apparatus.

21. The method of claim 1, wherein one of the plurality of data values of the primary data stream, one of the plurality of data values of the low limit data stream, one of the plurality of data values of the high limit data stream and one of the plurality of data values of the target value data stream are each associated with a particular one of the plurality of time stamps and are recorded at a time represented by the particular one of the plurality of time stamps.

22. The medium of claim 9, wherein one of the plurality of data values of the primary data stream, one of the plurality of data values of the low limit data stream, one of the plurality of data values of the high limit data stream and one of the plurality of data values of the target value data stream are each associated with a particular one of the plurality of time stamps and are recorded at a time represented by the particular one of the plurality of time stamps.

23. The system of claim 15, wherein one of the plurality of data values of the primary data stream, one of the plurality of data values of the low limit data stream, one of the plurality of data values of the high limit data stream and one of the plurality of data values of the target value data stream are each associated with a particular one of the plurality of time stamps and are recorded at a time represented by the particular one of the plurality of time stamps.

24. The method of claim 1, wherein the primary data stream is a data stream representing a measured value of a pump flow rate, a fluid level or a level of viscosity.

25. The medium of claim 9, wherein the primary data stream is a data stream representing a measured value of a pump flow rate, a fluid level or a level of viscosity.

26. The system of claim 15, wherein the primary data stream is a data stream representing a measured value of a pump flow rate, a fluid level or a level of viscosity.

27. The method of claim 21, wherein the primary data stream is a data stream representing a measured value of a pump flow rate, a fluid level or a level of viscosity.

28. The medium of claim 22, wherein the primary data stream is a data stream representing a measured value of a pump flow rate, a fluid level or a level of viscosity.

29. The system of claim 23, wherein the primary data stream is a data stream representing a measured value of a pump flow rate, a fluid level or a level of viscosity.