如何使用带有fiware-cygnus的原生Flume水槽?

时间:2015-12-04 18:18:45

标签: flume fiware fiware-cygnus

Fiware-cygnus文档提到它基于Apache Flume。但是,目前尚不清楚我是否可以使用原生的Flume接收器来保存来自Orion Context Broker的事件。这是我可以轻松做的事情吗?编码很少(或理想情况下为零)?如果不是 - 很高兴知道为什么(以及这是否可以得到支持)。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过简单配置来使用本机Flume接收器。在配置管理方面,Cygnus没有任何改变,因此您可以配置类似Orion的接收器或本机接收器。

然而,Orion-like和本地Flume水槽之间存在差异。

第一个是类似Orion的接收器存储具有特定结构的相关数据,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-service和fiware-servicePath。 Cygnus的接收器能够处理这些值,以便将通知的数据映射到特定的数据结构(文件夹,数据库,表,资源,队列......)。这对于多租户来说非常重要。

第三,Cygnus为本地Flume未涵盖的存储添加了接收器,例如CKAN,STH,MongoDB,MySQL或DynamoDB。

还有许多其他差异:

  • 使用分组规则。
  • 管理界面。
  • OAuth2身份验证,这是官方FIWARE的机制。
  • ...