因为一些原因本人着手从事nifi的项目开发,鉴于国内对于该框架的使用较少,并且在不能翻墙的情况下也基本只有官方文档可以使用,所以开个坑来记录一些目前使用到的比较多的组件。
nifi作为一个开源的数据处理工具,其功能非常强大,因为其内部功能是使用的Java代码进行的实现,所以在理论上它可以处理绝大部分的数据信息。
组件内部通过processor和FlowFile进行数据交流,flowfile作为数据流动的载体,processor对数据进行操作。
FlowFile由两个组件组成:FlowFile属性和FlowFile内容。 内容是由FlowFile表示的数据。 属性是提供关于数据的信息或上下文的特性; 它们由键值对组成。 所有FlowFiles都具有以下标准属性:
- uuid :FlowFile的唯一标识
- filename :将数据存储到磁盘或外部服务时可以使用的可读文件名
- path :在将数据存储到磁盘或外部服务时可以使用的分层结构化值,以便数据不会存储在单个目录中
Processor 处理器是用于监听传入数据的NiFi组件; 从外部来源提取数据; 发布数据到外部来源; 并从FlowFiles中路由,转换或提取信息。
- Relationship :每个处理器具有零个或多个为其定义的关系。 这些关系被命名以表示处理FlowFile的结果。 处理器处理完 FlowFile之后,它会将FlowFile路由(或“传送”)到其中一个关系。
当了解以上信息之后就可以着手实现一个最简单的流程了。