我是靠谱客的博主 悲凉冬天,最近开发中收集的这篇文章主要介绍nifi 读取mysql_nifi 从mysql数据中读取数存入hive中,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、在hive中创建一张外部表

create external table news2(id string,title string,url string,content string) row format delimited fields terminated by 't';

之前的想法是从mysql读取数据,将数据转为json,再用ConvertJSONToSQL 转为hive sql 存入hive中,结果发现ConvertJSONToSQL 不支持hive 这是nifi的一个bug 如下图

386132ab0ad82dd75b5df88843c01127.png

作为替代方案,只能是用replaceText自己生成插入的sql语句。

在做的过程中发现,之前用的hive2.3.4 ,nifi并不支持hive2.x.x,随后把hive的版本降为1.22

整体流程图如下:

b25d71e919e730126d1b5d8dd1092383.png

从mysql中读取数据,用 ExecuteSQL处理器,sql语句为select * from news

配置如下:

3a99e0f376e27110e82d5b7caf448c52.png

ConvertAvroToJSON 将二进制流转为json,

68c5a6c9893b0211fa332972d3c5a35d.png

SplitJson  分割json对象

a09da69cfa5b4e036a973478ce413e72.png

EvaluateJsonPath 获取json对象里面的属性

338eb9c2d1251a78700a1753171aab22.png

ReplaceText 替换成sql, Replacement Value  INSERT INTO TABLE news2(id,title,url,content) VALUES ('${id}','${title}','${url}','${content}')

acde7bb9ce41db3c633c552a33c7f9f8.png

最后丢入到 PutHiveQL

总结

基本实现了从mysql关系型数据库查询数据转移到hive,但是速度非常慢,这种一条条数据插入到hive可能不太适合。现在只是验证hive的这种能力,后续再做优化。

最后

以上就是悲凉冬天为你收集整理的nifi 读取mysql_nifi 从mysql数据中读取数存入hive中的全部内容,希望文章能够帮你解决nifi 读取mysql_nifi 从mysql数据中读取数存入hive中所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部