09 - 数据清洗案例

流程图

kettle 面板图片

操作步骤

1、订阅数据源(kafka consumer)

2、抽取字段并转换key(JSON input)

3、判断img字段是否有值,有的话进行url转base64(JavaScript 代码)

// 获取输入字段的值
var imgUrl = pic1Url;var imgBase64 = '';
var connection = null; // 声明连接对象//获取当前时间
var createTime = new Date();// 检查 imgUrl 字段是否为空
if (imgUrl === null || imgUrl === undefined || imgUrl.trim() === "") {// 如果 imgUrl 字段为空,则添加常量字段imgBase64 = "";
} else {// 如果 imgUrl 字段不为空,则将 URL 转换为 Base64try {var url = new java.net.URL(imgUrl);connection = url.openConnection(); // 打开连接var inputStream = connection.getInputStream();var outputStream = new java.io.ByteArrayOutputStream();var buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 1024); // 缓冲区大小var bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead); // 将数据写入输出流}imgBase64 = org.apache.commons.codec.binary.Base64.encodeBase64String(outputStream.toByteArray());inputStream.close(); // 关闭输入流} catch (e) {// 处理异常if (connection !== null) {connection.disconnect(); // 关闭连接}throw e; // 重新抛出异常} finally {if (connection !== null) {connection.disconnect(); // 关闭连接}}
}//生成id
var uuid = java.util.UUID.randomUUID().toString();var uniqueId = Date.now() + '-' + Math.random().toString(36).substring(2, 15);uniqueId;
// 将 imgBase64 设置到输出字段
imgBase64;
createTime;

4、添加部门code (add constants)

5、记录数据库(表输出)

6、将sysOrgCode跟base64加进去json,重新构造(JSON output、JSON input)

JSON output

JSON input

7、发送到目标kafka (Kafka producer)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流量分析利器arkime的学习之路(三)---结合Suricata攻击检测

1、基础 Arkime安装部分参考《流量分析利器arkime的学习之路(一)—安装部署》 在此基础上安装suricata软件并配置。 2、安装suricata yum install suricate 可能依赖的文件包括libyaml,PyYAML,这些可能在之前安装arkime或者其他…

【遥感图像】多光谱与全色图像相关知识总结

多光谱图像(MS)和全色图像(PAN)是遥感技术中常用的两种图像类型,它们各自具有独特的特点和应用优势。以下是对这两种图像类型的详细解释和分析: 多光谱图像 (MS) 光谱分辨率:MS图像由多个光谱波…

面试二十四、继承多态

一、继承的本质和原理 组合(Composition): 组合是一种"有一个"的关系,表示一个类包含另一个类的对象作为其成员。这意味着一个类的对象包含另一个类的对象作为其一部分。组合关系通常表示强关联,被包含的对象…

什么是状态模式,有哪些应用?

一、定义及应用场景: 状态模式允许一个对象在其内部状态发生改变时改变它的行为,使其看起来像是修改了其类。它通过将对象的行为包装在不同状态对象中,实现了在运行时更改对象的状态,从而影响其行为。 状态模式也有很多实际的应…

Terrain —— Nodes

目录 Convert HeightField —— 转化高度场 HeightField —— 为地形创建初始高度场或遮罩场 HeightField Blur —— 模糊高度场或遮罩场 HeightField Clip —— 限制高度场的值 HeightField Combine Layers —— 将多个volume或VDB合并为一个新的volume或VDB HeightFiel…

我独自升级崛起怎么玩 我独自升级崛起游玩教程分享

《我独自升级:ARISE》是一款预计在 Android、iOS 和 PC 平台推出的动作 RPG,故事内容基于网络漫画版本改编,讲述世界各地出现「次元传送门」,而少部分人类觉醒了可以对抗传送门中怪物的「猎人」能力,玩家可以在故事模式…

【进程等待】是什么 | 为什么 | 怎么办 | wait阻塞等待

目录 进程等待是什么? 为什么要进程等待? 如何进程等待? wait 阻塞等待 进程等待是什么? 进程终止会把进程退出的数据(退出码和退出信号)存放到进程的PCB中保存下来,让父进程进行等待。…

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称:CoopIS CCF等级:CCF C类学术会议 类别:人机交互与普适计算 录用率:2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…

.net core 8版本读取wwwroot目录下的静态文件方法,通过访问接口可以直接信息访问查看的方式

