Fork me on GitHub

nifi-大数据基础03——处理器认识_2

下面列举几个常常使用的一些处理器:1、数据转换;2、路由和调解;3、数据库的访问;4、属性提取;5、数据的提取;6、数据出口/发送数据;7、系统交互;8、分裂和聚合;9、http

 

1、数据转换

  CompressContent:压缩或者解压

  ConvertCharacterSet:将用于编码内容的字符集从一个字符集转换成另一个字符集

  EncryptContent:负责加密和解密

  ReplaceText:使用正则表达式对文本内容进行更改

  TransormXML:应用XSLT转换XML内容

  JoltTransformJSON:应用JOLT规范来转换json内容

 

2、路由和调解

  ControlRate:限制流程中数据流经莫部分的速率
  DetectDuplicate:根据一些用户自定义的标准去监视发现重复的FlowFile,通常和HashContent一起使用
  DistributeLoad: 通过向用户自定义的关系中分发部分数据来实现负载均衡或者取样
  MonitorActivity: 用户可以设定一个时间间隔,如果在这段时间内没有数据流经指定的位置则会发送一个通知。同时用户也可以选择在  数据恢复的时候收到通知
  RouteOnAttribute:根据flowfile的属性对其进行分发到不同的relationship
  ScanAttribute: 查看一个flowfile中用户自定义的属性,并判断是否有属性在用户自定义词典中存在
  RouteOnContent: 用户可以指定一个正则表达式,当一个flowfile包含的内容符合该正则表达式,则将该flowfile分发到指定的relationship
  ScanContent:用户可以自定义一个词典,并判断一个flowfile包含的数据中是否包含这些词来确定路径
  ValidateXML: 用户可以自定义XML的文档结构,并通过一个XML 内容是否合法来确定flowfile的路径

3、数据库的访问

ConvertJSONToSQL:将json文档内容转化为Insert或者Update SQL语句,然后传给PutSQL处理器执行
ExecuteSQL: 执行用户自定义的SELECT 语句,并将执行的结果以Avro的格式写入到一个flowfile中
PutSQL:通过Flowfile中的内容对数据库进行更新(flowfile包含的是一些数据库DDM语句)、
SelectHiveSQL:用户自定义一个HiveQL SELECT语句并在一个Apache Hive数据库中执行,并将查询结果一Avro或者CSV的格式写入到flowfile中
PutHiveQL:通过flowfile中包含的HiveQL DDM语句来对Hive数据库进行更新。

4、属性提取

EvaluateJsonPath:用户需要给定一个JSONPath的表达式,这个表达式将对flowfile中的json内容进行操作。
EvaluateXPath:用户给定XPath的表达式,这个表达式将用来操作flowfile中的XML内容可以提取XML中指定的内容或者是替换指定的内容
EvaluateXQuery:用户给定一个XQuery的查询,并根据这个查询来对XML内容进行替换或者提取指定的内容,并放到用户设定的属性中。
ExtractText:用户提供一个或多个正则表达式,这些表达式将从文本内容中提取指定的内容,并保存在用户命名的属性中
HashAttribute:对用户自定义的一个属性列表进行哈希
HashContent:对flowfile中的内容计算哈希值,并将此哈希值作为flowfile的一个属性
IdentifyMimeType:通过flowfile包含的内容判定flowfile的类型,支持许多类型,例如:images,word processor documents,compression format
UpdateAttribute:添加一些用户定义的属性或者对已有用户自定义属性进行更改。

5、数据提取

GetFile:从硬盘中读取文件中的内容,并删除该文件
GetFTP:通过FTP读取一个远程的文件,并删除原始文件
GetJMSQueue:从JMS消息队列中下载消息,并将消息封装为flowfile
GetJMSTopic:从JMS topic中下载消息并封装为flowfile
GetHttp:给定一个Http或者Https的URL,处理器将会记录实体标记以及最后的更新日期以保证不会持续读取数据
ListenHttp:启动一个Http server,并监听连接请求。对于一个post请求,将请求的内容写入到flowfile中
ListenUDP:监听到来的UDP数据包,并将每个数据包封装为一个flowfile,并通过success relationship来传输flowfile
GetHDFS:监控HDFS中一个用户指定的目录,当一个文件进入HDFS时,就将改文件复制到nifi中并从HDFS中删除
ListHDFS/FetchHDFS:用户需要指定一个目录,这个目录下的每一个文件都将被封装为一个flowfile。
FetchS3Object:将亚马逊S3中对象的内容取出,并封装为flowfile
GetKafka:从kafaka中取出消息,封装为一个或者多个flowfile
GetMongo:通过执行一个用户查询命令从Mongo中取出数据,并封装为flowfile
GetTwitter:允许用户注册过滤器来监听Twitter或者一个企业终端,并将每个消息封装为flowfile

6、数据出口/发送数据  

PutEmail:向执行的收件人发送邮件。flowfile中的内容将作为邮件的附件
putFile:将flowfile中的内容写入到指定的目录下
PutFTP:将flowfile中的内容复制到一个FTP 服务器上
PutSFTP:将flowfile中的内容复制到一个SFTP服务器上
PutJMS:将flowfile中的内容作为JMS消息发送到JMS代理
PutSQL:flowfile中包含的是一些sql语句(Insert,update,delete),该处理器将执行sql语句。同时支持参数化的sql语句。
PutKafaka:将flowfile中的内容作为消息发送给Apache Kafaka,可以将flowfile中整个内容作为一个消息也可以指定分隔符将其封装为多个消息。
PutMongo:将flowfile中的内容insert或者update到Mongo中


7、系统交互

  • ExecuteProcess:
  •  ExecuteStreanCommand:

 

8、分裂和聚合

SplitText:SplitText接收单个FlowFile,其内容为文本,并根据配置的行数将其拆分为1个或者多个Flower.列如可以将处理器的配置为Flower拆分为多个Flower,每个Flower只有一行
SplieJson:允许用户将包含数组或者多个子对象的Json对象拆分为json元素的Flower
SplitXml:
UnpackContent;
SegmentContent:
MerContent:
SplitContent:

 

9、http

    • GetHTTP:
    •  ListenHTTP:
    •  InvokeHTTP:
    •  PostHTTP:
    •  HandleHttpResponse:
      ]
posted @ 2022-03-23 10:50  小百天  阅读(593)  评论(0)    收藏  举报