文档章节

hive 数据迁移SQL

f
 fly_xiang
发布于 2016/06/28 17:55
字数 416
阅读 163
收藏 2
#!/bin/sh
. /etc/profile

workdir=$(dirname $0)
cd $workdir || exit 1

if [[ $# -eq 1 ]]; then
    startday=$(date +%Y%m%d -d "$1")
    endday=$startday
elif [[ $# -eq 2 ]]; then
    startday=$(date +%Y%m%d -d "$1")
    endday=$(date +%Y%m%d -d "$2")
else    
    startday=`date +%Y%m%d --date '-1 day'`
    endday=$startday
fi

while(($startday <= $endday)); do
    echo "==============================${startday}======================"

#insert overwrite table qyer.clean_track partition(logdate='$startday') select  user_id,unique_id,server_timestamp,session_timestamp,local_time,tz,ip,lon,lat,path,referer,type,category,ra_arg,os_browser,channel,ugc_type,platform,ugc_content,map(),refer_ugc_type,refer_ugc_content,'-',loghour,link_url,client_id,extra,map() from qyer.user_tracks where logdate='$startday';

hive -e  "
set mapreduce.job.maps=3;
set mapreduce.input.fileinputformat.split.minsize=330572800;
set mapreduce.input.fileinputformat.split.maxsize=330572800;
set mapreduce.map.output.compress=true;
set mapreduce.map.output.compress.codec=com.hadoop.compression.lzo.LzopCodec;
set mapreduce.output.fileoutputformat.compress=true;
set mapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzopCodec;
set hive.exec.compress.output=true;
set hive.exec.compress.intermediate=true;
use qyer;
alter table clean_track drop IF EXISTS partition (logdate='$startday');
insert overwrite  DIRECTORY '/flume/clean/track/$startday/' 
select  user_id,unique_id,server_timestamp,session_timestamp,local_time,tz,ip,lon,lat,path,referer,type,category,ra_arg,os_browser,channel,ugc_type,platform,ugc_content,map(),refer_ugc_type,refer_ugc_content,'-',loghour,link_url,client_id,extra,map() from qyer.user_tracks  where logdate='$startday' ;
ALTER TABLE clean_track add partition(logdate='$startday') location '/flume/clean/track/$startday/';
"

    if (($? != 0 )); then
    	echo "error occurs when deal with day ${startday}"
    	exit 1
    fi

    echo "==============================finished ${startday}======================"
    startday=$(date +%Y%m%d -d "$startday +1 days" )
done

hive使用map join:

hive -e "set hive.auto.convert.join=false;
set hive.ignore.mapjoin.hint=false;
select /*+ MAPJOIN(a) */ a.xid,b.id,b.platform,a.dora_id from (select xid,dora_id from qyer.xid_doraid where stat_date='20160530') a join (select if(user_id in ('0','-'),unique_id,user_id) as id,platform from qyer.clean_track where logdate='20160530' and loghour=9) b on a.xid=b.id" > 9.txt
查看文件大小
hadoop fs -du -s -h /hive/warehouse/qyer.db/user_tracks/*/logdate=20151008
hadoop dfs -ls -h /flume/clean/track/20130531/
hadoop dfs -setrep -R 2 /flume/clean/track/20151001

select logdate,count(1) from clean_track where logdate>='20130101' and logdate <='20130131' group by logdate
select logdate,count(1) from user_tracks where logdate>='20130101' and logdate <='20130131' group by logdate

hive 外部表 lzo压缩
create external table lzo_test(name string)
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\001' COLLECTION ITEMS TERMINATED BY '\002' MAP KEYS TERMINATED BY '\003' LINES TERMINATED BY '\n'    
STORED AS INPUTFORMAT
  'com.hadoop.mapred.DeprecatedLzoTextInputFormat'  
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 
 LOCATION '/flume/clean/lzo_test';

 

© 著作权归作者所有

共有 人打赏支持
f
粉丝 2
博文 44
码字总数 76735
作品 0
武汉
HPL/SQL (Hive Hybrid Procedural SQL On Hadoop) --- 一个在Hive上执行过程SQL的工具

HPL / SQL是一种为Hive实现过程化SQL的工具。 从Hive 2.0.0(HIVE-11055)开始可用。 HPL/SQL对于Hive的意义,也就是PL/SQL对于Oracle的意义。 对于广大的数据开发者有以下几点福音 1.使用变...

Matthew.L
06/08
0
0
SQL、NewSQL和NoSQL融合研究与实践

本文根据DBAplus社群第111期线上分享整理而成。 近几年,各类大数据技术迅猛发展,企业中数据处理量呈现几十到几百倍增长,数据类型也从传统结构化数据,延伸到实时流数据,以及各类非结构化...

朱祥磊
2017/07/06
0
0
[Spark]Shark, Spark SQL, Hive on Spark以及SQL On Spark的未来

随着的引入以及的新功能(HIVE-7292)的引入,我们对这两个项目的立场以及它们与Shark的关系有了很多的关注。在今天的Spark Summit上,我们宣布我们正在停止的开发,并将资源全部集中在上,这...

sjf0115
2017/06/20
0
0
Apache Hive 走向内存计算,性能提升26倍

Apache Hive 2.1已于几个月前发布,它引入了内存计算,这使得Hive计算性能得到极大提升,这将会影响SQL On Hadoop目前的竞争局面。据测试,其性能提高约26倍。 Apache Hive 2.1新引入了6大性...

王练
2016/11/01
5.4K
17
Hive 入门介绍

1 Hive是什么 Hive是构建在Hadoop之上的数据仓库平台; Hive是一个SQL解析引擎,它将SQL语句转译成MapReduce任务,并在Hadoop上执行; Hive表是HDFS的一个文件目录,一个表名对应一个目录名,...

林中漫步
2016/07/13
41
0

没有更多内容

加载失败,请刷新页面

加载更多

linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
42分钟前
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
7
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
16
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部