1、安装Nuget依赖包&#xff1a;Microsoft.AspNetCore.StaticFiles 2、在Program.cs中注册中间件 app.UseStaticFiles();3、将业务接口和实现类在Program.cs中注入到运行时 builder.Services.AddScoped<IModelServive,ModelServiveImpl>();4、新建IModelServive接口&am…

Linux网站服务

1.概念:HTML:超级文本编辑语言 网页:使用HTML,PHP,JAVA语言格式书写的文件。 主页:网页中呈现用户的第一个界面。 网站:多个网页组合而成的一台网站服务器。 URL:统一资源定位符&#xff0c;访问网站的地址。 网站架构:LAMP: LinuxApacheMYSQLPHP(系统服务器程序数据管理…

Sychronized 和 Lock 的区别

锁 Sychronized锁入门实例 public class SychronizedDemo {public static void main(String[] args) {SychronizedDemo sychronizedDemo new SychronizedDemo();sychronizedDemo.deposit(1000);sychronizedDemo.syncmethod();}//同步方法public synchronized void syncmetho…

OpenHarmony 实战开发 - 如何在源码中编译复杂应用(4.0-Release)

文档环境 开发环境&#xff1a;Windows 11 编译环境&#xff1a;Ubuntu 22.04 开发板型号&#xff1a;DAYU 200&#xff08;RK3568&#xff09; 系统版本&#xff1a;OpenHarmony-4.0-Release 功能简介 在 OpenHarmony 系统中预安装应用的 hap 包会随系统编译打包到镜像中&a…

使用电路仿真软件教学的优势分析

随着科技的飞速发展&#xff0c;电子工程领域对人才的需求与日俱增。为了满足这一需求&#xff0c;教育者们不断探索着更加高效、直观的教学方法。电路仿真软件的出现&#xff0c;为电子工程教学注入了新的活力&#xff0c;它以其独特的优势&#xff0c;成为现代电子工程教育中…

uniapp 小程序低功耗蓝牙配网 blefi配网 物联网

1.获取蓝牙列表 bleList.vue <template><view><button @touchstart="startSearch">获取蓝牙列表</button><scroll-view :scroll-top="scrollTop" scroll-y class="content-pop"><viewclass="bluetoothI…

啸叫抑制器采用什么处理芯片?ES56031或PH56031

会议系统或卡拉OK最头疼的就是啸叫了吧&#xff0c;来看看啸叫抑制器采用什么芯片 四通道啸叫抑制器&#xff0c;采用了2个电路板&#xff0c;每个板子处理2路信号&#xff0c;每块电路板有2个卡侬输入插座&#xff0c;2个卡侬输出插座 ES56031S&#xff0c;该啸叫抑制器为4通道…

某度假村培训体系搭建项目成功案例纪实

——建立分层分类的培训体系&#xff0c;引入场景化培训&#xff0c;确保培训落到实处 【客户行业】文旅行业、酒店行业、文旅企业、度假村 【问题类型】培训体系搭建 【客户背景】 某度假村是一家集住宿、娱乐、健身等服务为一体的综合服务场所&#xff0c;度假村内部环境…

请大数据把我推荐给正在申请小程序地理位置接口的人

小程序地理位置接口有什么功能&#xff1f; 若提审后被驳回&#xff0c;理由是“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通&#xff0c;建议完成接口开通后或移除接口相关内容后再进行后续版本提审”&#xff0c;那么遇到这种情况&#x…

[Linux深度学习笔记5.8]

5.8学习笔记 包管理工具rpm: rpm -ivh 软件包名 : 安装rpm包 ---->直接安装网络资源 ​rpm -qa : 查询系统中所有的rpm包 ​rpm -e : 卸载一个rpm包 ​rpm -ql : 查询一个rpm包所生成的所有文件 ​rpm -qf : 查询某一个文件是那个rpm包生成的 ​rpm -qc : 查询一个rpm的配…

软件可靠度计算

软件的整体可靠度依据&#xff1a;若是单个就是当前部件的可靠度。若是多个部件&#xff0c;就需要多个部件的可靠度相乘。若是多个部件且有相同备份&#xff0c;那么计算公式更加不一样。 计算公式&#xff1a; 部件数&#xff1a;N 部件可靠度均为&#xff1a;R 单个部件的可…

树莓派4b测量光照强度

1.BH1750光照强度连接图 2. BH1750工作原理 BH1750的通讯过程 第1步:发送上电命令。 发送的过程和第2步基本一致,把测量命令(0x10)改成上电命令(0x01)。第2步:发送测量命令。 下面图片上的例子,ADDR引脚是接GND的,发送的测量命令是“连续高分辨率测量(0x10)”。 发送数据…