我是靠谱客的博主 贪玩盼望,最近开发中收集的这篇文章主要介绍hive导出数据创建mysql_创建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中创建相同字段的表.

21a1d750047e938bd441a668af04adbd.png

根据上面到规则,完整的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

执行过程如下:

2acb0197e407a6ac6ba7dcd5470fbc4f.png

查看mysql 中记录:

8606350bbc7c7ff18fc2a560ba2f2fab.png

一般数据量不大的情况下,可以直接使用,还是比较方便的。省去了使用sqoop或者自己开发的麻烦。

从hive将数据导出到mysql(转)

从hive将数据导出到mysql http://abloz.com 2012.7.20 author:周海汉 在上一篇文章中,提到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= ...

随机推荐

step by step设置postgresql用户密码并配置远程连接

设置pgsql默认用户posgres的密码 1.确认pgsql是开启的 /etc/init.d/postgresql status 2.使用默认用户登录 sudo su postgres 3.进入ps ...

ZJOI2008泡泡堂BNB

1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1305  Solved: 676[Submit][Sta ...

SNMP协议具体解释

简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议.在1988年被制定,并被Internet体系结构委员会(IAB)採纳作为一个短期的网络管理解决方式:因为SNMP的简单性,在Inter ...

java怎么连接mysql数据库

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

Ocelot中文文档-请求Id和关联Id

Ocelot支持一个客户端以头的形式发送requestid. 如果设置了,一旦中间件管道中可用,Ocelot便会使用这个requestid进行日志记录. Ocelot也会使用指定头将requireid ...

瞎搞poj1013

http://poj.org/problem?id=1013 题意:给你标记从A到L的石子,其中有一个石子,可能会轻于其它石子,也可能重于其它石子.你只能通过三次天平的测量去找到这个石子.天平的三个状 ...

DRBD数据镜像与搭建

一.数据安全工具DRDB 1. 数据镜像软件DRDB介绍 分布式块设备复制,是基于软件.基于网络的块复制存储解决方案 作用:用于服务器之间的磁盘.分区.逻辑卷等进行数据镜像. 例如:当用户将数据写入本 ...

FPGA学习笔记. 二分频和三分频

二分频和三分频 二分频:将输入频率CLK分为原来的 1/2 . 实现:在每次CLK的上升沿或下降沿将输出翻转. 三分频: 1/3占空比. 实现:可使用上升沿或下降沿计数生成输出.需要一个两位计数器. ...

Http的Get和Post--扫盲篇

Http Get请求,根据Http规范Get用于服务器信息的获取,而且安全及幂等的.其中安全的在此处的含义是:不会对服务器数据造成修改.增加.以及数据状态的改变. Http Post请求,表示可能修改 ...

Oracle 修改trace 文件路径

修改trace 文件路径命令 适用于oracle 11G以后的版本 在集群环境中的2个节点都生效SQL> ALTER SYSTEM SET diagnostic_dest='/tmp' SCOP ...

最后

以上就是贪玩盼望为你收集整理的hive导出数据创建mysql_创建function实现hive表结果导出到mysql的全部内容,希望文章能够帮你解决hive导出数据创建mysql_创建function实现hive表结果导出到mysql所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部