#PARSER PQL
#DEFINE BACKUPSCHEMA [['sum1', 'Double'],['sum2', 'Double'],['sumWindowSqr', 'Double'],['sumWindow', 'Double'],['m2', 'Double'],['mean', 'Double'],['backupId', 'String'],['k', 'Double'],['standardDeviation', 'Double'],['n', 'Double'],['group', 'Double'],['backupId', 'String']]
#ADDQUERY
/// Read backup data from the database
backupMongo = MONGODBSOURCE({
database = 'odysseus',
port = 27017,
host = 'localhost',
collectionname = 'condition'
}
)
/// Convert backup data to tuples
backupTuple = KEYVALUETOTUPLE({
schema=${BACKUPSCHEMA},
TYPE = 'Backup',
KEEPINPUT = 'false'
},
backupMongo
)
/// Run DeviationLearn and use backup data, if it exists ("Recovery")
deviationLearner = DEVIATIONLEARN({
trainingmode = 'ONLINE',
nameofparameterattribute = 'vibration',
uniquebackupid = 'dev1'
},
System.fridgeVibration,
backupTuple
)
/// Convert backup data from port 2 to a key value object
keyValueOp = TUPLETOKEYVALUE({
type='KEYVALUEOBJECT'
},
2:deviationLearner
)
/// Save the backup data to the database
mongoSink = MONGODBSINK({
database = 'odysseus',
port = 27017,
host = 'localhost',
collectionname = 'condition',
batchsize = 1,
deletebeforeinsert = 'true',
deleteequalattribute = 'backupId'
},
keyValueOp
) |