BD MYSQL Cygnus FIWARE建模

时间:2017-09-26 20:34:09

标签: mysql fiware fiware-orion fiware-cygnus

我正在尝试在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

正如你在图片中看到的那样

1 个答案:

答案 0 :(得分:1)

如果我理解得很好,你需要使用Cygnus的分组规则(GR)。或者,在最近的版本中可用,Name Mappings(NM);类似于分组规则,但更有效和灵活。

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

  • GR直接允许您更改entity_identity_type的完整串联,例如,指定您希望有关car类型的所有实体的信息存储在{{1}中表格。
  • NM以更细粒度的方式进行替换,允许您修改all_carsentity_id或两者(甚至更多邪恶选项:-))。例如,您可以说要按entity_type替换所有实体ID,all替换car实体类型;最后,你将拥有与GR相同的行为:cars

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

请查看GR文档。还有NM