Getting Summaries

Blog Post created by ray on Sep 6, 2009

We call these both summaries and aggregates interchangeably. I am talking about the classic OSIsoft set of summaries that you can request for any PI point: average, minimum, maximum, total, range, standard deviation (both types) and mean. To get any of them, you must time interval instead of a single time. When you retrieve any of these summaries, we also give you a "percent good" value which indicates what fraction of the time interval had good data in it.


The current CTP design for getting summaries is admittedly a bit odd. We accept a "columns" argument which is a list of summaries you want. What you get back is a "cross-product" of this list and the Paths. For example, if you request "Average" and "Total" from Paths "sinusoid" and "cdt158," you get 4 summaries back: sinusoid(Average), sinusoid(Total), cdt158(Average) and cdt158(Total). If you've tried it, you will see these "pseudo-Path" strings in the returned data set.


This is less than ideal. We need a better design. One option on the table is to create a separate service for summaries which would return them as a Table instead of  a Timeseries. This way, each column would contain one summary. Each row would contain the summary's timestamp (which in our case is the timestamp at the end of each time interval) and the "percent good" value. The service would return a collection of tables, one for each passed Path.


Let us know what you think.