创建function实现hive表结果导出到mysql
1. 创建临时function (这里两个包都是hive自带的,不需要自己开发的,可以根据名称查找对应的版本)
add jar /opt/local/hive/lib/hive-contrib-2.3..jar;
add jar /opt/local/hive/lib/mysql-connector-java-5.1.-bin.jar; CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput';
2. dboutput使用方法
select dboutput(jdbc数据库链接, 用户名, 密码, sql语句, hive字段值) from hive表
准备一张hive表记录如下,然后在mysql中创建相同字段的表.

根据上面到规则,完整的hive脚本如下, 保存到script.q文件中:
--定义临时function,用于导出到mysql
add jar /opt/local/hive/lib/hive-contrib-2.3..jar;
add jar /opt/local/hive/lib/mysql-connector-java-5.1.-bin.jar;
CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput'; --查询hive并将结果写入mysql
select dboutput('${url}','${username}','${password}',
'INSERT INTO dm_index_pv_uv
(dt,tenantcode,deviceid,bourse_week,week_begin,week_end, yrmm, month_begin, month_end)
VALUES(?,?,?,?,?,?,?,?,?)',
dt,tenantcode,deviceid,bourse_week,week_begin,week_end, yrmm, month_begin, month_end
)from dw_stg.tmp_1 where dt=${dt};
这里只能insert into记录,无法删除。下面这种写法是错误的
select dboutput('${url}','${username}','${password}',
'delete from dm_index_pv_uv where dt=${dt};##这行错误!!
INSERT INTO dm_index_pv_uv
(dt,tenantcode,deviceid,bourse_week,week_begin,week_end, yrmm, month_begin, month_end)
VALUES(?,?,?,?,?,?,?,?,?)',
dt,tenantcode,deviceid,bourse_week,week_begin,week_end, yrmm, month_begin, month_end
)from dw_stg.tmp_1 where dt=${dt};
使用hive -f脚本执行。
#!/bin/sh
echo 'app2mysql' hive -f script.q \
-hivevar dt= \
-hivevar url=jdbc:mysql://dwdev-name2/bigdata \
-hivevar username=mysql \
-hivevar password=123456
执行过程如下:

查看mysql 中记录:

一般数据量不大的情况下,可以直接使用,还是比较方便的。省去了使用sqoop或者自己开发的麻烦。
创建function实现hive表结果导出到mysql的更多相关文章
- 从hive将数据导出到mysql(转)
从hive将数据导出到mysql http://abloz.com 2012.7.20 author:周海汉 在上一篇文章<用sqoop进行mysql和hdfs系统间的数据互导>中,提到s ...
- hive表数据导出到csv乱码原因及解决方案
转载自http://blog.csdn.net/lgdlxc/article/details/42126225 Hive表中的数据使用hive - e"select * from table ...
- 根据JSON创建对应的HIVE表
本文提供一种用SCALA把JSON串转换为HIVE表的方法,由于比较简单,只贴代码,不做解释.有问题可以留言探讨 package com.gabry.hiveimport org.json4s._im ...
- hive表增量抽取到mysql(关系数据库)的通用程序(三)
hive表增量抽取到oracle数据库的通用程序(一) hive表增量抽取到oracle数据库的通用程序(二) 这几天又用到了该功能了,所以又改进了一版,增加了全量抽取和批量抽取两个参数.并且可以设置 ...
- Hive表数据导出
方式一: hadoop命令导出 hadoop fs -get hdfs://hadoop000:8020/data/page_views2 pv2 方式二:通过insert...directory导 ...
- 将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式
https://blog.csdn.net/niityzu/article/details/45190787 交通流的数据分析,需求是对于海量的城市交通数据,需要使用MapReduce清洗后导入到HB ...
- 利用sqoop将hive数据导入导出数据到mysql
一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令 # sqoop list-databases --connect jdbc:mysql://localhost:3306 ...
- 使用 sqoop 将mysql数据导入到hive表(import)
Sqoop将mysql数据导入到hive表中 先在mysql创建表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` varchar() ...
- flume的sink写入hive表
flume的配置文件如下: a1.sources=r1 a1.channels=c1 a1.sinks=s1 a1.sources.r1.type=netcat a1.sources.r1.bind= ...
随机推荐
- 近期对招聘Android开发者的一些思考
公司要招聘Android开发者,故面试了大概十来个人.由于是小公司,所以来的人大多是90后,比較年轻.90后大概二十三四岁吧,从简历上看都写了一到两年的工作经验. 也由于是小公司,所以对工作经验这些没 ...
- 在Java中final类与一般类有什么样的区别
final修饰的类不能被继承. Sting就是一个被final修饰的类,我们只能用,不用继承final不仅可以修饰类,还可以修饰变量,被final修饰的变量就是一个常量,只能赋值一次注意final和f ...
- AWS & ASP.NET
https://dotnetcodr.com/amazon-cloud/ Amazon cloud Big Data overall architecture Architecture of a Bi ...
- Navicat for SQL Server(SQLServer数据库管理)
Navicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具.它可以用于 SQL Server 2000.2005 及 2008R2 ...
- springBoot bean注入
1.@Component:把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/> 2.@Autow ...
- JVM调优之---一次GC调优实战
某系统反馈『性能抖动,响应时间会突然飙高,TP999 MAX会到3000+』,初步怀疑是JVM FULL GC导致的 STW,观察FULL GC日志默认的JVM参数: -Xms4096m -Xmx40 ...
- fork failed.: Cannot allocate memory
在做压力测试时候: [root@666 ok]# webbench -c 5000 -t30 http://10.100.0.61/ Webbench - Simple Web Benchmark 1 ...
- CCShatteredTiles3D
CCSprite* pImgBg = CCSprite::create("1.png"); pImgBg->setPosition(ccp(CCDirector::share ...
- Apache Flink Training and sample code
http://training.data-artisans.com/ https://github.com/dataArtisans/blog-post-code-samples https://gi ...
- studying Bitcoin
https://github.com/bitcoinbook/bitcoinbook/blob/develop/book.asciidoc https://github.com/bitcoin/bip ...