首页 > 其他分享 >ETL工具-nifi干货系列 第九讲 处理器EvaluateJsonPath,根据JsonPath提取字段

ETL工具-nifi干货系列 第九讲 处理器EvaluateJsonPath,根据JsonPath提取字段

时间:2024-04-08 13:24:34浏览次数:23  
标签:nifi json JSON flowfile JsonPath Path EvaluateJsonPath 属性

1、其实这一节课本来按照计划一起学习RouteOnAttribute处理器(相当于java中的ifelse,switch case 控制语句),但是在学习的过程中遇到了一些问题。RouteOnAttribute 需要依赖处理器EvaluateJsonPath,所以本节课我们一起来学习下EvaluateJsonPath处理器。如下图所示:

 本节课的示例依然很简单:

GenerateFlowFile 产生测试json字符串:{"name":"Javax 小金刚","id":"2"}

JoltTransformJSON 转换json结构:{"person":{"name":"Javax 小金刚","id":"2"}}

EvaluateJsonPath 提取指定字段(下一节课进行路由)

LogAttribute 打印属性到日志文件nifi-app.log

2、EvaluateJsonPath,此处理器的作用是根据jsonPath提取json数据中指定的属性

 Destination:下拉选项有flowfile-content和flowfile-attribute,默认值flowfile-content,用于指示 JsonPath 提取结果是写入到 FlowFile 内容还是 FlowFile 属性中。如果选择属性,必须指定属性名称。如果设置为 flowfile-content,则只能指定一个 JsonPath,属性名称会被忽略。这里选择flowfile-attribute进行演示。

Return Type:下拉选项有auto-detect、json、scalar,默认值为auto-detect,用于指示 JSON Path 表达式的期望返回类型属性。选择 'auto-detect' 会根据目标的设置来确定返回类型:对于目标为 'flowfile-content' 的情况,返回类型将设置为 'json';对于目标为 'flowfile-attribute' 的情况,返回类型将设置为 'scalar'。

Path Not Found Behavior:下拉选项有warn、ignore、skip,默认值为ignore,目标设置为 'flowfile-attribute' 时,如何处理缺失的 JSON Path 表达式的方式。选择 'warn' 会在找不到 JSON Path 表达式时生成警告。选择 'skip' 会忽略任何未匹配的 JSON Path 表达式,不生成对应的属性。

Null Value Representation:下拉选项有empty string、the string 'null',默认值empty string,对于 JSON Path 表达式返回空值时的期望表示方式。

Max String Length:默认值20 MB,这解析 JSON 文档时字符串值的最大允许长度的描述。

userId:$.person.userId,此处为自定义属性名称,json path。

3、LogAttribute ,在指定的日志级别上记录 FlowFile 的属性,如下所示,此处理器在debug的时候比较有用。比较简单不做介绍。

 

 

标签:nifi,json,JSON,flowfile,JsonPath,Path,EvaluateJsonPath,属性
From: https://www.cnblogs.com/zjBoy/p/18120048

相关文章

  • ETL工具-nifi干货系列 第八讲 处理器PutDatabaseRecord 写数据库(详细)
    1、本节通过一个小例子来讲解下处理器PutDatabaseRecord,该处理器的作用是将数据写入数据库。如下流程通过处理器GenerateFlowFile生成数据,然后通过处理器JoltTransformJSON转换结构,最后通过处理器PutDatabaseRecord将数据写入数据库。如下图所示 2、处理器GenerateFlowFile......
  • Cisco Unified Communications Manager (CallManager) 15.0 SU1 - 统一通信与协作
    CiscoUnifiedCommunicationsManager(CallManager)15.0SU1-统一通信与协作思科统一通信管理器(CallManager)请访问原文链接:https://sysin.org/blog/cisco-ucm-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科统一通信管理器企业统一通信和协作借助......
  • ETL工具-nifi干货系列 第七讲 处理器JoltTransformJSON(续)
    第六讲教程只简单介绍了Jolt的chain转换模式,本节课介绍下Jolt的各种转换模式。点击的处理器JoltTransformJSON高级配置选项,进行测试Jolt的转换模式。 1、Cardinality:更改了输入JSON数据元素的基数,适用于jsonObj和jsonList之间的转换。list转为obj input{"review......
  • ETL工具-nifi干货系列 第七讲 处理器JoltTransformJSON(续)
    第六讲教程只简单介绍了Jolt的chain转换模式,本节课介绍下Jolt的各种转换模式。点击的处理器JoltTransformJSON高级配置选项,进行测试Jolt的转换模式。1、Cardinality:更改了输入JSON数据元素的基数,适用于jsonObj和jsonList之间的转换。list转为objinput{"review......
  • ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON
    1、处理器作用使用Jolt转换JSON数据为其他结构的JSON,成功的路由到'success',失败的'failure'。处理JSON的实用程序不是基于流的,因此大型JSON文档转换可能会消耗大量内存。Jolt:JSON到JSON转换库,用Java编写,其中转换的"规范"或者描述文件本身就是一个JSON文档。2、属性......
  • ETL工具-nifi干货系列 第五讲 处理器GenerateFlowFile
    1、今天我们一起来学习处理器GenerateFlowFile。这个处理器创建带有随机数据或自定义内容的FlowFiles。GenerateFlowFile对于负载测试、配置和模拟非常有用。从工具栏拖动处理器到画布,然后选择GenerateFlowFile即可。 2、点击add按钮或者双击 GenerateFlowFile可将此处理器......
  • ETL工具-nifi干货系列 第四讲 Avro schema 序列化框架
    一、在使用nifi的过程中会使用到遇到avroschema、avrodata、avroReader、avroWriter等,所以本节课和大家一起学习下avro相关知识。 二、什么是AvroApacheAvro是hadoop中的一个子项目,也是一个数据序列化系统,其数据最终以二进制格式,采用行式存储的方式进行存储。三、什么......
  • 最详细爬虫零基础教程10——json格式提取之jsonpath
    文章目录一、json数据解析二、案例演示1.解析获得数据2.简化代码3.豆瓣json数据解析总结一、json数据解析用来解析多层嵌套的json数据;JsonPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript,Python,PHP和Java。语......
  • ETL工具-nifi干货系列 第三讲 nifi web ui 使用教程
    1、nifi服务启动之后,浏览器输入https://localhost:8443/nifi ,匿名登录或者输入用户名密码进入操作页面,如下图所示:2、组件工具栏处理器,鼠标放到图标上提示Processor,里面里面有各种各样的组件,可以实现各种各样的功能。 拖拉处理器到画布中,出现处理器选择列表,可以根据处理......
  • ETL工具-nifi干货系列 第一讲 揭开nifi神秘面纱
    1、nifi简介ApacheNiFi是基于流程编程概念的数据流系统。它支持强大且可扩展的数据路由、转换和系统中介逻辑的有向图。NiFi具有基于Web的用户界面,用于设计、控制、反馈和监控数据流。它在多个服务质量维度上都具有高度可配置性,例如容忍丢失与保证传递、低延迟与高吞吐量、基于......