Документация Fiware-cygnus упоминает, что она основана на Apache Flume. Тем не менее, неясно, могу ли я использовать родные поглотители Flume для сохранения событий, поступающих из Orion Context Broker. Это что-то, что я могу легко сделать, с небольшим (или идеально нулевым) кодированием? Если нет - было бы полезно знать, почему (и можно ли это поддерживать в будущем). Благодаря!Как я могу использовать родные приемники Flume с помощью fiware-cygnus?
ответ
Вы можете использовать нативные приемники 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.
- ...
Спасибо, теперь разница ясна. Возможно ли достичь аналогичного результата с помощью одного (одного) перехватчика потока, потенциально используемого с различными стандартными приемниками Flume? –
Да, если раковина представляет собой просто сериализующую раковину (это не происходит с CKAN, MySQL, STH и т. Д.), И вы не хотите контролировать, как отображаемая карта маршрута сервиса и программного обеспечения для программных приложений для конкретных данных конечного хранилища структуры, такие как базы данных, таблицы, ресурсы и т. д. Даже с HDFS мы играем с этими значениями, чтобы создать соответствующую папку HDFS. – frb
Я отредактировал ответ, чтобы добавить более подробную информацию о моем последнем комментарии. – frb