企业常用Hive SQL配置

企业常用Hive SQL配置

在企业中使用Hive SQL需要一定的规范。一般在SQL编写之前,需要进行规范的注释添加,并设定特定的配置。

在SQL文件开始,常见的注释有:

--@Name:所属数据库.结果表
--@Description:描述
--@Type:表类型,如每日汇总表
--@Target:结果表
--@source:数据源表1	别名1
--@source:数据源表2	别名2
--@Author:工号 作者
--@CreateDate:创建日期
--@ModifyBy:修改人
--@ModifyDate:修改日期
--@ModifyDesc:修改描述
--@Copyright  版权

良好的注释,便于代码的阅读和版本的控制。

在注释之后,会添加公用的调优参数:

-- 设置作业名,方便出错后作业查询
set mapred.job.name = TASK_NAME (${hivevar:statis_date});
-- 每个Map最大输入大小,可以适当调整。
set mapred.max.split.size = 300000000;
-- 每个Map最小输入大小,可以适当调整。
set mapred.min.split.size = 100000000;
-- 执行Map前进行小文件合并
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
-- hive自动根据sql,选择使用common join或者map join(关闭)
set hive.auto.convert.join = false;
-- 在Map-only的任务结束时合并小文件
set hive.merge.mapfiles = true;
-- 在Map-Reduce的任务结束时不合并小文件
set hive.merge.mapredfiles = false;
-- 合并文件的大小,可以适当调整。
set hive.merge.size.per.task = 300000000;

这些参数中,首先进行了作业名的设置,然后对Map数量进行了设置,便于并发的提高;Map阶段前进行小文件合并,一定程度上缓解了小文件带来的影响。

接着可以设置Join的自动判断,如果存在小表,则直接使用map join将表加载到内存中,而避免shuffle,这里设置了关闭,可以根据需求来定。

最后设置任务结束时,小文件的合并。

在此之后,便可以进行SQL的编写。良好的开发规范,可以避免很多问题。当然在SQL文件中,一般仅涉及作业调优,对集群的公共调优部分会持久化到配置文件中。

后话

如果有帮助的,记得点赞、关注。在公众号《数舟》中,可以免费获取专栏《数据仓库》配套的视频课程、大数据集群自动安装脚本,并获取进群交流的途径。

我所有的大数据技术内容也会优先发布到公众号中。如果对某些大数据技术有兴趣,但没有充足的时间,在群里提出,我为大家安排分享。

公众号自取:

公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桥路丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值