查看表结构,可以查看存储文件格式
desc formatted table_name
分区表增加表字段
alter table dwd_dj_ese_iot_case_di add columns(
is_failed bigint comment'是否失败' ) cascade;
分区表修改表字段(字段名、字段类型、字段备注)
ALTER TABLE 数据库名.表名
CHANGE COLUMN 字段名 新的字段名(如果不变就保持原字段) 字段类型(若不变就采用原来的字段) COMMENT '新的字段备注';
reduce调优
set mapreduce.reduce.memory.mb=4096;
set mapreduce.reduce.java.opts=-Xmx3683m;
set mapred.reduce.tasks = 100;
set hive.map.aggr=true;
map调优
set hive.map.aggr=true;
set mapred.max.split.size=256000000; -- 决定每个map处理的最大的文件大小,单位为B
set mapred.min.split.size.per.node=1; -- 节点中可以处理的最小的文件大小,102400000
set mapred.min.split.size.per.rack=1; -- 机架中可以处理的最小的文件大小
map join
select
/*+ mapjoin(a6,a7)*/
非严格模式
set hive.mapred.mode=nonstrict;
hive关键字冲突处理
先用 ` `,不行的话 SET hive.support.sql11.reserved.keywords=false;
hive 数组
array字段建表时格式 array<string/int>
array_contains 判断array是否含有某个元素 : array_contains(column,"a"),返回true/false
分组聚合,上钻下钻
grouping_sets 在一个GROUP BY查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL
cube 根据GROUP BY的维度的所有组合进行聚合
rollup 是CUBE的子集,以最左侧的维度为主,从该维度进行层级聚合
网友评论