gpt4 book ai didi

mysql - 建模 BD MYSQL Cygnus FIWARE

转载 作者:行者123 更新时间:2023-11-29 02:43:37 25 4
gpt4 key购买 nike

我正在尝试在 MYSQL 中为我的数据库建模,我希望我的结构由一个数据收集表组成,该表将自动生成 cygnus,然后是与温室和用户相关的那些数据的后续表。

将每个用户的所有传感器的所有数据放在一个表中,然后将其与每个用户和温室相关联,我认为这将是正确的方法。

但我正在尝试创建两个订阅,一个是此表中元数据的实体 ID,另一个是另一个实体 ID,但它会自动为我创建两个表,我的想法是将它们合而为一。

这是怎么做到的?

enter image description here

我附上我的实体:

GET /v2/entities/ HTTP/1.1
Host: 1.2.3.4:1026
Accept: application/json
Content-Type: application/json
Fiware-Service: pruebastienda
Fiware-ServicePath: /tienda1
Cache-Control: no-cache
Postman-Token: e19de386-ca21-cd7d-cd24-f1dee9487196

[
{
"id": "palmerillas",
"type": "invernadero",
"pressure2": {
"type": "Integer",
"value": 6,
"metadata": {}
},
"sensor32": {
"type": "Integer",
"value": 1,
"metadata": {}
},
"sensor42": {
"type": "Integer",
"value": 44,
"metadata": {}
},
"temperature2": {
"type": "float",
"value": 4,
"metadata": {
"accuracy": {
"type": "Float",
"value": 9
}
}
}
},
{
"id": "palmerillas2",
"type": "invernadero2",
"pressure2": {
"type": "Integer",
"value": 6,
"metadata": {}
},
"sensor32": {
"type": "Integer",
"value": 1,
"metadata": {}
},
"sensor42": {
"type": "Integer",
"value": 44,
"metadata": {}
},
"temperature2": {
"type": "float",
"value": 4,
"metadata": {
"accuracy": {
"type": "Float",
"value": 9
}
}
}
}
]

还有我的订阅:

GET /v2/subscriptions/ HTTP/1.1
Host: 1.2.3.4:1026
Accept: application/json
Fiware-Service: pruebastienda
Fiware-ServicePath: /tienda1
Cache-Control: no-cache
Postman-Token: 7898a397-2018-42fc-7edf-e35f25105901

[
{
"id": "59ca8b394df7c75fee3e1969",
"description": "A subscription to get info about palmerillas",
"status": "active",
"subject": {
"entities": [
{
"id": "palmerillas",
"type": "invernadero"
}
],
"condition": {
"attrs": [
"pressure2"
]
}
},
"notification": {
"timesSent": 2,
"lastNotification": "2017-09-26T17:16:04.00Z",
"attrs": [
"temperature2",
"pressure2",
"sensor32",
"sensor42"
],
"attrsFormat": "legacy",
"http": {
"url": "http://localhost:5050/notify"
},
"lastSuccess": "2017-09-26T17:16:04.00Z"
}
},
{
"id": "59ca8bb94df7c75fee3e196a",
"description": "A subscription to get info about palmerillas",
"status": "active",
"subject": {
"entities": [
{
"id": "palmerillas2",
"type": "invernadero2"
}
],
"condition": {
"attrs": [
"pressure2"
]
}
},
"notification": {
"timesSent": 2,
"lastNotification": "2017-09-26T17:17:56.00Z",
"attrs": [
"temperature2",
"pressure2",
"sensor32",
"sensor42"
],
"attrsFormat": "legacy",
"http": {
"url": "http://localhost:5050/notify"
},
"lastSuccess": "2017-09-26T17:17:56.00Z"
}
}
]

编辑:

表的名称是:

tienda1_palmerillas_invernadero AND tienda1_palmerillas2_invernadero2

如图所示

最佳答案

如果我理解得很好,您需要使用 Cygnus 的分组规则 (GR)。或者,在最新版本中可用的名称映射 (NM);类似于分组规则,但更高效和灵活。

简而言之,GR(或 NM)允许您使用后端存储元素的名称(对于 MySQL,是存储数据的表的名称)。默认情况下,此类名称基于 entity_id 的串联和 entity_type (加上其他前缀,如 MySQL 的情况,其中 FIWARE 服务路径是前缀)。然而,使用 GR(或 NM),你可以改变这样的连接:

  • GR 直接允许您更改 entity_id 的完整串联和 entity_type , 指定,例如,您需要有关类型 car 的所有实体的信息存储在 all_cars 中表。
  • NM 以更细粒度的方式进行替换,允许您修改 entity_id , entity_type ,或两者兼而有之(甚至,还有更多邪恶的选择:-))。例如,您可以说您想要将所有实体 ID 替换为 allcar实体类型 cars ;最后你会有与 GR 相同的行为:all_cars .

请注意,替换只会影响命名过程;表中存储的数据保持不变。

请看GR文档。和 NM

关于mysql - 建模 BD MYSQL Cygnus FIWARE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46435336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com