2016-06-14 2 views
1

Я пытаюсь сохранить cygnus с помощью монгольской раковины, данных из объектов с эстадрами данных метаданных. До сих пор я не смог этого добиться.Fiware - постоянное сохранение метаданных Cygnus mongoSink

Я использую версию cygnus 0.13.0. Кажется, что можно сохранить информацию метаданных с использованием перегрузок MySQL и CKAN.

¿Возможно ли использование Mongo? ¿Это вопрос конфигурации?

Заранее благодарим за любую помощь.

ответ

1

Cygnus не хранит метаданные атрибутов в MongoDB. Это связано с тем, что мы используем внутреннее использование Лебедя, когда оно сохраняется в MongoDB, что накладывает серьезные ограничения на эту проблему.

В любом случае, изменение кода в вилке себя, чтобы исправить это должно быть относительно легко. Просто посмотрите на этот метод:

private Document createDoc(long recvTimeTs, String entityId, String entityType, String attrName, String attrType, String attrValue) { 

Passing дополнительный параметр String attrMd и добавляющим это значение переменной doc должен сделать трюк:

private Document createDoc(long recvTimeTs, String entityId, String entityType, String attrName, String attrType, String attrValue, String attrMd) { 
    Document doc = new Document("recvTime", new Date(recvTimeTs)); 

    switch (dataModel) { 
     case DMBYSERVICEPATH: 
      doc.append("entityId", entityId) 
        .append("entityType", entityType) 
        .append("attrName", attrName) 
        .append("attrType", attrType) 
        .append("attrValue", attrValue) 
        .append("attrMd", attrMd); 
      break; 
     case DMBYENTITY: 
      doc.append("attrName", attrName) 
        .append("attrType", attrType) 
        .append("attrValue", attrValue) 
        .append("attrMd", attrMd); 
      break; 
     case DMBYATTRIBUTE: 
      doc.append("attrType", attrType) 
        .append("attrValue", attrValue) 
        .append("attrMd", attrMd); 
      break; 
     default: 
      return null; // this will never be reached 
    } // switch 

    return doc; 
} // createDoc