我们正在使用Orion Context broker,现在与QuantumLeap和CrateDB结合使用。我们不太熟悉QuantumLeap,需要帮助处理一些我们觉得奇怪的事情。
在Context Broker中,我们有一个带有数据的实体:
{
"id": "SC-5C0272FFFE8C206C",
"type": "StreetlightControlCabinet",
"activePowerR": {
"type": "Number",
"value": 0.7456,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2021-12-01T16:33:13.00Z"
}
}
},
"activePowerS": {
"type": "Number",
"value": 0.5747,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2021-12-01T16:33:13.00Z"
}
}
},
"activePowerT": {
"type": "Number",
"value": 0.4297,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2021-12-01T16:33:13.00Z"
}
}
},
.......
}
所有三个属性都具有Number值;IoT代理MQTT/JSON";。
Quantum Leap已订阅Context Broker:
{
"description": "QL - StreetlightControlCabinet",
"subject": {
"entities": [
{
"idPattern": ".*",
"type": "StreetlightControlCabinet"
}
],
"condition": {
"attrs": [
"activePowerR",
"activePowerS",
"activePowerT",
...
]
}
},
"notification": {
"http": {
"url": "http://quantumleap:8668/v2/notify"
},
"metadata": ["dateCreated", "dateModified", "timestamp"],
"attrs": [
"activePowerR",
"activePowerS",
"activePowerT",
.....
]
}
}
QuantumLeap(V0.5(仅当序列中的第一个值是小数(如0.7456(时,才会创建具有浮点值类型的CrateDB数据序列。
如果序列中的第一个值可以在不丢失精度的情况下转换为整数(如0、1.0、2.0等(,QuantumLeap将在CrateDB中创建具有整数基类型的数据序列。因此,在数据库中,以下所有传入数据都将被截断为整数。
所以这很奇怪,因为在QuantumLeap来源中;数字";属性类型应始终映射到";浮动";CrateDB中的数据类型。
有人能解释这个问题可能是什么吗?
接下来,要解决这个问题,您有两个选项:
- 删除表,并从头开始数据收集(的当然,只有当你不需要保存数据时,这才有效发送(
- 手动修改cratedb中的元数据和表
如果没有帮助,请联系我们https://github.com/orchestracities/ngsi-timeseries-api如有需要,我们还提供企业支持。