hive编程笔记---多表关联使用感想
来源:互联网 发布:焦作知行纳米 编辑:程序博客网 时间:2024/06/03 09:25
背景:
hadoop平台上通过hive整理模型预测数据,需要将多个表(行为表,大概20+张,以下简称“子表”)与注册信息表(简称“主表”)进行关联,需要每天凌晨5点前输出预测数据。关联不同方式可能影响最终建模数据表生成时间。整理过程中,主要经过了如下步骤。
感想:
使用left outer join 进行关联时,left的表越多,则运算需要的时间越多。所以尽可能将需要left的表进行合并。使得left 的记录数变小。
第一天:
简单粗暴,将注册信息表直接与20+表关联,其实没有复杂的运算,但是任务执行时间2小时40分钟。
第二天:
1) 分析需要关联的表运行完成时间,发现其中很多行为表都是凌晨1点完成的。
2) 将同类特征且运行完成时间早的表进行先组合,然后再与注册信息表关联。
3)剔除完成时间较晚的子表
4)发现运行完成时间还是有些晚。
第三天:
1) 分析昨天处理后的子表,发现union all 结果,id去重与未去重差异挺大的,说明进将同类特征先合并不够,需要将更多的行为表合并(通过union all )减少记录数,然后再跟主表关联。
14114988 5433174
select count(*) ,count(distinct id)from (select id from t_a where data_date=20170718 union all select id from t_b where data_date=20170718 )a
2) 分析大表(a,b), 发现这两个表的记录数都是超过千万级别的,但实际应用中,其实我们只需要使用最近活跃的用户。这两个表,
解决方法: 将主表拆分为当天活跃+历史活跃。历史活跃则可t+2计算,t+1计算时,则只需要计算当天活跃的。然后再 将历史活跃和当天活跃合并。
阅读全文
0 0
- hive编程笔记---多表关联使用感想
- hive多表关联
- hive表的关联
- hive与hbase关联表
- 【个人笔记】Mediaplayer使用感想
- mapreduce编程:多表关联
- Hive学习笔记之--Hive 高级编程
- Hive使用笔记
- Hive SQL 使用笔记
- hive使用笔记
- Hive使用笔记
- hive使用笔记
- 《Hive编程指南》学习笔记
- 《Hive编程指南》笔记一
- Hive学习笔记 --- Hive的Beeline使用
- Hive与Oracle表关联语句对比
- 编程感想
- 编程感想
- 二十多种视频前景提取的算法
- ORACLE AWR 报告的生成
- centos7下lamp环境搭建
- 使用Gson获取签到记录
- Digit Counting (P57)/ UVA
- hive编程笔记---多表关联使用感想
- vue中watch的使用时机,如何在初始化后再使用?
- java 多态提高篇
- ZOJ3827-水题-I
- bzoj3886[Usaco2015 Jan]Moovie Mooving 状压DP
- HTTPShouldUsePipelining 解释
- c3p0-0.9.1.2.jar与c3p0-0.9.5.2.jar
- centos 6.8 安装nginx
- 2 3 5 7的倍数 【容斥】