Apache Nifi技术内幕

匿名 (未验证) 提交于 2019-12-03 00:21:02
2.4.4 Controller Service分类介绍
AvroReader
AvroReader解析Avro数据并且将每个Avro记录解析为一个独立的记录对象返回。解析Avro的schema可以来自于数据本身,也可以通过“Schema Access Strategy”属性配置的策略去Schema注册服务获取Schama。
AvroRecordSetWriter
将记录集的内容写成Avro二进制格式。Schama同样可以通过“Schema Access Strategy”属性配置的策略去Schema注册服务获取。
AvroSchemaRegistry

提供一个Schama集中注册管理的服务。可以通过添加动态属性来添加Schama,其中动态属性的名称就是Schama的名称,动态属性的值就是Schama。

ConfluentSchemaRegistry
???????????
CSVReader
解析CSV格式的数据,并将CSV文件的每一行作为一个单独的解析对方返回。默认情况下它会将CSV文件第一行认为是列名称,将之后的行作为实际的数据。
CSVRecordSetWriter
将记录集的内容写成CSV格式数据。默认第一行写的是列名称(如果想取消可将“Include Header Line”属性设置成false)。后面的行将会写入记录集的值。
SimpleCsvFileLookupService
一个以CSV文件格式为基础的可重载的查询服务。
DistributedMapCacheClientService
提供访问DistributedMapCacheServer的访问能力。可以用在NiFi集群各个节点之间共享Map的场景。
DistributedMapCacheServer
提供一个可通过Socket方式访问的map缓存服务。这个服务通常与DistributedMapCacheClientService一起使用,为NiFi集群各节点提供共享Map的功能。
DistributedSetCacheClientService
提供访问DistributedSetCacheServer的能力。通常用在NiFi集群各节点之间共享一个无重复值的Set集合。
DistributedSetCacheServer
提供一个可通过Socket方式访问的无重复值的Set集合服务。这个服务通常与DistributedSetCacheClientService一起使用,为NiFi集群各节点之间共享一个无重复值的Set集合。
PropertiesFileLookupService
一个以Properties文件格式为基础的可重载的查询服务。
XMLFileLookupService
一个以XML文件格式为基础的可重载的查询服务。
HBase_1_1_2_ClientMapCacheService
和DistributedMapCache不一样,HBase_1_1_2_ClientMapCacheService提供将Hbase表作为缓存来使用的能力。使用HBase_1_1_2_ClientService控制器来与Hbase进行高效通信。
HBase_1_1_2_ClientService
实现了一个针对1.1.2版本HBase的HBaseClientService。访问HBase所依赖的配置文件路径可以以逗号为分隔符填写配置文件属性。配置文件在Controller Service启动的时候会被加载,并且NiFi中的配置与依赖文件里面的属性相同的时候,依赖文件的属性会被覆盖。另外用户自定义的属性同样会被传递到HBase的配置项中。
JettyWebSocketClient
对WebSocketClientService的Jetty实现。利用Jetty WebSocket客户端模块来为应用提供WebSocket的会话管理功能。
JettyWebSocketServer
对WebSocketServerService的Jetty实现。利用Jetty WebSocket服务端模块来为应用提供WebSocket的会话管理功能。
JsonPathReader
JsonPathReader Controller Service,解析JSON格式的FlowFile。用户可以根据自己的需要配置需要读取的JSON特定字段的JSON Path来提取并组合成自己需要的记录信息。对于JsonPathReader来说,只有当用户定义的JSON Path被正确配置完成,才能正常工作。
如果当FlowFile内容中的JSON在利用JSON Path解析是个数组的时候,那么每个数据元素都会解析成一个单独的对象。另外,当只是个对象的时候,那么解析出来的时候同样也只是单个对象。
JsonRecordSetWriter
将需要输出的结果写成JSON数组格式。即使输出的结果只是单独的一行,同样会被写成JSON数组格式,只不过这个JSON数据只有单个节点。
JsonTreeReader
和JsonPathReader的区别是,JsonTreeReader根据用户配置的JSON Path解析FlowFile JSON的时候,不仅仅只获取完全匹配的值还会将匹配到的节点元素下面所有的元素都会被解析成对象。其它的使用方法可以参照JsonTreeReader。
MongoDBControllerService
提供一个包括MongoDB驱动大部分功能的Controller Service。
MongoDBLookupService
提供基于MongoDB的查询功能。用户定义添加的属性将会被作为MongoDB的查询结果字段。查询结果会以JSON的键值对的格式返回。注意:当有多个结果被查询到的时候 只会返回第一个结果,因为它内部使用的是findOne查询方法。另外,当查询到结果,但是结果中没有定义字段的时候,这个时候结果的'id'将会被作为结果返回。
RedisConnectionPoolService
提供Redis连接池服务。
RedisDistributedMapCacheClientService
是DistributedMapCacheClient的Redis实现。由于这个Controller Service依赖了Redis的WATCH,MULTI和EXEC指令。而当Redis处于集群模式的时候,这些命令不能完全支持。这就导致此功能只能适用于Redis的单机模式和HA的sentinel模式。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!