我如何在Orion中指定在Cygnus中设置MySQL数据库和表名称的Fiware-Service和Fiware-ServicePath字段?

时间:2015-04-23 07:12:40

标签: fiware fiware-orion fiware-cygnus

到目前为止,我已将ContextBroker配置为向Cygnus发送数据,而Cygnus又按数据库中的默认名称保存数据。

但是如果我想用特定的表来定位特定的数据库呢?

我知道我必须设置:

dbName=<fiware-service> 
tableName=<fiware-servicePath>_<entityId>_<entityType>

我不知道那个文件在哪里,我知道它不在/ etc / sysconfig / contextBroker中,因为该文件夹不存在。

EDIT1:这是我的updatecontext:

(curl localhost:1026/NGSI10/updateContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Fiware-Service: FiwareDatabase' --header 'Fiware-ServicePath: /AllSensors' -d @- ) <<EOF
{
    "contextElements": [
        {
            "type": "Television",
            "isPattern": "false",
            "id": "TV2",
            "attributes": [
            {
                "name": "channel",
                "type": "integer",
                "value": "14"
            },
            {
                "name": "volume",
                "type": "float",
                "value": "9"
            }
            ]
        }
    ],
    "updateAction": "APPEND"
}
EOF

正如我所说,表确实会自动创建,但数据库不会。

1 个答案:

答案 0 :(得分:1)

使用实体创建REST请求中的HTTP标头,在实体创建时设置Fiware-Service和Fiware-ServicePath。请查看Orion用户手册中的以下部分:

UPDATE :例如,为了在服务“servA”和服务路径“/ path1”中创建实体,您可以使用the create entity section in the manual中显示的示例添加两个附加HTTP标头到卷曲线:

(curl localhost:1026/v1/updateContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Fiware-Service: servA' --header 'Fiware-ServicePath: /path1' -d @- | python -mjson.tool) <<EOF
...

这将在以下MySQL数据库/表中插入信息(假设Cygnus配置正确,订阅正确等):

dbName=servA
tableName=path1_<entityId>_<entityType>

请注意,默认行为是将每个实体的信息存储在不同的表中。可以更改默认行为,但如果您对这种可能性感兴趣,请在StackOverflow中创建一个新问题来处理。