Fiware 如何使用Orion上下文代理将TimeInstant、CreationDate和ModifiedDate添加到CrateDB中?
我正在建立一个固件框架,不幸的是,我必须添加历史传感器值。但是我还需要其他用例的creationDate和modificationDate 因此,我添加了属性“Metadata”和变量“TimeInstant”。然后我创建一个实体,为该实体创建Orion订阅,并用我的旧传感器VALES更新该实体 我发送给Orion上下文代理以更新属性的Json文件如下所示:Fiware 如何使用Orion上下文代理将TimeInstant、CreationDate和ModifiedDate添加到CrateDB中?,fiware,fiware-orion,cratedb,Fiware,Fiware Orion,Cratedb,我正在建立一个固件框架,不幸的是,我必须添加历史传感器值。但是我还需要其他用例的creationDate和modificationDate 因此,我添加了属性“Metadata”和变量“TimeInstant”。然后我创建一个实体,为该实体创建Orion订阅,并用我的旧传感器VALES更新该实体 我发送给Orion上下文代理以更新属性的Json文件如下所示: { "metadata": { "TimeInstant": { "type": "DateTime",
{
"metadata": {
"TimeInstant": {
"type": "DateTime",
"value": "2015-02-02T11:35:25.0000Z"
}
},
"type": "Number",
"value": 0.0132361 }
"_id": {
"id": "urn:ngsi-ld:SensorB-K1200____",
"type": "Sensor",
"servicePath": "/test/servicepath"
},
"attrNames": [
"Sensor_value"
],
"attrs": {
"Sensor_value": {
"value": 0.01632361,
"type": "Number",
"md": {
"TimeInstant": {
"type": "DateTime",
"value": 1422876989
}
},
"mdNames": [
"TimeInstant"
],
"creDate": 1568712813,
"modDate": 1568735930
}
},
"creDate": 1568712813,
"modDate": 1568735930,
"lastCorrelator": "0a129232-d964-11e9-8e5a-0242ac130009" }
我的Mongo DB中的输出如下:
{
"metadata": {
"TimeInstant": {
"type": "DateTime",
"value": "2015-02-02T11:35:25.0000Z"
}
},
"type": "Number",
"value": 0.0132361 }
"_id": {
"id": "urn:ngsi-ld:SensorB-K1200____",
"type": "Sensor",
"servicePath": "/test/servicepath"
},
"attrNames": [
"Sensor_value"
],
"attrs": {
"Sensor_value": {
"value": 0.01632361,
"type": "Number",
"md": {
"TimeInstant": {
"type": "DateTime",
"value": 1422876989
}
},
"mdNames": [
"TimeInstant"
],
"creDate": 1568712813,
"modDate": 1568735930
}
},
"creDate": 1568712813,
"modDate": 1568735930,
"lastCorrelator": "0a129232-d964-11e9-8e5a-0242ac130009" }
但我的板条箱DB只有以下列:
实体\u id实体\u类型固件\u服务路径传感器\u值时间\u索引
我的订阅文件如下所示:
{
"expires": "2019-12-24T18:00:00",
"notification": {
"http": {
"url": "http://quantumleap:8668/v2/notify"
},
"metadata": [
"dateCreated",
"dateModified",
"TimeInstant"
]
},
"subject": {
"entities": [
{
"id": "urn:ngsi-ld:SensorB-K1200____",
"type": "Sensor"
}
]
},
"throttling": 0 }
我已尝试更改订阅文件中的“元数据”属性,还尝试重新启动板条箱数据库,例如ContextBroker
我希望CrateDb能够显示所有三个值:“dateCreated”、“dateModified”和“TimeInstant”。您是否检查了Orion实际发送给QuantumLeap的消息通知 关于有效载荷,我将尝试如下:
{
"TimeInstant": {
"type": "DateTime",
"value": "2015-02-02T11:35:25.0000Z"
},
"type": "Number",
"value": 0.0132361
}
在内部,我们通常使用dateObserved作为这类场景的属性名,但它与w.r.t.TimeInstant
没有任何区别
实际上,我不确定是否可以将元数据附加到NGSI消息的根,我相信它们应该只附加到属性。
无论如何,QuantumLeaps不支持NGSI元数据(即附加到NGSI属性的元数据)。它仍然支持基于它们的时间索引
Quantum Leap处理TimeInstant元数据和其他时间元数据的方式是通过
time\u index
。请参阅此处的文档:仅作澄清,您是否使用Orion并将通知直接发送至CrateDB?谢谢您的评论。我基本上遵循了教程()中的步骤。因此,我不直接将通知发送到板条箱数据库,而是按照建议使用Quantum Leap。