首页 > 其他分享 >ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON

ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON

时间:2024-04-01 21:11:07浏览次数:18  
标签:nifi 转换 Modify Jolt JSON 处理器 JoltTransformJSON 字段 ETL

1、处理器作用

使用Jolt转换JSON数据为其他结构的JSON,成功的路由到'success',失败的'failure'。处理JSON的实用程序不是基于流的,因此大型JSON文档转换可能会消耗大量内存。

Jolt:JSON 到 JSON 转换库,用 Java 编写,其中转换的 "规范" 或者描述文件本身就是一个 JSON 文档。

2、属性配置

(Jolt Transformation DSL)指定应该使用哪种Jolt转换模式,目前有如下10种转换模式:

Cardinality:更改了输入JSON数据元素的基数,如json中的string 类型的字段变更为list
Chain:按顺序应用多个转换规则。
Default:如果输入中不存在指定的字段,则添加默认值。
Modify -Default:修改字段的值,如果字段不存在则添加默认值。
Modify - Define:修改字段的值,如果字段不存在则创建该字段并赋值。
Modify - Overwrite:修改字段的值,如果字段不存在则忽略。
Remove:移除指定的字段。
Shift:将字段的值移动到另一个字段下。
Sort:对对象中的字段进行排序。
Custom:自定义转换规则。

(Jolt Specification)JSON数据转换Spec。如果选择了Sort转换,则忽略此值。
支持表达式语言:true(将使用流文件属性和变量注册表进行计算)

(Transform Cache Size)转换缓存大小:
编译 Jolt 转换可能会相当昂贵。理想情况下,这只会执行一次。然而,如果在转换中使用表达式语言,我们可能需要为每个 FlowFile 使用新的转换。该值控制我们在内存中缓存多少个这些转换,以避免每次都需要编译转换。

(Pretty Print)json是否美化输出

(Max String Length)最大字符串长度

3、示例演示

处理器GenerateFlowFile 产生json字符串{"id":"1","name":"Java小金刚"}

Jolt Transformation DSL 设置为chain

Jolt Specification 设置为[{"operation":"shift","spec":{"id":"person.id","name":"person.name"}}]

输出结果如下:

 

 

 

 

标签:nifi,转换,Modify,Jolt,JSON,处理器,JoltTransformJSON,字段,ETL
From: https://www.cnblogs.com/zjBoy/p/18107362

相关文章

  • 深入解析大数据体系中的ETL工作原理及常见组件
    **引言关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析**在当今数字化时代,大数据处理已经成为了企业成功的重要组成部分。而在大数据处理中,ETL(Extract,Transform,Load)是至关重要的一环,它......
  • 多目标应用:基于非支配排序的蜣螂优化算法(Non-Dominated Sorting Dung beetle optimize
    一、柔性作业车间调度问题柔性作业车间调度问题(FlexibleJobSchedulingProblem,FJSP)的描述如下:n个工件{J,J......
  • Netlify 就你妈傻逼
    因为脑残所以想从GithubPages转移到Netlify上。然后我他妈登陆Netlify告诉我账号有可疑行为被停用了。我可疑你妈呢?行行行,用manualverification行了吧?我现在等了快一周了还是什么消息都没有。注册一个新的号行了吧?收不到验证码。草这不是我的问题啊。几遍都收不到。......
  • 客快物流大数据项目(四十):ETL实现方案
    目录ETL实现方案一、ETL处理流程图二、为什么使用Kudu作为存储介质ETL实现方案一、​​​​​​​ETL处理流程图数据来源:来自于ogg同步到kafka的物流运输数据来自于canal同步到kafka的客户关系数据二、为什么使用Kudu作为存储介质数据库数据上的快速分析目前......
  • ETLCloud结合Oracle实现CDC
    CDC,即Change Data Capture(变更数据捕获)功能,主要针对实时数据同步和更新场景,能够实时监测数据库中的数据变化,并将发生变化的数据进行高效精准地捕获和传输,极大地提高了数据处理的效率以及系统的响应速度。在实际应用中,CDC功能对于对数据时效性要求极高的业务场景尤为关键,例如金......
  • ETL工具-nifi干货系列 第五讲 处理器GenerateFlowFile
    1、今天我们一起来学习处理器GenerateFlowFile。这个处理器创建带有随机数据或自定义内容的FlowFiles。GenerateFlowFile对于负载测试、配置和模拟非常有用。从工具栏拖动处理器到画布,然后选择GenerateFlowFile即可。 2、点击add按钮或者双击 GenerateFlowFile可将此处理器......
  • Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers File exists处理
    Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINKanswers:Fileexists处理安装好centos7版本的系统后,发现默认的网卡名字有点怪,为了便于管理,可以手动修改。下面对centos7版本下网卡重命名操作做一记录:1.编辑网卡信息[root@web~]#cd/etc/sysconfig/network-scripts/......
  • 【数据库】如何利用Python中的petl将PostgreSQL中所有表的外键删除,迁移数据,再重建外键
    一、简介在数据库管理中,外键是一种重要的约束,用于确保数据的一致性和完整性。然而,在某些情况下,我们可能需要删除或修改外键。本文将介绍如何使用Python中的petl库将PostgreSQL中所有表的外键删除,迁移数据,并重新建立外键。二、安装petl和psycopg2首先,我们需要安装petl和psycopg2......
  • ETL工具-nifi干货系列 第四讲 Avro schema 序列化框架
    一、在使用nifi的过程中会使用到遇到avroschema、avrodata、avroReader、avroWriter等,所以本节课和大家一起学习下avro相关知识。 二、什么是AvroApacheAvro是hadoop中的一个子项目,也是一个数据序列化系统,其数据最终以二进制格式,采用行式存储的方式进行存储。三、什么......
  • cloudquery 开源ETL 框架
    cloudquery开源ETL框架提供了基于plugin的数据集成模式包含的特性开源,提供了sdk快速,基于golang轻量级协程,基于apachearrow部署方便,就是一个独一的二进制文件可扩展,cloudqueryplugin是无状态的,可以方便的扩展说明cloudquery可以应用的场景还是比较多的,但是目前一......