NIFI【应用 01】1.28.1版本利用实例分享(InvokeHTTP、PutDatabaseRecord、
不得不说,nifi 是真的非常活跃,最新版本已经是 2.0.0,本次利用上个版本1.28.1 进行内容分享。安装过程可参考《一篇学会部署NIFI》。Apache NIFI 中文文档地点 https://nifichina.github.io/ 内容很是详细,各人可以参考。
1.下载
国内镜像源:
[*]清华源(NIFI 无法下载 大概是个例) https://tuna.tsinghua.edu.cn/
[*]阿里源(可下载)https://mirrors.aliyun.com/
[*]中科大源(未验证) https://mirrors.ustc.edu.cn/
[*]网易源(未验证) https://mirrors.163.com/
[*]腾讯源(未验证) https://mirrors.cloud.tencent.com/
2.安装
# 1.解压安装包
unzip nifi-1.28.1-bin.zip
# 2.配置环境变量【NIFI_HOME根据实际情况进行修改】
cat <<'EOF' > /etc/profile.d/nifi.sh
export NIFI_HOME=/home/nifitest/nifi-1.28.1
export PATH=$PATH:${NIFI_HOME}/bin
EOF
sleep 1
source /etc/profile.d/nifi.sh
# 3.修改配置文件 /conf/nifi.properties
nifi.web.https.host=hostname
nifi.web.https.port=58080
# 4.启动
nifi.sh start
# 5.查看日志获取用户名及密码
cat ${NIFI_HOME}/logs/nifi-app.log | grep Generated
Generated Username
Generated Password
3.登录
利用日志里生成的用户名和暗码进行登录,地点为 https://host:port/nifi/
https://i-blog.csdnimg.cn/img_convert/6bd1b5fd6924fa86524d94c87943c010.png
4.实例
虽然 NIFI 是图形化可拖拽的,但是利用还是有点儿门槛,我是 NIFI 新手,本实例参考 CSDN 作者 邢为栋同砚的《NiFi数据流实例二》,在原作基础上进行了一些调解和增补。由于每个处置惩罚器都是初次利用,一些配置或者处置惩罚器本身的利用大概存在一些标题,发现的小同伴儿请不吝见教,整体流程图如下:
https://i-blog.csdnimg.cn/img_convert/88994ac8d906840f36af0a7af7196723.png
4.1 获取和风天气接口数据
4.1.1 InvokeHTTP
InvokeHTTP 处置惩罚器的中文《阐明文档》,主要配置为 HTTP URL。我们可以在和风天气《官网》进行注册,获取接口认证 KEY。
https://i-blog.csdnimg.cn/img_convert/03b3fd4f58c88646fc04964715c5d4e3.png
本次利用的 URL 为:
https://devapi.qweather.com/v7/weather/now?location=101180101&key=认证你申请的KEY
location101180101是河南郑州的都会编号。接口相应效果为:
{
"code": "200",
"fxLink": "https://www.qweather.com/en/weather/zhengzhou-101180101.html",
"now": {
"cloud": "10",
"dew": "-13",
"feelsLike": "2",
"humidity": "27",
"icon": "100",
"obsTime": "2025-01-08T14:09+08:00",
"precip": "0.0",
"pressure": "1015",
"temp": "5",
"text": "晴",
"vis": "30",
"wind360": "45",
"windDir": "东北风",
"windScale": "2",
"windSpeed": "7"
},
"refer": {
"license": [
"CC BY-SA 4.0"
],
"sources": [
"QWeather"
]
},
"updateTime": "2025-01-08T14:17+08:00"
}
4.2 将相应效果转换为数据库行数据
进行转换的原因是 PutDatabaseRecord 需要一个 Record Reader 配置,所以这里对 JSON 数据进行了剖析和重组(由于是新手,大概不需要这一步)。
4.2.1 EvaluateJsonPath
EvaluateJsonPath 处置惩罚器根据流文件的内容盘算一个或多个JsonPath表达式。详细配置可参考处置惩罚器的中文利用《阐明》,主要配置为 Destination和用于组装新 JSON 的参数。
https://i-blog.csdnimg.cn/img_convert/156a0f3dbf9d6ef4461deb9cd81e6f53.png
4.2.2 AttributesToJSON
AttributesToJSON 处置惩罚器将输入流文件属性转成JSON表示情势。详细配置可参考处置惩罚器的中文利用《阐明》。主要配置为 Attributes List 和 Attributes Regular Expression可以将上一步获取的数据重新组装。
https://i-blog.csdnimg.cn/img_convert/006be258ea5235035742adff90374138.png
重新组装后的数据格式为:
{
"updateTime" : "2025-01-08T14:36+08:00",
"text" : "晴",
"windDir" : "东风",
"city" : "https://www.qweather.com/en/weather/zhengzhou-101180101.html"
}
4.3 数据保存到MySQL数据库
4.3.1 PutDatabaseRecord
PutDatabaseRecord 处置惩罚器利用指定的RecordReader从传入的流文件中读取(大概是多个,说数组也成)记载。这些记载将转换为SQL语句,并作为一个批次执行。详细配置可参考处置惩罚器的中文利用《阐明》。这个处置惩罚器的配置项虽然比较多,但是很容易看明白。
https://i-blog.csdnimg.cn/img_convert/f559068ba46a2a325cc8f569251cc7f0.png
(仅作简朴测试,字段啥的就随便存几个)数据库表的初始化语句:
CREATE TABLE `weather` (
`city` varchar(255) DEFAULT NULL,
`text` varchar(255) DEFAULT NULL,
`windDir` varchar(255) DEFAULT NULL,
`updateTime` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
4.3.2 JsonTreeReader
https://i-blog.csdnimg.cn/img_convert/028a071d1b3bbcb897d1ec14f8f0384e.png
JsonTreeReader 没有中文文档,是将 JSON 转换成记载对象。
https://i-blog.csdnimg.cn/img_convert/ad5c0ab33f2d6320e17c0c5b3fc48296.png
4.3.3 DBCPConnectionPool
DBCPConnectionPool 的《中文文档》,主要是配置数据库连接池的,这个地方要详细阐明一下。
[*]Database Connection URL 这里各人应该不陌生
[*]Database Driver Class Name 数据库驱动类的名称
[*]Database Driver Location(s) 这个地方要自己上传驱动 jar 包(我是用的是 mysql-connector-java-8.0.21.jar)
[*]Database User 用户名
[*]Database Password 暗码
https://i-blog.csdnimg.cn/img_convert/b9e311b889b7022da931d923886293d0.png
4.4 运行效果
点击 Start启动流程:
https://i-blog.csdnimg.cn/img_convert/d04512f22c29f9330bccb4d19d01613a.png
MySQL 数据库数据:
https://i-blog.csdnimg.cn/img_convert/f630cf4ce42a8daeea70582049122289.png
5.总结
之前我也利用过 Kettle,仅入门而已,Kettle 是比 NIFI 要容易的,组件更加直观,NIFI 的一些配置让人摸不着头脑。网盘分享:
链接:https://pan.baidu.com/s/1g5d_UIMsBoXTDRj-DNlvzA?pwd=ohuk
提取码:ohuk
文件列表:
[*]mysql-connector-java-8.0.21.jar
[*]获取和风天气数据并入库.xml(模板)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]