How the extractor processes data
The Cognite PI extractor extracts the time series data from the PI Data Archive according to your filters, creates corresponding time series in CDF, and then feeds all PI points to the time series in CDF. The extractor supports CDF data sets, and each extractor can push data into one data set. In CDF, the time series get an external ID composed of a configurable prefix and the PI point name. You can configure the extractor to use the PI point ID if the PI points don’t have unique names.Extraction modes
The Cognite PI extractor runs one or more of these tasks concurrently:- Backfill - Fills in historical data backward from the first data point in CDF.
- Frontfill - Fills in historical data forward from the last data point in CDF.
- Streaming - Adds data points to CDF in real-time.
CDF receives data points from streaming that may be later removed in PI by compression. For this reason, there may be more data points in CDF than in PI.
Time series processing
The extractor runs an update task on a schedule, by default, every 24 hours and when it reconnects to the PI server after downtime. The update task discovers new PI Points and adds the corresponding time series in CDF, including the metadata. If a PI Point has been deleted on the PI server, the extractor doesn’t remove the associated time series in CDF. The extractor logs the deletion and keeps track of the number of deleted PI Points. The extractor resets the number when it restarts or reconnects to the PI server. This is the mapping between PI Point attributes (metadata) and fields to time series attributes and metadata in CDF:| Source (PI Point) | Destination (CDF) |
|---|---|
engunits | Unit |
descriptor | Description |
PointType | IsString The PIPointType maps to numeric (IsString = false) for Digital, Float16/32/64, Int16/32 and Timestamp. All other types (including String) maps to IsString = true. |
Name | Name |
| Attributes (filters below) | MetaData, every value converted to string |
<prefix> + Name | ExternalId, LegacyName |
step attribute equal to 1 | IsStep |
creationdate, creator, changedate, changer, ptowner, ptgroup, ptaccess, ptsecurity, dataowner, datagroup, dataaccess, and datasecurity.
Data points processing
Each data point in the source has a source timestamp, a generic value, and aIsGood flag.
The extractor sets the source timestamp in PI as the data point timestamp in CDF. Because the timestamp resolution in PI is higher than in CDF (milliseconds), multiple data points in PI can be mapped to the same timestamp in CDF. In the unlikely event that this should happen, the PI extractor can’t guarantee which data point it extracts to CDF.
The IsGood flag in PI indicates that there is an issue reading the value from the sensor or control system. In these cases, the PI value may be a string description even though the PI Point has a numeric type. The extractor ignores data points with IsGood = false. For IsGood = true, it tries to convert the value to the CDF time series type. If the conversion fails, typically only for numeric time series in CDF, the data point is ignored. The extractor logs the number of ignored data points.
The extractor ignores PI’s unit of measure (UOM) property per data point.