Method for retrieving time series data sets from a process database system of an industrial plant - Patent Application 20070122967
The method optimizes time-series data retrieval from legacy industrial database systems by using responsiveness scoring and bulk queries, addressing computational overload and facilitating data integration for advanced analytics.
Patent Information
- Application Number
- JP2023538106
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-22
- Filing Date
- 2021-12-21
- Publication Date
- 2026-01-30
- Estimated Expiration
- 2041-12-21
AI Technical Summary
Existing process database systems in industrial plants, often operating at legacy technology levels, face challenges in efficiently retrieving large volumes of time-series data sets due to computational overload, hindering applications like big data analytics.
A method involving request queries, responsiveness scoring, and bulk query generation is employed to optimize data retrieval, considering the responsiveness scores of the database system, ensuring efficient and computationally inexpensive extraction of time-series data sets.
This approach maximizes data throughput while minimizing stress on the database system, enabling seamless integration of data into advanced systems for further analysis.
Smart Images

Figure 0007809118000001 
Figure 0007809118000002 
Figure 0007809118000003
Abstract
Description
[Technical Field]
[0001] FIELD OF THE INVENTION The present invention relates to a computer-implemented method, computing device, data retrieval system, and computer program product for retrieving time series data sets from a process database system of an industrial plant. [Background technology]
[0002] Background of the Invention In modern industrial production processes, multiple sensors are provided to monitor the production of products in industrial plants. Data generated by the multiple sensors is generally stored in the form of time-series datasets in the industrial plant's process database system, sometimes called a historian. Each such time-series dataset is associated with a tag that can be considered an identifier for the time-series dataset and includes a series of time-dependent data values, such as measurements of one or more sensors in the industrial plant. Such time-series datasets often include time-dependent data values over many years during which the sensors measure parameters of the industrial production plant. Furthermore, it is very common for the process database system in which the time-series datasets are stored to not be updated to current technology levels but to continue operating at the current technology level as a legacy system. However, today, it is often desirable to use the data provided in the time-series datasets in other contexts, such as, for example, big data mining, further data analysis in a higher-level computing system like an enterprise control system, etc. For this purpose, the time-series datasets must be retrieved from the process database system as efficiently as possible, taking into account possible limitations of the process database system, such as its technology level. In particular, simply requesting such a large number of time-dependent data values would in most cases overload legacy process database systems. Therefore, it would be advantageous to provide a method that allows for efficient and computationally inexpensive retrieval of time series data sets from an industrial plant's process database system. Summary of the Invention [Problem to be solved by the invention]
[0003] Summary of the Invention It is an object of the present invention to provide a computer-implemented method, computing device, search system, and computer program product that enables efficient and computationally inexpensive retrieval of time series data sets from process database systems of industrial plants. It is a further object of the present invention to enable efficient one-time or continuous extraction of time series data sets from legacy systems to provide the time series data to technologically advanced systems so that big data analytics of the retrieved time series data is possible. [Means for solving the problem]
[0004] In a first aspect of the present invention, there is provided a computer-implemented method for retrieving time series data sets from a process database system of an industrial plant, each time series data set being associated with a respective tag and including a respective series of time-dependent data values, the method comprising: i) providing a request query for requesting time-dependent data values of the time series data sets, each request query indicating a) a respective request tag associated with the respective time series data set, and b) a respective start time and a respective end time of the time-dependent data values of each time series data set associated with the respective request tag; and ii) querying the process database system for the provided request query. a) generating bulk queries based on the responsiveness scores such that a) each bulk query includes a query to request at least a portion of the requested time-dependent data values of one or more of the provided request queries; b) generating bulk queries based on the responsiveness scores such that all of the requested time-dependent data values of all of the provided request queries are requested by the bulk query; c) transmitting the bulk queries to the process database system; and d) retrieving the time-dependent data values from the process database system in response to the bulk queries.
[0005] Because bulk queries are generated based on the responsiveness scores and time-dependent data values are retrieved utilizing the bulk queries, the expected responsiveness of the process database system for each tag can be taken into account and the bulk queries can be optimized for highly efficient and computationally inexpensive retrieval of requested time-dependent data values. Furthermore, the method enables maximizing time-dependent data value throughput when retrieving time-dependent data values from the process database system while minimizing stress on the process database system.
[0006] The time-series data sets stored on the process database system of an industrial plant may refer to any series of time-dependent data values associated with respective tags. Preferably, each time-series data set includes time-dependent data values that refer to measurements from sensors installed within the industrial plant to monitor the industrial plant's production process. In this preferred embodiment, the tags associated with the time-dependent data values may indicate the identity of the sensors in the industrial plant that provided the respective time-dependent data values. For example, a time-series data set may refer to a time series of temperature measurements provided by a temperature sensor in a chemical reaction during the production of a particular product. The temperature sensor may be adapted to provide temperature measurements every few seconds, for example, which are stored on the process database system in association with tags indicating the identity of the temperature sensor, thereby generating the respective time-series data set. However, in other embodiments, the series of time-dependent data values may refer to data values measured by not only one sensor but also multiple sensors. In this case, the tags associated with the time-dependent data values may indicate multiple sensors or may be completely independent of the source of the time-dependent data values. Generally, in addition to the time-dependent data values, the time-series data sets also include timestamps associated with the time-dependent data values to indicate the times at which the time-dependent data values were measured. Additionally, optionally, the time series dataset may further include a quality value associated with each time-dependent data value of the time series dataset, where the quality value may indicate a measured quality of the respective time-dependent data value. Without limiting the generality or scope of the present teachings, in embodiments, a time series dataset may refer to an in-order insertion time series dataset defined by recently inserted, i.e., stored, time-dependent data values associated with the time series dataset, which are time-dependent data values associated with a recent timestamp compared to all other timestamps associated with already-stored time-dependent data values. Thus, an in-order insertion time series dataset may be considered to refer to a time series dataset in which all time-dependent data values are stored sequentially, i.e., in the order of their associated timestamps.Thus, the most recent time-dependent data value is stored without the delayed insertion of a time-dependent data value associated with a timestamp indicating that a measurement was performed before the already stored time-dependent data value.
[0007] In a first step, the method includes providing a request query for requesting time-dependent data values of the time-series dataset. Providing the request query may refer, for example, to receiving the request query from a storage in which the request query is already stored and then providing it. However, providing the request query may also refer to receiving the request query from a user input and then providing the request query based on the user input. Generally, a request query refers to a query that requests time-dependent data values of the time-series dataset, for example, to transmit the time-dependent data values to another process system or for further analysis of the time-dependent data values.
[0008] Generally, a request query indicates desired requested time-dependent data values by indicating a) respective request tags associated with respective time-series datasets that include the requested time-dependent data values, and b) respective start times and respective end times for the time-dependent data values of the respective time-series datasets. For example, each request query may directly include a tag or a tag identifier to indicate each request tag, or may further include some time identifier indicating a respective start time and a respective end time. For example, the time identifier may refer to a date and time as the respective start time and a respective date and time as the respective end time. However, the time identifier may also refer to a date and time as the respective start time, or may further indicate a time period, e.g., a number or hours, days, months, years, etc., that allows for identifying the respective end times along with the respective start times. Furthermore, the time identifier may also be provided in any other manner that allows for identifying the respective start times and respective end times for the time-series datasets, e.g., computer clock time, a timestamp used to encode the time associated with a particular time-dependent data value, etc. Generally, the respective request end times and start times refer to the time indicated by the timestamps with which the time-dependent data values are associated. Thus, each start time and each end time indicates which time-dependent data values of the time-series dataset indicated by the request tag are to be searched. Thus, each request query indicates which time-dependent data values of the time-series dataset are to be searched.
[0009] In a second step, the method includes providing responsiveness scores of the process database system for the provided request queries. Each responsiveness score generally indicates the expected responsiveness of the process database system with respect to a respective request tag indicated by each provided request query. For example, a responsiveness score may be associated with and stored in a persistent database and then provided based on the respective request tag. Generally, the expected responsiveness of the process database system may be considered to refer to the expected amount of time-dependent data values for each tag that can be retrieved from the process database system within a predetermined period of time. However, each responsiveness score only indicates the expected responsiveness of the process database system because the actual responsiveness of the process database system may depend on multiple factors, such as the current workload of the process database system, the current capacity of interfaces between process database systems, the system through which the time-dependent data values are transmitted, etc.
[0010] In a preferred embodiment, each responsiveness score is determined based on the synchronization state of each request tag and / or the data density of the time-series data set associated with each request tag. The synchronization state of each request tag indicates which time-dependent data values of the associated time-series data set have already been retrieved from the process database system and which time-dependent data values still need to be retrieved from the process database system to obtain a complete time-series data set for this request tag. For example, the synchronization state may refer to the end time of the last request query referencing the respective request tag. However, the synchronization state may also refer to the period from the time that may be considered herein as the last retrieved time-dependent data value for the respective request tag.
[0011] Preferably, the method further includes determining a request start time for the request query based on a synchronization state of the request tag indicated by the request query. In particular, it is preferable that the request start time is determined automatically. Furthermore, it is preferable that the method includes updating the synchronization state of the request tag after a predetermined period of time, and if it is determined that a time-dependent data value is associated with a request tag that has not yet been retrieved, a request query is also generated to request the time-dependent data value that has not yet been retrieved. This allows the retrieved time-dependent data value to be kept up to date.
[0012] The data density of a time series dataset refers to the amount of time-dependent data values stored during a predetermined period associated with a particular tag. Different tags, each of which may reference a sensor, may include different data densities, resulting from, for example, different measurement frequencies of the sensors. For example, a temperature sensor may measure the temperature in a chemical reactor every minute, thus creating a time series dataset with a data density of 60 time-dependent data values per hour, while a pressure sensor in the chemical reactor may measure the pressure only every half hour, thus creating a time series dataset with a data density of 2 time-dependent data values per hour. Furthermore, in other examples, a sensor may provide time-dependent data values even every few seconds, thus resulting in even higher data densities. Based on the synchronization status and / or the data density of each request tag, the expected responsiveness of the process database system, and thus the respective responsiveness scores, may be determined. For example, predetermined rules may be used to determine the respective responsiveness scores from the synchronization status and / or data density, and the rules may be based on experience with process database systems or theoretical considerations. For example, the rules may define that the responsiveness score, and therefore the respective expected responsiveness of the process database system, is higher the lower the data density, and the in-sync state indicates that only a few time-dependent data values are missing from the time-series data set associated with each request tag. The respective expected responsiveness score may then be lower the higher the data density associated with each tag, and / or the in-sync state of each request tag indicates that no time-dependent data values have been retrieved for the respective request tag for an extended period of time. Furthermore, in a preferred embodiment, the respective responsiveness score is determined based solely on data density, and in particular, is determined to be equal to the data density of the time-dependent data set associated with each request tag.
[0013] Determining each responsiveness score based on synchronization state and / or data density allows for a very computationally inexpensive determination of the responsiveness scores. Furthermore, synchronization state and / or data density allow for a very good estimation of the responsiveness of the process database system, and therefore allows for the generation of bulk queries that allow for very efficient retrieval of time-dependent data values.
[0014] However, in other embodiments, the responsiveness score may also be determined based on past experience related to the responsiveness of the process database system associated with each request tag. For example, if the time-dependent data values associated with each request tag have already been previously retrieved from the process database system, the responsiveness of the process database system in this previous retrieval may be measured and used as a reference for determining the responsiveness score. For example, it may be expected that the process database system will have the same responsiveness associated with each request tag as during the previous retrieval. Furthermore, if time-dependent data values have not previously been retrieved for each request tag and the data density and synchronization state for each request tag are completely unknown, the responsiveness score may also refer to a predetermined reference responsiveness score. Such a predetermined reference responsiveness score may refer to, for example, the average responsiveness of the process database system measured in previous time-dependent data value retrievals for other tags, or may be provided based on user input, or may refer to a reference value for the responsiveness score implemented as a starting point for all request tags for which no further information is provided.
[0015] In a further step, the method includes generating a bulk query based on the responsiveness score. Generally, the bulk query includes a query for requesting at least a portion of the requested time-dependent data values of one or more of the provided request queries. Thus, the bulk query can also be generally considered as a query targeting time-dependent data values of multiple tags. Furthermore, all of the generated bulk queries together include a query for requesting all of the requested time-dependent data values of all of the provided request queries. Generally, a query of the bulk query references only one request tag, i.e., the query of the bulk query is defined in the same way as the request query, indicating each request tag and each start time and end time. However, the respective start times and respective end times of the queries indicating the request tags may differ from the request start times and end times of the request queries associated with the request tags. Thus, generating the bulk query can be considered as sorting the requested time-dependent data values into queries that form a bulk query that are more suitable for effectively searching the time-dependent data values of the provided request queries than the provided request queries themselves. In particular, the responsiveness scores may allow for estimating the expected responsiveness of the process database system, thereby allowing for generating bulk queries that include queries that enable the most efficient retrieval of time-dependent data values. For example, generating bulk queries may include applying predetermined rules for how bulk queries are generated based on the responsiveness scores. Such rules may indicate, for example, that the bulk query includes queries for requesting time-dependent data values associated with request tags that have similar responsiveness scores. However, the rules may also indicate that it would be more advantageous for the process database system if the bulk query included queries for requested time-dependent data associated with request tags that have different responsiveness scores.For example, a rule may indicate that half of the queries shall reference time-dependent data values for respective request tags that have a high responsiveness score, and the other half of the queries shall reference time-dependent data values for respective request tags that have a low responsiveness score, however, other more complex rules may also be applied to generate bulk queries based on responsiveness scores.
[0016] The method further includes transmitting the generated bulk query to a process database system and then retrieving the time-dependent data values from the process database system in response to the bulk query. For example, the retrieved time-dependent data values may be transmitted from the process database system to another storage and / or processing system for storing and / or processing the retrieved time-dependent data values.
[0017] In a preferred embodiment, generating the bulk query includes determining, for each bulk query, a query that includes at least a portion of the time-dependent data values indicated by the request query such that a preconfigurable maximum data point count is not exceeded during retrieval of the time-dependent data values of the bulk query. The maximum data point count refers to the maximum number of time-dependent data values that may be retrieved per query from the process database system. Thus, the bulk query may be generated such that the maximum data point count is not exceeded when retrieving the time-dependent data values of the bulk query.
[0018] By taking this threshold into consideration when generating the bulk query, it can be ensured that no time-dependent data values are lost during retrieval of time-dependent data values based on the bulk query, i.e., no time-dependent data values are not retrieved due to the bulk query having already reached the maximum data point count of the process database system, and therefore, the requested time-dependent data values of the provided request query can be retrieved very efficiently and accurately from the process database system.
[0019] In an embodiment, generating a bulk query includes determining a query of the bulk query such that all determined queries of the bulk query have the same start time. Preferably, generating a bulk query includes sorting each request query based on the start time of each request query, which may also be considered as sorting each request query based on its synchronization status. Based on this sorting, bulk queries that reference at least some of the requested time-dependent data values of the provided request queries may be generated such that resulting queries of the bulk query have the same start time. However, the bulk query may also be generated without sorting each request query in advance. More preferably, generating a bulk query includes determining a query of the bulk query such that all determined queries of the bulk query have the same end time. Also in this case, it is preferable to generate the bulk query based on each sorted request query, as described above. However, the bulk query may be generated accordingly without sorting.
[0020] Providing bulk query queries with the same start time and, optionally, the same end time has the advantage of significantly reducing the number of accesses to the process database system. This is because data for multiple tags can be read with a single access to the process database system, compared to a bulk query that includes individual start and end times for each tag. Therefore, the execution speed of the bulk query can be significantly increased, resulting in better responsiveness. Furthermore, the amount of query text, provided in, for example, Structured Query Language (SQL), transmitted to the process database system can be significantly reduced. For example, if a bulk query includes 1,000 queries, each of which has a different start and end time, the 1,000 start and end times of the bulk query must be specified, resulting in significant communication overhead. Furthermore, in some cases, there may be an upper limit on the number of characters that the query text can contain for a particular process database system. Such problems with bulk query text can therefore be avoided when providing bulk query queries with the same start and, optionally, the same end time.
[0021] In a preferred embodiment, the start time of the bulk query is determined such that duplicate time-dependent data values are retrieved for at least one request query when retrieving time-dependent data values in response to the bulk query. Duplicate time-dependent data values refer to time-dependent data values that have already been retrieved during a previous request query that references the same request tag. Thus, the duplicate time-dependent data values have already been transmitted for further processing and storage. However, by determining the start time of the bulk query so that duplicate time-dependent data values are retrieved, bulk queries including queries with the same start time can be generated even when the start times of the request queries are all different. In this embodiment, the method preferably further includes, after retrieving time-dependent data values in response to the bulk query that includes duplicate time-dependent data values for at least the request query, de-duplication of the retrieved time-dependent data values of the request query. De-duplication of the retrieved time-dependent data values of the request query may refer, for example, to determining duplicate time-dependent data values and then removing the duplicate time-dependent data values before storing and / or processing the retrieved time-dependent data values associated with each tag that are further related to previously retrieved time-dependent data values. Duplicate time-dependent data values may be determined, for example, based on a known synchronization state of each request tag and / or by comparing timestamps where each time-dependent data value of each request tag is associated with the timestamps of previously retrieved time-dependent data values of each request tag.
[0022] Although the bulk queries of this embodiment may contain duplicate time-dependent data values and therefore request more time-dependent data values than necessary for each request query, the advantages of using the same start time and optionally end time far outweigh the disadvantages of having to deal with duplicate time-dependent data values, as already discussed above.
[0023] In a preferred embodiment, the generation of bulk queries is further based on configurable partitioning parameters that determine the general settings of each bulk query. Configurable partitioning parameters refer to parameters that are pre-configured and can be applied to all bulk queries. Generally, the configurable partitioning parameters determine the general settings of the bulk queries. In a preferred embodiment, the configurable partitioning parameters indicate at least one of the maximum number of request tags, the maximum number of time-dependent data values, the minimum time frame for a query, and the maximum time frame for a query that can be requested by a bulk query. Furthermore, the partitioning parameters may also refer to parameters that indicate the processing of the bulk query. For example, the partitioning parameters may also indicate the maximum number of retries for a query, the maximum processing cycle runtime, the maximum initial load time for a query, etc. Such partitioning parameters are preferably pre-configured based on, for example, knowledge of the configuration of the process database system, the user's experience, etc. However, the partitioning parameters may also be configured based on experience with previous bulk query searches. For example, if an error occurs during retrieval of a previous bulk query that prevents all requested time-dependent data values from being retrieved, the partitioning parameters may be reconfigured before generating the next bulk query, e.g., the maximum number of queries allowed in a bulk query may be reduced.
[0024] This has the advantage that the bulk queries can be better adapted to each configuration of the process database system in which the time-dependent data values are searched. Furthermore, since such general configuration parameters, such as partitioning parameters for the bulk queries, do not have to be determined anew each time a bulk query is generated, but are generally set for all bulk queries, the generation of the bulk queries can be performed more efficiently and computationally inexpensively.
[0025] In an embodiment, the method further includes determining, during or after the search for the time-dependent data value, a responsiveness score for the request tag associated with the request query for which the time-dependent data value is searched, and storing the responsiveness score to be used for future request queries requesting the request tag. In particular, because the actual responsiveness of the process database system is measured during the search for the time-dependent data value, such measurement may be utilized to more accurately determine the responsiveness score. In particular, the actual responsiveness of the process database system is expected to be generally similar to previous responsiveness. Therefore, the responsiveness score determined based on the actual responsiveness of the process database system may be stored, for example, on a persistent database, and may thereafter be provided as the responsiveness score when a provided request query references each request tag. Preferably, the responsiveness score is determined by measuring the amount of time-dependent data values associated with the request tag that are searched for during a predetermined period of time during the search for the time-dependent data value of the request tag.
[0026] By determining a responsiveness score based on actual measurements of the actual responsiveness of the process database system associated with each request tag, it is possible to very accurately estimate the future responsiveness of the process database system for the request tag. As a result, a more accurate estimate, or responsiveness score, can be provided for each request tag for which time-dependent data values have already been retrieved from the process database system. This, in turn, allows for further optimization of the generated bulk queries, and therefore more effective retrieval of time-dependent data values.
[0027] In an embodiment, the method further includes determining whether a failure occurs during the retrieval of time-dependent data values of the bulk query, where when it is determined that a failure associated with at least one of the bulk queries has occurred, the method includes providing the time-dependent data values requested by the query to the step of determining the bulk query as a new request query. Thus, even in the case of a failure, it can be guaranteed that all requested time-dependent data values are eventually retrieved from the process database system. Furthermore, because the time-dependent data values for which retrieval failed are requested again as part of the bulk query, such failures in retrieving time-dependent data values, e.g., in an independent process, can also be handled very efficiently without additional computational costs.
[0028] In a further aspect of the present invention, a computing device for retrieving time series data sets from a process database system of an industrial plant, each time series data set being associated with a respective tag and including a respective series of time dependent data values, the computing device comprising: i) a query providing unit for providing a request query for requesting the time dependent data values of the time series data sets, each request query indicating a) a respective request tag associated with the respective time series data set, and b) a respective start time and a respective end time of the time dependent data values of each time series data set associated with the respective request tag; and ii) calculating a responsiveness score of the process database system for the provided request query. A computing device is presented that includes: a responsiveness score providing unit that provides a responsiveness score, wherein each responsiveness score indicates an expected responsiveness of the process database system for each request tag indicated by each provided request query; iii) a bulk query generating unit that generates a bulk query based on the responsiveness scores such that a) each bulk query includes a query for requesting at least a portion of requested time-dependent data values of one or more of the provided request queries, and b) all requested time-dependent data values of all of the provided request queries are requested by the bulk query; iv) a sending unit that sends the bulk query to the process database system; and v) a searching unit that searches for time-dependent data values from the process database system in response to the bulk query.
[0029] In a further aspect of the present invention, a data retrieval system is presented that connects to a process database system, the data retrieval system including: i) a persistent database adapted to store a plurality of responsiveness scores of the process database system, each responsiveness score being associated with a tag; and ii) the computing device as described above, wherein the query providing unit is adapted to receive the responsiveness scores from the persistent database and provide the received responsiveness scores.
[0030] In a further aspect of the present invention, there is provided a computer program product for retrieving time series data sets from a process database system of an industrial plant, the computer program product comprising program code means for causing a computing device as described above to perform the method as described above.
[0031] It is to be understood that the above-mentioned method, the above-mentioned computing device, the above-mentioned data retrieval system and the above-mentioned computer program product have similar and / or identical preferred embodiments, in particular as defined in the dependent claims.
[0032] It is to be understood that a preferred embodiment of the invention can also be any combination of the dependent claims or the above-mentioned embodiments with the respective independent claim.
[0033] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiment(s) described hereinafter. [Brief explanation of the drawings]
[0034] [Figure 1] 1 illustrates, in a schematic and exemplary manner, an embodiment of a data retrieval system including a computing device for retrieving time series data sets from a process database system of an industrial plant. [Figure 2]1 shows a flowchart illustrating an exemplary embodiment of a method for retrieving time series data sets from a process database system of an industrial plant. [Figure 3] 1 shows a schematic flow chart illustrating exemplary details of an embodiment of a method; [Figure 4] 1 illustrates an exemplary schematic diagram of the integration of a method for retrieving time series data sets from a process database system into a general workflow. DETAILED DESCRIPTION OF THE INVENTION
[0035] Detailed Description of the Embodiments FIG. 1 illustrates, in a schematic and exemplary manner, a data retrieval system 100 including a computing device 120 for retrieving time series data sets from a process database system 131 and a persistent database 140 of an industrial plant 130 .
[0036] Generally, the industrial plant 130 may refer to any technology platform used for an industrial purpose. The industrial purpose may be the manufacture or processing of one or more industrial products, i.e., a manufacturing process or processing performed by the industrial plant. For example, the industrial purpose may refer to the production of a specific product. The specific product may be any physical product, such as chemical, biological, pharmaceutical, food, beverage, textile, metal, plastic, or semiconductor. Additionally or alternatively, the specific product may even be a service product, including electricity, heating, air conditioning, waste treatment such as recycling, chemical processing such as decomposition or melting, or incineration. Accordingly, the industrial plant 130 may be one or more of a chemical plant, a process plant, a pharmaceutical plant, a fossil fuel processing facility such as an oil and / or natural gas well, a refinery, a petrochemical plant, a fractionation plant, etc. The industrial plant 130 may even be a distillery, an incinerator, or a power plant. The industrial plant 130 may even be a combination of any of the examples given above.
[0037] To carry out a production process, the industrial plant 130 includes a technology infrastructure that is controllable by control parameters implemented on the technology infrastructure by a process control system. The technology infrastructure may include equipment or process units such as any one or more of: heat exchangers, towers such as fractionation columns, furnaces, reaction chambers, catalytic cracking units, storage tanks, settlers, pipelines, stacks, filters, valves, actuators, transducers, circuit breakers, machinery, e.g., turbines, generators, pulverizers, compressors, fans, pumps, motors, and other rotating heavy equipment. Additionally, the industrial plant 130 typically includes multiple sensors 132 that enable measurement of operating parameters of the technology infrastructure. The measured operating parameters are then stored on a process database system 131 of the industrial plant 130. Furthermore, the operating parameters may be utilized by the process control system to control the production process in the industrial plant 130. The operating parameters measured by the sensors 132 may relate to various process parameters and / or parameters associated with the equipment or process units. For example, sensors may be used to measure process parameters such as flow rate in a pipeline, level in a tank, temperature of a furnace, chemical composition of gas, etc., while some sensors may be used to measure turbine vibration, fan speed, valve opening, corrosion in a pipeline, voltage across a transformer, etc. These sensors differ not only based on the parameter they sense, but also based on the sensing principle they employ. Some examples of sensors based on the parameter they sense may include temperature sensors, pressure sensors, radiation sensors such as optical sensors, flow sensors, vibration sensors, displacement sensors, and chemical sensors that detect specific substances such as gases. Examples of sensors that employ different sensing principles may include, for example, piezoelectric sensors, piezoresistive sensors, thermocouples, impedance sensors such as capacitance sensors, and resistance sensors.
[0038] The sensors 132 generally measure time-dependent data values, i.e., data values associated with the specific time at which they are measured by the sensors 132. These time-dependent data values measured by the sensors 132 are typically stored on the process database system 131 in the form of time-series data sets. The process database system 131 may refer, for example, to storage including dedicated hardware and / or software for storing time-series data sets. However, the process database system 131 may also refer to general storage or any other computing system that specifically allows for the storage of time-series data sets. Each time-series data set stored on the process database system 131 is associated with a tag, which may be considered not only an identifier for each time-series data set but also, optionally, an identifier for the sensor 132 at which the time-dependent data values of each time-series data set are measured. Furthermore, each time-series data set associated with each tag includes time-dependent data values stored with a timestamp indicating the time at which each time-dependent data value was measured. Optionally, each time-series data set may also include a quality value for each time-dependent data value indicating the quality of the measurement of each time-dependent data value. Thus, the process database system 131 preferably stores, for each sensor 132 in the industrial plant 130, a respective time series data set that is continuously updated as new time-dependent data values are measured by the sensor 132. Accordingly, based on the respective time periods between measurements provided by the sensor 132, each time series data set will include a different data density. For example, a temperature sensor may measure temperature every minute and thus include a data density of 60 data values per hour, while a pressure sensor may measure pressure every 10 minutes and thus include a data density of 6 data values per hour.
[0039] Generally, industrial plants 130 may be integrated into an enterprise control system 110 for managing and controlling the production performed by the industrial plants 130. For the management and control of the industrial plants 130, it is often desirable to retrieve measurement data provided by sensors 132 into a process database system 131 so that the retrieved data can be further processed by other dedicated, and often more complex, management and control systems, such as the enterprise control system 110. Database A data retrieval system 100 is provided to search the time series dataset provided in the system 131. After searching the time series dataset, the data retrieval system 100 may then be adapted to provide the retrieved time series dataset to, for example, the enterprise control system 110. The data retrieval system 100 includes a computing device 120 and a persistent database 140. The computing device 120 includes a query providing unit 121, a responsiveness score providing unit 122, a bulk query generating unit 123, a sending unit 124, and a searching unit 125.
[0040] The query providing unit 121 is adapted to provide a request query for requesting time-dependent data values of the time-series dataset. For example, the query providing unit 121 may be connected to an input unit through which a user may input the request query. However, the request query may also be provided as part of a request from another computing system, for example from the enterprise control system 110, which may communicate the respective request query to the query providing unit 121, which is then adapted to provide the request query. Each request query indicates a respective requested time-dependent data value of the time-series dataset to be retrieved from the process database system 131. In particular, the requested time-dependent data values to be retrieved may be indicated by each request query by indicating a respective request tag associated with each time-dependent data value to be retrieved and further by indicating a respective time period over which the time-dependent data values are to be retrieved. Each time period may be indicated, for example, by providing a respective start time and a respective end time for each time-dependent data value, where the start time and end time may indicate a timestamp correlating to the time-dependent data value over which all time-dependent data values are to be retrieved. However, alternatively, start times and periods starting from the start times may also be provided, or end times and periods going back from the end times may be provided to indicate the periods over which time-dependent data values are to be searched. Generally, a plurality of request queries are provided by the query providing unit 121.
[0041] The responsiveness score providing unit 122 is then adapted to provide a responsiveness score of the process database system 131 for the provided request query. For example, the responsiveness score providing unit 122 may be adapted to provide the responsiveness score by retrieving the responsiveness score from the persistent database 140 and providing the responsiveness score. The persistent database 140 may be adapted to store a plurality of responsiveness scores, each responsiveness score being associated with each tag. Each responsiveness score indicates the expected responsiveness of the process database system 131 related to each tag with which it is associated. In a preferred embodiment, the responsiveness score refers to the data density of the time-series data set associated with each tag, and a higher data density indicates a higher expected responsiveness of the process database system than a lower data density. Applicant has understood that the responsiveness, i.e., response time, of the process database system is linearly related to the amount of time-dependent data values searched. Because the amount of time-dependent data values searched is directly related to data density, in a fixed query time frame, a higher data density results in an increased response time, thereby indicating a higher responsiveness score. However, in another embodiment, the responsiveness score may additionally or alternatively refer to the synchronization state of the time series data set associated with each tag. Generally, the synchronization state of each time series data set indicates which time-dependent data values of the time series data set have already been retrieved from the process database system 131. For example, the synchronization state may refer to the end time of a previous request query for which time-dependent data values have already been retrieved. Thus, the synchronization state indicates the number of time-dependent data values of the time series data set that remain to be retrieved. Accordingly, a synchronization state that indicates a greater amount of time-dependent data for the time series data set associated with a tag indicates a less responsive process database system 131 associated with this tag, and a synchronization state that indicates a smaller number of time-dependent data values to be retrieved indicates a more responsive process database system 131. Furthermore, the responsiveness score may also be determined from actual measurements of the responsiveness of the process database system 131 associated with a particular tag.For example, during a previous data retrieval from the process database system 131, the amount of each time-dependent data value associated with a tag retrieved for a predetermined period of time, e.g., several minutes, tens of minutes, hours, etc., may be measured. This measured amount of time-dependent data values retrieved for the predetermined period of time may then be considered a responsiveness score associated with each tag. In this case, the higher the responsiveness, the more responsive the process database system 131 associated with each tag. The responsiveness scores provided by the responsiveness score providing unit 122, e.g., from the persistent database 140, may then be provided to the bulk query generation unit 123.
[0042] The bulk query generation unit 123 is then adapted to generate bulk queries based on the responsiveness scores. In particular, the bulk queries are generated such that each bulk query includes a query for requesting at least a portion of one or more requested time-dependent data values of the provided request queries, and further such that all requested time-dependent data values of all provided request queries are requested by the bulk query. Furthermore, the bulk queries are preferably generated such that each bulk query includes a query that does not exceed a preconfigurable maximum data point count during a search for time-dependent data values associated with the bulk query. The preconfigurable maximum data point count, for example, refers to the maximum amount of time-dependent data values that can be searched from the process database system 131 in a query search. Furthermore, each query in the bulk query may generally refer to only time-dependent data values associated with one request tag. Below, an exemplary embodiment of how the bulk queries can be generated by the bulk query generation unit 123 is provided in connection with FIG. 3 .
[0043] FIG. 3 symbolically illustrates time-dependent data values for multiple request queries in a first state 310. In particular, each bar, such as bar 311, represents a time-dependent data value associated with a tag, with the beginning of the bar indicating the start time of the request query and the end of the bar indicating the end time of the request query. Note that in this example, the end times for all request queries are the same; for example, the end time may refer to the current time, i.e., the most recent time-dependent data value in the time-series data set. However, in other examples, the end times for different request queries may be different, and the same principles may still apply. Accordingly, state 310 illustrated in FIG. 3 begins when the requested time-dependent data values are updated in the process database. system 131.
[0044] To generate bulk queries, the bulk query generation unit 123 may then be adapted to sort the request queries according to start times, leading to state 320 shown in FIG. 3 . For example, the sorting may be based directly on the start times or may be based on the synchronization status of each time-series data set indicated by the request queries. Sorting the request queries enables much easier and faster generation of bulk queries because much simpler rules can be applied to generate bulk queries based on responsiveness scores. Generating the bulk queries may then include applying predetermined rules to generate the bulk queries. For example, the rules may be based on configurable partitioning parameters indicating general settings for each bulk query, such as, for example, the maximum number of queries and thus the maximum number of request tags that may be associated with the bulk query, the maximum length of queries that may be associated with the bulk query, etc. Based on the sorted request queries shown in state 320, the bulk query generation unit 123 may then be adapted to generate a first bulk query 321 based on the responsiveness scores associated with the tags of each request query by applying the predetermined rules and, optionally, by applying the configurable partitioning parameters. For example, in state 320, bulk query 321 is generated by first generating a query for bulk query 321 that corresponds to the tag of the first request query and has the start time of the first request query, but whose end time splits the first request query into two parts. This may be based, for example, on a partitioning parameter indicating a maximum length per query of the bulk query that must not be exceeded. Furthermore, if a bulk query failed in a previous search for the requested time-dependent data value, for example due to a process timeout, the failed bulk query may be split for a retry search, i.e., provided the end time of the query splits the bulk query, and then provided again to the process database system as two bulk queries.The bulk query generation unit 123 may then be adapted to generate a next query for the next request query, i.e., the bulk query 321 associated with the next request tag, etc. Preferably, as shown in this example, all queries generated to generate the bulk queries 321, 322, and 323 include the same start time and, optionally, the same end time. Thus, to search for time-dependent data values of request queries whose start times are after the start times of at least one other request query whose time-dependent data values are requested in the bulk queries 321, 322, and 323, the queries of the bulk queries requesting these time-dependent data values have start times different from each request query. This may result in the search for duplicate data 324, which refers to time-dependent data that has already been searched in connection with a previous request query and thus already provided to the enterprise control system 110, for example, as part of a previous search for time-dependent data values. However, generating all of the bulk queries 321, 322, 323 with the same start time and optionally the same end time has the advantage that generating the bulk queries is less computationally expensive and that the time-dependent data values of the bulk queries may be searched more effectively. Thus, as shown in state 320, three different bulk queries 321, 322, 323 are generated from the request query, and two of the bulk queries 321, 323 contain overlapping time-dependent data values 324.
[0045] After the bulk queries are generated, the sending unit 124 may be adapted to send the bulk queries 321, 322, 323 to the process database system 131. The searching unit 125 may then be adapted to search for time-dependent data values associated with the bulk queries 321, 322, 323 from the process database system 131 in response to the bulk queries 321, 322, 323. For example, as shown in FIG. 3 , the sending and / or searching may include sorting the bulk queries 321, 322, 323 according to the computability of the process database system 131. For example, as shown in FIG. 3 , the process database system 131 may be adapted to process multiple bulk queries in parallel, as shown in state 330. The bulk queries 321, 322, 323 may then be sorted to each parallel processing lane of the process database system 131, further based on, for example, the current processing and capacity state of the process database system 131. If the retrieved time-dependent data values are found to include duplicate time-dependent data values, the known duplicate retrieved time-dependent data values may be removed before providing the retrieved time-dependent data values, for example, to enterprise control system 110. For example, the start time of the currently retrieved time-dependent data value associated with each tag may be compared to the end time of the already retrieved time-dependent data values, and currently retrieved time-dependent data values between the start and end times may be removed as they most likely refer to duplicate time-dependent data values. The retrieved time-dependent data values may then be further processed or stored, for example, by enterprise control system 110.
[0046] 2 schematically and exemplarily illustrates a computer-implemented method 200 for retrieving time-series datasets from a process database system 131 of an industrial plant 130. In a first step 210, the method 200 includes providing request queries for requesting time-dependent data values of the time-series dataset. In particular, providing the request queries may be performed according to the description above in relation to the request query providing unit 121. In a next step 220, the method 200 includes providing responsiveness scores of the process database system 131 for the provided request queries, e.g., also according to the principles and methods described in relation to the responsiveness score providing unit 122. In a third step 230, bulk queries are generated based on the responsiveness scores, such that a) each bulk query includes a query for requesting at least a portion of one or more requested time-dependent data values of the provided request queries, and b) all requested time-dependent data values of all provided request queries are requested by the bulk query. This step may also be performed, e.g., in relation to the bulk query generating unit 123 and according to the principles described above in relation to FIG. 3. In a subsequent step 240, the bulk query is sent to the process database system 131, and in step 250, time-dependent data values are retrieved from the process database system 131 in response to the bulk query, and the retrieved time-dependent data values may then be provided to, for example, the enterprise control system 110.
[0047] A further example of integrating a method for retrieving time-series data sets from a process database system into a general workflow will be described below with reference to FIG. 4 . In a first step shown in FIG. 4 , tag transmission progress, i.e., the synchronization status of the time-series data sets associated with the tag, is retrieved from the persistent database along with a learned historian behavior, i.e., a responsiveness score indicating the responsiveness of the process database system, referred to herein as a “historian.” For example, based on the retrieved synchronization status for each tag, a request query can be automatically generated to request all time-dependent data values not already retrieved for this tag. This is particularly advantageous in cases where time-dependent data values are retrieved as continuously as possible, for example, to keep the enterprise control system 110 up-to-date. Therefore, in a next step, a retrieval strategy can be calculated by generating a bulk query based, inter alia, on the generated request query and the retrieved responsiveness score. The responsiveness score here refers to the measured, i.e., learned, responsiveness of the process database system associated with a particular tag. The bulk query is then provided to the process database system, and providing may include sequencing the bulk query. Furthermore, the retrieval of the time-dependent data values of the bulk query may then, in this example, include further scheduling and execution of the bulk query, i.e., the bulk query associated with the bulk query in the background of a worker thread provided by the process database system. The scheduling and execution of the bulk query may then be performed until a predetermined interruption criterion is met. For example, the interruption criterion may refer to the completion of the retrieval of the time-dependent data values associated with the bulk request, or may refer to a failure code indicating that the retrieval of the time-dependent data values of the bulk request failed. If the interruption criterion is met, for example, that the running bulk request has finished, the bulk query backlog is discarded to apply the learned historian behavior. This means, for example, that the responsiveness score utilized to generate the bulk query during the current query cycle is updated with more of the current responsiveness score, e.g., the responsiveness score being measured during the current query cycle.The process may then be adapted to sleep for a configurable amount of time, e.g., to allow requests from other systems on the process database system, and then begin anew retrieving the synchronization state and responsiveness score. The request lane, e.g., work thread, of the process database system associated with the bulk query may be monitored for responsiveness scores during and / or after the bulk query has finished executing, and the amount of time-dependent data values retrieved from the process database system within a predetermined period for each tag may be determined. The amount of time-dependent data values retrieved associated with the tag may then be stored as a responsiveness score on a persistent database, from which this learned responsiveness score may be retrieved to generate the next bulk query.
[0048] Generally, in the present invention, a request query is defined as a request having a certain start time, end time, and request tag. In this case, a system can be programmed to store data synchronization states in a database. Furthermore, the system can be programmed to continuously retrieve previously stored synchronization states from the database and measure the data density of each tag whose synchronization state indicates that the retrieved data is not up-to-date. The measured data density can be considered to refer to the responsiveness score of each tag. In a next step, an optimal sequence of queries, i.e., bulk queries, can be calculated based on the measured data density, e.g., responsiveness score, using optimization heuristics. The optimal sequence of queries can then be performed with a certain degree of parallelism, taking into account the current process database system load and past misbehavior / failures. Optionally, the system can be programmed to react to failed requests, i.e., bulk queries, in an intelligent manner, for example, by identifying the reason for the failure and determining an appropriate mitigation strategy. Furthermore, it is preferred that the system continuously learns and thereby updates its retrieval strategy calculation method, i.e., the rules utilized to generate bulk queries, and accordingly notifies of, for example, sudden increases in data density, and stores this information in a database for persistence.
[0049] In the above embodiment, the retrieved time-dependent data values are provided to an enterprise control system, but in other embodiments, the retrieved time-dependent data values may be provided to any other computer system or storage for further storage and processing. For example, the retrieved time-dependent data values may be statistically processed to obtain a statistical summary across processes performed by an industrial plant.
[0050] Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims.
[0051] In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality.
[0052] A single unit or device may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
[0053] The procedures such as providing a request query, providing a responsiveness score, generating a bulk query, sending a bulk query, retrieving time-dependent data values, etc., performed by one or more units or devices may be performed by any other number of units or devices. These procedures may be implemented as program code means of a computer program and / or as dedicated hardware.
[0054] The computer program product may be stored / distributed on any suitable medium, such as optical storage media and solid state media, may be supplied together with or as part of other hardware, or may be distributed in other forms, for example via the Internet or other wired / wireless communication systems.
[0055] Any reference signs in the claims should not be construed as limiting the scope of the invention.
[0056] The present invention relates to a method for retrieving time-series data sets from a database system of an industrial plant. The method includes providing request queries indicating time-dependent data values by indicating tags and start and end times of each time-series data set; and providing responsiveness scores for the provided request queries, each responsiveness score indicating an expected responsiveness of a process database system associated with the tag. Further, a bulk query is generated based on the responsiveness scores, including a query for requesting at least a portion of the time-dependent data values, and all time-dependent data values for all provided request queries are requested by the bulk query. The bulk query is then submitted, and the time-dependent data values are retrieved from the process database system. This allows for efficient and computationally inexpensive data retrieval.
Claims
1. 1. A computer-implemented method for retrieving time series data sets from a process database system (131) of an industrial plant (130), each time series data set being associated with a respective tag and including a respective series of time-dependent data values, the method (200) comprising: providing (210) request queries for requesting time-dependent data values of the time-series datasets, each request query indicating a respective requested time-dependent data value by indicating a) a respective request tag associated with a respective time-series dataset, and b) a respective start time and a respective end time of the time-dependent data values of the respective time-series dataset associated with the respective request tag; providing (220) responsiveness scores of the process database system (131) for the provided request queries, each responsiveness score indicating an expected responsiveness of the process database system (131) for each request tag indicated by each provided request query; generating (230) bulk queries (321, 322, 323) based on the responsiveness scores such that a) each bulk query (321, 322, 323) includes a query for requesting at least a portion of the requested time-dependent data values of one or more of the provided request queries, and b) all requested time-dependent data values of all provided request queries are requested by the bulk queries (321, 322, 323); sending (240) said bulk query (321, 322, 323) to said process database system (131); retrieving (250) time-dependent data values from said process database system (131) in response to said bulk queries (321, 322, 323); A method comprising:
2. The method of claim 1 , wherein each responsiveness score is determined based on a synchronization state of each request tag and / or a data density of a time series data set associated with the each request tag.
3. 3. The method of claim 1 or 2, wherein generating the bulk queries (321, 322, 323) includes determining, for each bulk query (321, 322, 323), a query that includes at least some of the time-dependent data values indicated by the request query so as not to exceed a pre-configurable maximum data point count during the search for the time-dependent data values of the bulk queries (321, 322, 323).
4. 4. The method of claim 1, wherein generating bulk queries (321, 322, 323) comprises determining queries of the bulk queries (321, 322, 323) such that all determined queries of the bulk queries (321, 322, 323) include the same start time.
5. 5. The method of claim 4, wherein the start time of the determined query of the bulk query (321, 322, 323) is determined such that when searching for the time-dependent data values in response to the bulk query (321, 322, 323), overlapping time-dependent data values (324) are searched for for at least one request query.
6. 6. The method of claim 5, further comprising, after retrieving the time-dependent data values in response to the bulk query (321, 322, 323) that includes duplicate time-dependent data values (324) for at least one request query, de-duplicating the retrieved time-dependent data values for the request query.
7. The method of any one of claims 1 to 6, wherein said generating said bulk queries (321, 322, 323) is further based on configurable partitioning parameters that determine the general settings of each bulk query (321, 322, 323).
8. 8. The method of claim 7, wherein the configurable partitioning parameter indicates at least one of a number of request tags that can be requested by a bulk query (321, 322, 323) and a maximum time frame for request tags that can be requested by a bulk query (321, 322, 323).
9. 9. The method of claim 1, further comprising: during or after retrieving the time-dependent data value, determining the responsiveness score for a request tag associated with a request query for which the time-dependent data value is retrieved; and storing the responsiveness score for use in future request queries that request the request tag.
10. 10. The method of claim 9, wherein the responsiveness score is determined by measuring an amount of time-dependent data values associated with the request tag that are retrieved during a predetermined period of time during the search for the time-dependent data values of the request tag.
11. The method of any one of claims 1 to 10, further comprising determining a request start time of the request query based on a synchronization state of the request tag indicated by the request query.
12. 12. The method of claim 1, further comprising determining whether a failure has occurred during the search for the time-dependent data values of the bulk queries (321, 322, 323), wherein when it is determined that a failure associated with at least one of the bulk queries (321, 322, 323) has occurred, the method comprises providing the time-dependent data values requested by the queries to a step of determining the bulk query (321, 322, 323) as a newly requested query.
13. 1. A computing device for retrieving time series data sets from a process database system (131) of an industrial plant (130), each time series data set being associated with a respective tag and including a respective series of time-dependent data values, the computing device (120) comprising: a query providing unit (121) for providing request queries for requesting time dependent data values of said time series datasets, each request query indicating a respective requested time dependent data value by indicating a) a respective request tag associated with a respective time series dataset, and b) a respective start time and a respective end time of said time dependent data values of said respective time series datasets associated with said respective request tag; a responsiveness score providing unit (122) for providing responsiveness scores of the process database system (131) for the provided request queries, each responsiveness score indicating an expected responsiveness of the process database system (131) for each request tag indicated by each provided request query; a bulk query generation unit (123) for generating bulk queries (321, 322, 323) based on the responsiveness scores such that a) each bulk query (321, 322, 323) comprises a query for requesting at least a portion of the requested time-dependent data values of one or more of the provided request queries, and b) all requested time-dependent data values of all provided request queries are requested by the bulk queries (321, 322, 323); a sending unit (124) for sending said bulk queries (321, 322, 323) to said process database system (131); a retrieval unit (125) for retrieving time-dependent data values from said process database system (131) in response to said bulk queries (321, 322, 323); A computing device comprising:
14. A data retrieval system connected to a process database system (131), the data retrieval system (100) comprising: a persistent database (140) adapted to store a plurality of responsiveness scores of said process database system (131), each responsiveness score being associated with a tag; A computing device (120) according to claim 13, wherein the query providing unit is adapted to receive the responsiveness scores from the persistent database and to provide the received responsiveness scores; A data retrieval system comprising:
15. 14. A computer program for retrieving time series data sets from a process database system (131) of an industrial plant (130), the computer program comprising program code that causes a computing device (120) according to claim 13 to perform the method (200) of any one of claims 1 to 12.
Citation Information
Patent Citations
Configurable robustness agent in plant security system
JP2016220213A
Evaluation device, evaluation system and evaluation method
JP2018151877A
Source-independent queries in distributed industrial system
US20170103103A1
Bulk Sets for Executing Database Queries
US20170316003A1
Time-series data processing apparatus and method thereof
WO2012020456A1