nifi 读取mysql_使用NiFi简单的从网站获取数据写入到mysql数据库

news/2024/5/19 10:36:05/文章来源:https://blog.csdn.net/weixin_33728584/article/details/113957614

最近稍微研究了下etl工具nifi,它是Apache下面的一个项目,是用作数据流处理的,具体的就不多做介绍了,网上也有很多介绍,官网是https://nifi.apache.org/docs.html,我在这里做了一个从中移物联网onenet平台抽取数据到mysql的功能,没有做数据过滤以及中文转码乱码的情况处理,这2个地方还不清楚怎么做,如果会的同学也帮忙指导我一下,我们接下来看看整个的设计过程。

首先我们在官网上面下载nifi,我这里使用的版本是1.9.2,解压nifi后,我们就可以进入该文件夹下面的bin目录,点击run-nifi.bat启动nifi,可能nifi启动毕竟慢的原因,我关闭后重新启动一两次才能打开nifi的网页,默认端口是8080,可以在conf文件夹下面的nifi.properties修改端口号nifi.web.http.port。

进入到nifi主页后,我们可以看到如下图片

0cfc831f03e4cc74f78382e024ed6dba.png

我们选择第一个图标,按住鼠标拖动该图标到空白页即可,显示出如下图片

854869b9ec31e0914c2bf6ddf3da437e.png

在搜索框里面输入GetHttp,然后双击它就可以了,然后在空白页就会出现

dbbe2faaa28510dd538ab9193c454955.png

双击或者右键点击configure选项,我们可以在settings->name下自定义名称,我们这里主要介绍下properties页签下的配置,其他的页签配置可以参考官网介绍,在properties页签下我们首先得定义从哪里取数据即url属性,在配置url属性之前我们可以可以在nifi配置一个公共的url地址属性,在空白处右键点击鼠标可以出现如下所示的内容

0414b33269398a2eb87a043c4fc8425a.png

选择variables属性,进入后如下所示

c49a676ff623cb1b98590b1316b26818.png

添加如上所示的属性,现在回到GetHttp的properties页签上,在url属性上输入以下值

509448111d0c2f228574c0c2e445a1ae.png

filename属性就是以后的flowfile名称,同时定义一个自定义属性api-key,用于参数的传递,接下来需要注意的是必须定义一个SSL Context Service,点击该属性的value值,如果没有定义过该属性值,需要我们自己新创建一个SSL Context Service,如下所示

102971814fb7f86366ffbbe923705cb4.png

点击create new service后进入如下界面

357714f112301a6a4d5b5eff6243deb1.png

根据情况选择其中一个即可,通过SSL Context Service最右边的箭头符号进入到创建好的value值后,我们可以在properties页签中定义keystore和truststore2种方式的加密方式,我这里选择了keystore的方式,可以参考https://www.cnblogs.com/aiaitie/p/9525564.html这个文章或者百度下keystore查询,生成后的引用方式

5cbf005cfe9626c4f9ee1ccb4fd5ea9d.png

设置正确后,可以看到有个“雷电”符号,点击它表示启用就可以完成该SSL Context Service的应用了,因为从onenet接收过来的数据是

{

"errno" : 0,

"data" : {

"private" : true,

"protocol" : "DTU",

"create_time" : "2019-07-16 10:25:48",

"act_time" : "2019-07-16 17:02:09",

"online" : true,

"id" : "设备id",

"auth_info" : "设备编号",

"last_ct" : "2019-07-30 08:27:27",

"datastreams" : [ {

"create_time" : "2019-07-16 17:02:11",

"uuid" : "ae14d1f5-b789-4ea7-a894-a13b447283bd",

"id" : "xxx"

}, ],

"title" : "设备名称",

"desc" : "power monitor device"

},

"error" : "succ"

}

我们需要将数据进行json平展,所以引入了FlattenJson Processor进行json数据平展,如下所示

9ea172c63393b1d7675bc5f3a175269d.png

默认情况下分隔符是“.”,平展后的数据是

{

"errno" : 0,

"data.private" : true,

"data.protocol" : "DTU",

"data.create_time" : "2019-07-16 10:25:48",

"data.act_time" : "2019-07-16 17:02:09",

"data.online" : true,

"data.id" : "设备id",

"data.auth_info" : "设备编号",

"data.last_ct" : "2019-07-30 08:27:27",

"data.datastreams" : [ {

"create_time" : "2019-07-16 17:02:11",

"uuid" : "ae14d1f5-b789-4ea7-a894-a13b447283bd",

"id" : "xxx"

}],

"data.title" : "鍙板彉2",

"data.desc" : "power monitor device",

"error" : "succ"

}

