文档章节

hive 数据迁移SQL

f
 fly_xiang
发布于 2016/06/28 17:55
字数 416
阅读 162
收藏 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
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
将现有的SQL工作负载迁移至hadoop竟然如此简单!

想迁移现有的数据仓库到Hadoop平台?想在Hadoop上重用其他RDMBS的SQL技能?有何方案能帮助您解决这类问题,答案是IBM Big SQL。 Big SQL是IBM的SQL on Hadoop解决方案,它充分利用了IBM在RDB...

勿忘初心321
2016/08/25
40
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

弹性工作制的魔咒

简评:你找到了一份完美的工作 —— 可以提前离开公司,还可以在晚上从家里回复邮件。既然如此,你为什么还会有那么强的负罪感呢? 或许是弹性工作制魔咒在作祟。 很多享受弹性工作制的人会始...

极光推送
3分钟前
0
0
KAFKA介绍(分布式架构)

Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以...

明理萝
9分钟前
0
1
os::NodeHandle::subscribe回调函数绑定对象

void Foo::callback(const std_msgs::Empty::ConstPtr& message){}Foo foo_object;ros::Subscriber sub = handle.subscribe("my_topic", 1, &Foo::callback, &foo_object); 参考: ht......

itfanr
11分钟前
0
0
React16.4 开发简书项目 从零基础入门到实战

React16.4 开发简书项目 从零基础入门到实战 关注我的订阅号下载 React16.4 开发简书项目 从零基础入门到实战

蜗牛奔跑
13分钟前
0
0
day57-20180815-流利阅读笔记-待学习

社恐怎么办?这个漫画或许能治愈你 毛西 2018-08-15 1.今日导读 近日,芬兰漫画家卡罗利娜·科尔霍宁创作的绘本《芬兰人的噩梦》在中国大火。一时间书中的主人公马蒂成为了人们茶余饭后热议的...

aibinxiao
17分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部