如何使用 Orion Context Broker 将 TimeInstant、CreationDate 和 ModifiedDate 添加到 CrateDB 中?

How to add TimeInstant, CreationDate and ModifiedDate into CrateDB with Orion Context Broker?

我正在设置一个固件框架,不幸的是我必须在其中添加历史传感器值。但我还需要其他用例的 creationDate 和 modificationDate。

因此我添加了带有变量 "TimeInstant" 的属性 "Metadata"。然后我创建一个实体,为该实体创建一个 Orion-Subscription 并使用我的旧 Sensor-Valses 更新该实体。

我发送到 Orion-Context Broker 以更新属性的 Json-文件如下所示:

{
"metadata": {
    "TimeInstant": {
        "type": "DateTime",
        "value": "2015-02-02T11:35:25.0000Z"
    }
},
"type": "Number",
"value": 0.0132361 }

我的 Mongo-DB 中的输出是这样的:

"_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" }

但我的 Crate-DB 只有以下列: entity_id entity_type fiware_servicepath sensor_value time_index

我的订阅文件如下所示:

{
"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 }

我试过更改订阅文件中的 "Metadata" 属性,还尝试重新启动 Crate-DB、ContextBroker,例如

我希望 CrateDb 显示所有三个值:"dateCreated"、"dateModified" 和 "TimeInstant"。

你有没有查看Orion实际发送给QuantumLeap的消息通知是什么?

关于有效载荷,我会尝试如下:

{
  "TimeInstant": {
    "type": "DateTime",
    "value": "2015-02-02T11:35:25.0000Z"
  },
  "type": "Number",
  "value": 0.0132361
}

在内部我们通常使用 as 属性名称来处理此类场景 dateObserved,但不会有任何区别 w.r.t。 TimeInstant.

我实际上不确定您是否可以将元数据附加到 NGSI 消息的根,我相信它们应该只附加到属性。 总之,QuantumLeaps 不支持 NGSI 元数据(即附加到 NGSI 属性的元数据)。它仍然支持基于它们的时间索引。

Quantum Leap 处理 TimeInstant 元数据和其他时间元数据的方式是通过 time_index。请参阅此处的文档:https://quantumleap.readthedocs.io/en/latest/user/#time-index