因为在mysql是不能使用“.”来数据插入操作的,而nifi是根据这些字段值进行数据对比和传值的,因此还需要把“.”替换为“_”来进行操作,因此我们还需要引入replaceText processor来进行替换操作,如下所示

75cbd384ed5e7d74b7351f92220131b9.png

替换完成后接下来我们就可以将json转换为sql进行插入操作了,这个时候我们使用ConvertJSONToSQL processor进行数据的转换,在properties页签中我们需要定义JDBC Connection pool,点击value值,如果没有则新增一个,进入到JDBC Connection pool中,在DBCPConnectionPool的properties页签中我们定义需要的的相关属性,如下所示

1d588efc9d4a2aacfe4d10ba61dd011d.png

这里需要注意了,因为nifi没有导入mysql的相关jar包,需要我们自己去引入,把我们需要的mysql jar包放入到lib文件夹下面即可,就可以正常的进行使用了,配置好以后同样通过“雷电”符号进行启用配置,当然如果只有ConvertJSONToSQL processor还是不能把数据写入到mysql数据库中的,我们还要引用putsql processor才行,配置如下

3171b204bfce931485d86a697a9c068f.png

整体上我们的nifi配置如下所示

859ea9eb37804399edc7ebc2dc4aa8b0.png

数据库结果如下:

4e226805480f4aac87e6c77e7e2d77a6.png

这里还有个奇怪的是做update操作的时候,它会将data_id字段修改为DATAID的sql语句,如下所示

UPDATE device SET data_title = ?, data_desc = ? WHERE DATAID = ?

也不是很清楚这个出现的原因,会的同学麻烦指导下。

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

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

相关文章

dw通过iis运行asp网站总结

ASP站点主要是结合iis和dw软件运行和浏览的 1、首先在本地先建立一个测试文件夹webs 2、打开iis管理器 3、建立创建网站 这里有个 4、dw中创建站点,并导入asp项目 下边的url是根据iis中配置的端口号和主机名组成的: 最后运行浏览asp页面 转载于:https://…

[转] 网站性能优化之------------- 数据库及服务器架构篇

转载自: http://blog.163.com/dangzhengtaoyeah/blog/static/7780087420098232213289/?fromdm&fromSearch&isFromSearchEngineyes 1、Web Server 与 DB Server 分离 小型网站或 B/S 项目,因同时在线人数不多,尚可让同一台物理主机,既…

网站元数据meta标签的含义和用法

随着HTML5的流行和Web技术的不断演变,Meta标签队伍也越来越壮大,从Windows XP的IE6到如今Windows 7、Windows 8的IE9、IE10、IE11,对Html5的支持越来越好,html meta标签的功能作用也越来越强大。 首先,先说一下最初产生…

tornado+bootstrap急速搭建你自己的网站

bootstrap既然是这么的流行又能省很多的事为什么不用他呢?再加上牛X的produced by FB的tornado简直如虎添翼了! 1. 安装配置 安装所需要的库等内容。这里没什么需要多讲的。tornado直接用easy_install或者pip。bootstrap直接下下来就OK了。当然还需要下载…

网站前端_Bootstrap.基础入门.0001.模版标准/样式标准/脚本标准入门?

简单介绍:1. Bootstrap于2010年Twitter开源将常见的CSS布局小组件和JS插件进行了封装,大大规范且提高了代码质量及开发效率.2. Bootstrap包含完整的基础CSS插件,丰富的预定义样式表,基于JQuery的JS插件集,非常灵活的响应式删栏系统,支持跨平台,且完全支持自定义.注意: Bootstra…

IT老鸟带你解决银行招标网站[金采网]无法注册供应商问题

