2015-12-04 3 views
2

Документация Fiware-cygnus упоминает, что она основана на Apache Flume. Тем не менее, неясно, могу ли я использовать родные поглотители Flume для сохранения событий, поступающих из Orion Context Broker. Это что-то, что я могу легко сделать, с небольшим (или идеально нулевым) кодированием? Если нет - было бы полезно знать, почему (и можно ли это поддерживать в будущем). Благодаря!Как я могу использовать родные приемники Flume с помощью fiware-cygnus?

ответ

1

Вы можете использовать нативные приемники Flume, просто сконфигурировав их. Ничего не изменилось в Cygnus с точки зрения управления конфигурацией, таким образом вы можете настроить орин-подобный приемник или собственный.

Тем не менее, существуют различия между орион-подобными и родными раковинами.

Первый - это поглотители, похожие на Орион, хранят соответствующие данные с определенной структурой, а родные раковины Flume будут хранить уведомленные необработанные данные. Я имею в виду, если вы получите уведомление на Json на основе таких как:

{ 
     "subscriptionId" : "51c0ac9ed714fb3b37d7d5a8", 
     "originator" : "localhost", 
     "contextResponses" : [ 
      { 
       "contextElement" : { 
       "attributes" : [ 
        { 
         "name" : "speed", 
         "type" : "float", 
         "value" : "112.9", 
         "metadatas": [] 
        }, 
        { 
         "name" : "oil_level", 
         "type" : "float", 
         "value" : "74.6", 
         "metadatas": [] 
        } 
       ], 
       "type" : "car", 
       "isPattern" : "false", 
       "id" : "car1" 
      }, 
      "statusCode" : { 
       "code" : "200", 
       "reasonPhrase" : "OK" 
      } 
     ] 
    } 

OrionHDFSSink будет хранить что-то вроде:

{"recvTimeTs":"1429535775","recvTime":"2015-04-20T12:13:22.41.124Z","fiware-servicePath":"4wheels","entityId":"car1","entityType":"car","attrName":"speed","attrType":"float","attrValue":"112.9","attrMd":[]} 

Но аборигенная HDFS утонуть (или любой другой) будет сохраняться всей уведомлен JSON.

Второе основное отличие в том, что обработка уведомляемого программного обеспечения и услуги fiware-servicePath. Умывальники Cygnus могут справляться с этими значениями, чтобы сопоставить полученные данные в конкретных структурах данных (папки, базы данных, таблицы, ресурсы, очереди ...). Это очень важно для многопользовательских целей.

В-третьих, Cygnus добавляет раковины для хранилищ, не покрытых родными Flume, таких как CKAN, STH, MongoDB, MySQL или DynamoDB.

Есть много других различий:

  • использования правил группирования.
  • Интерфейс управления.
  • Аутентификация OAuth2, которая является официальным механизмом FIWARE.
  • ...
+0

Спасибо, теперь разница ясна. Возможно ли достичь аналогичного результата с помощью одного (одного) перехватчика потока, потенциально используемого с различными стандартными приемниками Flume? –

+0

Да, если раковина представляет собой просто сериализующую раковину (это не происходит с CKAN, MySQL, STH и т. Д.), И вы не хотите контролировать, как отображаемая карта маршрута сервиса и программного обеспечения для программных приложений для конкретных данных конечного хранилища структуры, такие как базы данных, таблицы, ресурсы и т. д. Даже с HDFS мы играем с этими значениями, чтобы создать соответствующую папку HDFS. – frb

+0

Я отредактировал ответ, чтобы добавить более подробную информацию о моем последнем комментарии. – frb