HiveSql(1)mapjoin、分区表
来源:互联网 发布:淘宝多少天默认收货 编辑:程序博客网 时间:2024/06/11 01:00
mapjoin、分区表、不等值匹配
业务需求:
A表,小表,穷举的100个动漫电影的IP,表结构ip(id string, key string)
B表,大表,每天的交易数据,上亿条,表结构order(ds string, item_titlestring,buyer_id string, fee string)
现在想要得到这100个动漫电影相关产品的每天的销售额、购买人数。
SQL:
1、建表
create table if not exists jieguo
(
ds string,
fee string ,
cnt string
)
partitioned by (pt string )
2、跑数据
Insert overwrite table jieguo partition (pt=201503)
Select /*+MAPJOIN(a)*/
b.ds,sum(b.fee),count(b.buyer_id)
from ip b
Join
(Select ds, fee,buyer_id
From order
Where ds>=20150101 and ds<=20150331
)b
On instr(b.item_title,a.key)>0
Group by b.ds
学习要点:
1、/*+MAPJOIN*/的用法
如果关联的2张表大小差距悬殊或者进行不等值连接时,一般的join会导致运行速度很慢,使用mapjoin可以有效提高效率
使用场景:
(1)关联操作中的一张表非常小
(2)不等值连接
Select /*+MAPJOIN(a)*/,括号里加的是小表的名称
2、分区表
如果输出的数据比较多,可以采取分区的形式
建表时加一条语句partitioned by
跑数据时Insert overwrite table jieguo partition (pt=201503)
- HiveSql(1)mapjoin、分区表
- hivesql优化技巧之一 mapjoin
- hive优化(1)之mapjoin
- HiveSql语句(1)
- HiveSql(3)HiveSQL与oracle SQL的区别
- 分区表(1)
- Oracle分区表(1)
- Hive join优化(mapjoin,streamtable)
- hivesql错误1:java.lang.Throwable: Child Error, status:255
- HiveSql(2)Lateral view_转行为列
- HiveSQL学习
- hiveSQL记录
- HiveSQL备忘
- HiveSQL-get_json_object
- hiveSQL操作
- hive1.1版本中mapjoin踩到的一个坑
- MapJoin原理
- mapjoin测试
- ios 离线实现
- Linux下安装Nginx1.8.0
- 存储过程和存储函数
- 对#Hello,2015征文#+Android 热敏打印机打印二维码(图片)博客的尝试
- 多进程学习1
- HiveSql(1)mapjoin、分区表
- 数据库设计
- Android APK反编译实战
- spark中 进行高维矩阵的SVD分解(2)
- QT中的PRI文件
- Oracle EBS OM销售订单行状态“施实”处理方法
- Axure产品原型在手机上如何运行
- 全新Linux学习路线图及入门教程
- 注释是恶魔,请不要再写一行注释