hive表增量抽取到mysql(关系数据库)的通用程序(三)
hive表增量抽取到oracle数据库的通用程序(一)
hive表增量抽取到oracle数据库的通用程序(二)
这几天又用到了该功能了,所以又改进了一版,增加了全量抽取和批量抽取两个参数。并且可以设置每批次抽取到记录数。
使用shell脚本可以方便的将hive中数据抽取到任何关系型数据库中。
shell脚本到demo如下,为便于测试,将每批次处理改为2条记录:
#!/bin/sh ## !!!注意lib中jar包兼容性问题:
## 如果包含log4j-slf4j-impl-2.6..jar、log4j-web-2.6..jar,请删除,否则会导致冲突,程序启动报错。
## dim_code=day
dim_value=`date -d "yesterday" +%Y%m%d` ## 以下字段不能换行
rdms_driver='com.mysql.jdbc.Driver'
rdms_url='jdbc:mysql://xx.xx.xx.xx:3306/bigdata?characterEncoding=UTF8'
rdms_username='bigdata'
rdms_password=''
rdms_tableName=app_flow_general
rdms_columnNames='tenantcode,dim_code,dim_value,store_code,platform,start_date,end_date,uv,pv,bounce_rate,avg_view,avg_ts,new_uv,old_uv,trade_cr'
rdms_presql='delete from app_flow_general where dim_code = "'${dim_code}'" and dim_value ="'${dim_value}'"' ## 依赖hiveServer2
hive_url='jdbc:hive2://dwdev-name1:10000/default'
hive_hql='select tenantcode,dim_code,dim_value,store_code,platform,start_date,end_date,uv,pv,bounce_rate,avg_view,avg_ts,new_uv,old_uv,trade_cr from dw_app.app_flow_general where dim_code = "'${dim_code}'" and dim_value = "'${dim_value}'"' ## 以下是执行java程序,可根据实际情况调整,默认可以不修改
## lib为jar依赖包文件夹
## hive_hql: 必填, hive中查询语句
## rdms_tableName: 必填,目标表名
## rdms_columnNames: 必填,目标表字段
## rdms_presql: 可选, 执行插入前,在RDMS中预先执行的sql。通常用来重复导入时候,先删除之前的错误数据
## batch_size: 可选, 默认值5000,和insert_model配合使用,当insert_model为0时才有效
## insert_model: 可选, 默认0, 默认分批次插入,-分批次读取插入, -全部一次性读取插入
java -Djava.ext.dirs=lib com.etl.Hive2RMDS \
--hive_url "${hive_url}" \
--hive_hql "${hive_hql}" \
--rdms_driver "${rdms_driver}" \
--rdms_url "${rdms_url}" \
--rdms_username "${rdms_username}" \
--rdms_password "${rdms_password}" \
--rdms_tableName "${rdms_tableName}" \
--rdms_columnNames "${rdms_columnNames}" \
--rdms_presql "${rdms_presql}" \
--batch_size '' \
--insert_model ''
执行文件目录结构如下:
lib文件夹放所有依赖包,lib文件夹和shell脚本同层。

实际运行时,显示解析的参数

一共4条记录,分2批次导入。
注意hive用的版本是apache 2.3.3,不支持cdh5的hive版本。
源程序下面gitee:
https://gitee.com/pang123/hive2etl
hive表增量抽取到mysql(关系数据库)的通用程序(三)的更多相关文章
- hive表增量抽取到oracle数据库的通用程序(二)
hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: ...
- hive表增量抽取到oracle数据库的通用程序(一)
hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...
- 创建function实现hive表结果导出到mysql
1. 创建临时function (这里两个包都是hive自带的,不需要自己开发的,可以根据名称查找对应的版本) add jar /opt/local/hive/lib/hive-contrib-.ja ...
- oozie4.3.0+sqoop1.4.6实现mysql到hive的增量抽取
1.准备数据源 mysql中表bigdata,数据如下: 2. 准备目标表 目标表存放hive中数据库dw_stg表bigdata 保存路径为 hdfs://localhost:9000/user/h ...
- 将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式
https://blog.csdn.net/niityzu/article/details/45190787 交通流的数据分析,需求是对于海量的城市交通数据,需要使用MapReduce清洗后导入到HB ...
- 使用 sqoop 将mysql数据导入到hive表(import)
Sqoop将mysql数据导入到hive表中 先在mysql创建表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` varchar() ...
- Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递
http://niuzhenxin.iteye.com/blog/1706203 Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...
- hive和hbase本质区别——hbase本质是OLTP的nosql DB,而hive是OLAP 底层是hdfs,需从已有数据库同步数据到hdfs;hive可以用hbase中的数据,通过hive表映射到hbase表
对于hbase当前noSql数据库的一种,最常见的应用场景就是采集的网页数据的存储,由于是key-value型数据库,可以再扩展到各种key-value应用场景,如日志信息的存储,对于内容信息不需要完 ...
- HDFS文件和HIVE表的一些操作
1. hadoop fs -ls 可以查看HDFS文件 后面不加目录参数的话,默认当前用户的目录./user/当前用户 $ hadoop fs -ls 16/05/19 10:40:10 WARN ...
随机推荐
- grant 权限 on 数据库对象 to 用户
grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to common_ ...
- 基于Socket的低层次Java网络编程
Socket通讯 网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket.Socket通常用来实现客户方和服务方的连接.Socket是TCP/IP协议的一个十分流 ...
- iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态
iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态 在示例2-2中,设置按钮的标题和颜色时,需要对按钮的状态进行设置,表示按钮在某一状态下的标题和标题颜色是什么样子.例如,UICo ...
- centos7 rabbitmq集群搭建+高可用
环境 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node1 ~]# uname -r -.el ...
- FT232H FT2232H FT4232H
The FT232H is the single channel version, the FT2232H is the dual-channel, and there is also anFT423 ...
- android:Button控件
Button 是程序用于和用户进行交互的一个重要控件,相信你对这个控件已经是非常熟悉 了,因为我们在上一章用了太多次 Button.它可配置的属性和 TextView 是差不多的,我们 可以在 act ...
- 奇怪吸引子---LorenaMod1
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- 440P 测试三星ssd840pro 512g
下面是鲁大师的截屏 安装win8.1 x64颇费周折,计算机->管理模糊,解决方法 现在最大的问题是cpu风扇噪音和温度,看网上确实存在此问题,纯铜风扇+7783硅脂是必须的,下面鲁大师温度截屏 ...
- [leetcode]Minimum Window Substring @ Python
原题地址:https://oj.leetcode.com/problems/minimum-window-substring/ 题意: Given a string S and a string T, ...
- Swift 编程语言【转载+整理】
原文地址 在过去的几年中,移动应用程序风靡全世界并且已经改变了我们使用互联网进行工作或者休闲的方式.为了创建移动应用程序,各种技术应运而生,同时开发过程也开始将其作为一等公民来对待.尽管移动似乎已经无 ...