Mapping Rules Configuration
In MAS Data Lake, the device data for different device types are stored in their own table.
The tables are named as IOT_<deviceType>
. The configuration items that controls the transformation of
extracted data from SCADA historian for a specific device type, are defined in mapping configuration file.
The location of this configuration file is <InstallRoot>/volume/config/mapping.json
.
Configuration Object
Provide data configuration object in a json formated file:
{
"serviceName": "String",
"serviceType": "String",
"description": "String",
"csvFileName": "String",
"deviceTypes": [
{
"type": "String",
"tagpathFilters": [
"String"
]
}
],
"metrics": {
"name": "String",
"value": "String",
"unit": "String",
"type": "String",
"decimalAccuracy": "String",
"label": "String"
},
"dimensions": {
"tagpath": "String",
"tagid": "String",
"site": "String",
"categories": "String"
}
}
Where:
serviceName
: Defines the name of the service for example PITest1csvFileName
: Name of the CSV file.deviceTypes
: Specifies device type and corresponding tagpath patterns.type
: Specifies device type id.tagpathFilters
: Specifies list of tagpath patterns.
metrics
: This object defines the mapping rule for device metrics data items.name
: Column name in CSV file used to map metric "Name"value
: Metric value is extracted from PI Archive database at runtime. Set this to an empty string in this configuration object.unit
: Column name in CSV file used to map metric "Unit"type
: Column name in CSV file used to map metric "Type"label
: Column name in CSV file used to map metric "Label"decimalAccuracy
: Column name in CSV file used to map metric "Decimal Accuracy"
dimensions
: This object defines the mapping rule for device dimension data. Required items:tagpath
: One or more column name(s) in the CSV file used to create "tag path"tagid
: Column name in the CSV file used to map "tag id" Add more dimension data mappingsite
: Column name in the CSV file used to map "site name".
Sample CSV file (pidemo.csv) used to define mapping.json configuration file
Parent,Name,ObjectType,Error,UniqueID,ParentUniqueID,Description,Categories,AttributeDefaultUOM,AttributeType,AttributeValue,AttributeDataReference,AttributeDisplayDigits
DistillExample\4820Column,Accumulator Level,Attribute,,5ef1040f-b6af-59f7-352c-0442281fb1f9,9f8a3f5d-2d1b-11ec-98b3-06abac9454c4,Liquid level in reflux accumulator,Process Parameters;,%,Double,,PI Point,-5,,,
...
Sample mapping.json
Configuration File for
{
"serviceName": "Service1",
"csvFileName": "pidemo.csv",
"deviceTypes": [
{
"type": "PIDemoType",
"tagpathFilters": [
"DistillExample.*"
]
}
],
"metrics": {
"name": "${Name}",
"value": "",
"unit": "${AttributeDefaultUOM}",
"type": "${AttributeType}",
"decimalAccuracy": "${AttributeDisplayDigits}",
"label": "${Description}"
},
"dimensions": {
"tagpath": "${Parent},${Name}",
"tagid": "${UniqueID}",
"site": "IBMAustin",
"categories": "${Categories}"
}
}
NOTES:
- To map a column name specify the column name within curly brackets
{}
, For example "unit": "${AttributeDefaultUOM}. Column names are case sensitive. The "unit" in pidemo.csv example will map to "lb/h". - You can use comma-separated list of column name(s) to map a metric or dimension data. For example "${Parent},${Name}" mapping rule is used to specify tagpath. The tagpath in this example will map to "DistillExample\4820Column\Bottoms Flow". A back-slash
\
will be used as a field-separator. - DO not use curly brackets
{}
to specify a fixed value. For example "site": "IBMAustin".