目录 一、金采网介绍 二、背景及问题 三、分析思路 四、解决办法 五、扩展解决思路 六、最后感想 一、金采网介绍 金采网(http://www.cfcpn.com)是中国金融学会金融采购专业委员会对外的工作平台,是国内唯一的、专业服务金融行业采购业务的权威网站平台。 金…

QA小课堂:一个网站或者APP开发要多少钱

经常遇到朋友问我:“开发一个京东商城需要多少钱?开发一个滴滴打车需要多少钱?”类似这样的需求,就连我这样一名伪开发者都不愿意去骗客户或者朋友,因为这种问题是很难回答出来的。为什么这么说呢?要知道类…

selenium测试https网站

为什么80%的码农都做不了架构师?>>> 当访问一个https的网站,通常浏览器会收到一份证书,该证书包含了服务器的公钥以及CA的签名 服务器的公钥 服务器一般会生成一对密钥,公钥和私钥 服务器把公钥放在证书中请求CA的签名…

给你的网站添加支付宝即时到帐按钮

前言 大家都知道PayPal有一个非常使用的「一键转账」功能,但是自从支付宝的个人收款主页停止服务后,支付宝已经无法实现该功能了,那有我天朝人民想不到的办法呢?今天博猪就来教大家使用一个极其简单的 form 标签经过 POST 可以一键…

网站安全狗IIS版、服务器安全狗Windows版

2019独角兽企业重金招聘Python工程师标准>>> 2016年11月2日,云安全服务与解决方案提供商安全狗升级发布网站安全狗Windows_IIS版本,版本号为 V4.0.15716正式版,该版本优化了多个功能服务,目前安全狗官网http://www.saf…

hexo的next主题个性化教程:打造炫酷网站

注意下面那些图床失效了,可以在这里看http://shenzekun.cn/hexo%E7%9A%84next%E4%B8%BB%E9%A2%98%E4%B8%AA%E6%80%A7%E5%8C%96%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B.html 看到有些next主题的网站很炫酷,那么是怎么配置的呢?接下来我会讲一讲…

《网站设计 开发 维护 推广 从入门到精通》——1.2 网页美工常用工具

本节书摘来自异步社区《网站设计 开发 维护 推广 从入门到精通》一书中的第1章,第1.2节,作者: 何新起 , 娄彦杰 更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 网页美工常用工具 制作网页第一件事就是要选定网页制作软件。虽然…

LVS(负载均衡)+keepalived(HA)+Nginx(反向代理)+Web(动静态网站服务器)

考虑到LVS和Nginx的缺点(由于LVS采用的是同步请求转发策略而Nginx采用的是异步转发策略,结合两者的缺点:作为负载均衡服务器的Nginx和LVS处理相同的请求时,所有的请求和响应流量都会经过Nginx服务器,但是使用LVS时,仅请…

快播CEO认罪,成人网站对技术的要求有多高?

快播涉传播淫秽物品案昨日在海淀法院开庭审理。快播公司、王欣、张克东、牛文举均表示认罪悔罪。吴铭表示快播公司犯罪成立。 庭前法院委托鉴定机关,对涉案的四台缓存服务器的硬盘数据是否受到改写污染问题进行了鉴定。鉴定结论是:未发现硬盘中的视频文件…

收录高的网站关键词一定要这么布局

随着互联网的高速发展,网站几乎成了每一家企业后者公司不可缺少的一部分,网站也成了公司或者企业的第二个基地——线上展示。这个在网站建设的时候需要先给网站定位好,因为需要提前做好关键词的布局准备,虽然行业千千万&#xff0…

提供在线linux的网站,谁能提供一个在线免费学习Linux的网站?

楼主发表于:2008-04-21 19:46:20求一个可以在线学习LINUX 并且可以在线练习很多常用命令的网站 就是不用装linux 也可以练习linux的网站 谢谢。 对我有用[0]丢个板砖[0]引用举报管理TOP 回复次数:8 fox000002(糊糊。。楼主发表于:2008-04-21 19:46:20求一个可以在线学习LINUX 并…

为hexo 网站加上live2d看板娘

为网站加上live2d看板娘hexo-helper-live2d看板娘终极进化,可换装hexo-helper-live2d 下载hexo-helper-live2d github地址 这是官网效果 好了虽然上面已经给出官网地址 但是还是给你讲解一下 打开dos命令 切换到你博客目录执行 npm install --save hexo-helper-…

为你网站添加上评论系统

为你网站添加上评论系统想想你看过next后你会发现hexo有很多评论系统1.多说 2.网易云跟帖 3.畅言 4.来必力(LiveRe) 5.Disqus 6.Hypercomments 7.valine 等等等~~~~~~很多 但是我都看了一遍都贼麻烦只有这一个比较简单 首先开启valine 打开next的配置文件…

hexo网站使用next主题

hexo网站使用next主题网站使用next主题准备网站使用next主题 上一篇我记录了怎么使用hexonext搭建GitHub的个人网站,飞机票 准备 首先我们要下载安装next 如何下载这里给两个方法,https://github.com/iissnan/hexo-theme-next这个github地址进去之后直…

网站地图(站点地图)详细介绍以及如何制作

原文链接 什么是网站地图 网站地图,又叫站点地图,它就是一个列出了你网站上所有页面地址的清单文件,一般来说分为2种,一种是给搜索引擎看的,一种是给用户看的,前者帮助搜索引擎更好地收录你的网站&#xff…