1.length(null) 结果不是0是null,天真的我因为这个被坑苦了
2.当一段sql报错,且不显示什么信息时,你就看看
表名.字段名,中间的.是不是写成了,
3.防止数据倾斜,这个真的太影响队列里的其他操作了,为避免数据倾斜,在2个地方需要额外注意,一个是表关联,一个是汇总数据。
在表关联时,可以
t1
left join
t2
on nvl(t1.line,concat('hive1',rand())) = nvl(t2.line,concat('hive1',rand()))
在汇总数据时
select id, sum(sum_num) from ( select id, cast(rand() * 100000 as int) as idx, sum(num) sum_num from table1 ) a group by id
虽然多包一层,但可以避免数据倾斜
4.建表时,要加存储格式和压缩格式,要不然碰到大数据量运行,会吃光运行资源,而且存储资源也会占光
create table ta1 stored STORED AS ORC TBLPROPERTIES ('orc.compress' = 'SNAPPY')
select
...
from ta



