Fiware 如何使用Orion上下文代理将TimeInstant、CreationDate和ModifiedDate添加到CrateDB中?

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",

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

因此,我添加了属性“Metadata”和变量“TimeInstant”。然后我创建一个实体,为该实体创建Orion订阅,并用我的旧传感器VALES更新该实体

我发送给Orion上下文代理以更新属性的Json文件如下所示:

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