nifi之读取mysql数据库离线提取(1)

本文详细介绍了如何在两天内通过NiFi从MySQL数据库读取数据并模拟同步到另一个MySQL,涉及Processor选择、配置QueryDatabaseTable、连接池设置、SQL查询及定时任务,并解决连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nifi之读取mysql数据库(离线同步)

效果

要求时间较紧,两天呢要完成,自己对这个nifi又是第一次接触,非常的不易,这个效果图是一个综合的效果,不是本篇文档的效果图,
注意,nifi非常的强大,后期我们主要利用它近50个平台的数据收集

nifi

选择处理器

QueryDatabaseTable:来读取数据库信息

生成SQL选择查询,或使用提供的语句

创建组

组的主要作用就是,把处理器进行分组
因为咱这个是最后的目标是从mysql数据库里面读取数据然后再放到mysql数据中,来进行的一个模拟的操作动作,所以我的组名就叫mysql_to_mysql,这个名称大家可以自己根据实际情况而改动

在这里插入图片描述
在这里插入图片描述

新建处理器

在这里插入图片描述
在这里插入图片描述

修改处理器名称

主要是为了方便一眼可以看出来这个处理器是干什么的

【双击处理器】

在这里插入图片描述

更改处理器属性

创建一个连接池

在这里插入图片描述
在这里插入图片描述

配置连接池

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入mysql的url的java驱动地址

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上传jar包

在这里插入图片描述

jar包添加权限

[root@localhost jars]# ls
mysql-connector-java-8.0.26.jar
[root@localhost jars]# chmod +rwx mysql-connector-java-8.0.26.jar 
[root@localhost jars]# ls
mysql-connector-java-8.0.26.jar

在这里插入图片描述

配置属性的账号密码

在这里插入图片描述

启动连接池

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

配置QueryDatabaseTable处理的属性

上面的连接池已经配置好了,只是说可以正常的连接数据库了,我们需要配置这个处理器,让可以从数据库里面提取数据

配置RunSchedule时间

这个时间就是这个处理器多长时间进行一次操作数据库,默认是0,如果是0的话,可以说是不停的查询数据库,这样对服务器的负担太大了,所以在这里我们把它改成9999sec,基本就是这个处理启动之后就会执行一次,对于测试来说已经足够了,这个可以根据实际需求情况,自己来设定时间。
在这里插入图片描述

选择数据库类型

在这里插入图片描述

添加表名

在创建连接池的时候有个数据库的url,里面就指定了数据库的名称,所以这边只要填写表名即可
在这里插入图片描述

填写查询语句

这个一般有两种方法查询

第一种
如果要查询select * from tables where id =5 limit 1:这个语句的话,这个limit 1就没有办法实现
在这里插入图片描述
第二种
我们这里用第二种方法

在这里插入图片描述

确认一下sql语句是否可以执行

我这个里面少提取了一个name字段,我自己加上了,大家要注意一下.
在这里插入图片描述
填写配置
在这里插入图片描述
这个是增加了name字段的,大家可以根据实际情况考虑加或者不加,如果后期数据处理需要这个字段就加上
在这里插入图片描述

该处理器就配置好了

在这里插入图片描述

发现报错信息

这个是因为处理器没有上下游的原因,我们需要给他创建一个下游

由于我们从数据库里面提取出来的数据是avro格式,所以我们需要转化为json格式来方便我们的阅读

创建ConvertAvroToJson处理器

小编这里处理器选错了哈,在下篇小编会改正过来,大家可以按照这个处理器进行,这个处理也就起到了一个下游的作用
在这里插入图片描述

更改下处理器的name

在这里插入图片描述

连接两个处理器

在这里插入图片描述
在这里插入图片描述

启动QueryDatabaseTable,查看数据库操作情况

注意:只有处理器上面没有任何的错误信息显示的时候,才能开启处理器,否则开始按钮是灰色的
在这里插入图片描述
在这里插入图片描述

出现报错

其实这个错误看着像是java驱动出现了问题,但是这里的原因是连接不上数据库呢
所以要注意以下几点

  • 要保持nifi服务器与mysql数据库服务器之间是可以连接的
  • 可以在nifi服务器上面连接以下数据库,如果可以正常连接的话,可以排查驱动包的问题了
  • 数据库中要配置支持远程账户和ip,当然如果数据库在本地计算机上就不用考虑这个了

在这里插入图片描述

更改mysql的url地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动处理器

可以发现有一条消息已经进入
在这里插入图片描述

查看信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到我们已经成功的在nifi上面获取到了信息,这不过都是乱码,为什么呢,是因为导出来的数据库信息是avro格式的,所以我们后面又加了一个处理器,可以转json格式的处理器,由于时间问题,转json处理器,下篇小编再继续

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘帅0952

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值