2015-04-23 1 views
2

До сих пор я сконфигурировал ContextBroker для отправки данных в Cygnus, который, в свою очередь, сохраняет данные по умолчанию в базе данных.Как указать поля Fiware-Service и Fiware-ServicePath в Orion, которые задают имя базы данных MySQL и таблицы в Cygnus?

Но что, если я хочу настроить таргетинг на конкретную базу данных с помощью конкретной таблицы?

Я знаю, что я должен установить:

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

Я не знаю, где этот файл, и я знаю, что оно не в/и т.д./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

Невозможно установить имя dbName и tableName, так как это значения, автоматически определяемые Cygnus на основе уведомляемых значений 'fiware-service',' fiware-servicePath', 'entityId' и' entityType'. Таким образом, вам нужно знать, как устанавливать эти значения в Orion, особенно 'fiware-service' и' fiware-servicePath' (fgalan собирается дать вам точную информацию об этом). – frb

ответ

1

Fiware-Service и Fiware-ServicePath устанавливаются во время создания сущности при использовании HTTP-заголовков в запросе REST для создания сущности. Пожалуйста, обратитесь к следующим разделам в Руководстве Orion пользователя:

UPDATE: например, для того, чтобы создать объект в сервис «Служанка» и service path "/ 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 для этого.

+0

Я читал это, и я до сих пор не понимаю, что именно мне нужно сделать. Если я хочу настроить таргетинг на базу данных MySql, называемую «FIware_Test» в моем примере. И затем я хочу хранить все данные независимо от entetyID в одной таблице с именем Sensors_Data. Другими словами, я не хочу, чтобы новая таблица для каждого entetyID была, я хочу все это в одной таблице. – Vrankela

+0

Просто знать, как изменить мой предыдущий ответ, чтобы быть более понятным ... Должен ли я понять, что вы знаете и понимаете, что такое HTTP-заголовок? – fgalan

+0

что вещь в команде curl? – Vrankela