![](https://img-blog.csdnimg.cn/20201208180534955.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Hive和数仓
文章平均质量分 84
HiveSQL在大数据中是重中之重
LBJ_小松鼠
这个作者很懒,什么都没留下…
展开
-
Hive的调优以及数据倾斜问题
前言: 对于我们大数据工程师而言,掌握理解好Hive的调优是相当重要的,其中Hive的调优主要涉及到如下几个:压缩和存储调优,参数调优,sql的调优,数据倾斜调优,小文件问题的调优等~1. 数据的压缩的存储的格式:1.1 map阶段输出数据压缩 ,在这个阶段,优先选择一个低CPU开销的算法。set hive.exec.compress.intermediate=trueset mapred.map.output.compression.codec= org.apache.hadoop.io.原创 2020-12-29 18:00:11 · 222 阅读 · 1 评论 -
数仓中Hive的优化
1. Hive调优1.1 数据压缩在实际工作当中,hive当中处理的数据,一般都需要经过压缩,可以使用压缩来节省我们的MR处理的网络带宽1.MR支持的压缩编码2.压缩配置参数 要在Hadoop中启用压缩,可以配置如下参数(mapred-site.xml文件中)3.开启Map输出阶段压缩 开启map输出阶段压缩可以减少job中map和Reduce task间数据传输量。4.开启Reduce输出阶段压缩 当Hive将输出写入到表中时,输出内容同样可以进行压缩。属性 hive.exec.co原创 2020-12-27 19:30:04 · 252 阅读 · 0 评论 -
Hive函数date_sub() 和 nvl()
date_sub() 日期减少函数select date_sub('2020-12-12',10);说明:返回开始时间减去days天后的时间输出:2020-12-02nvl()判断是否为null值nvl(expr1,expr2)说明:如若expr1为null就返回expr2,否则返回expr1例如: select nvl(8888,9999);输出:8888例如:select nvl(null,9999);输出: 9999注意:expr1和expr2的类型要保持一致...原创 2020-12-25 09:10:53 · 2854 阅读 · 0 评论 -
Hive函数concat()和concat_ws()
concat() 字符串拼接select concat('刘','-','阿','-','福');输出: 刘-阿-福concat_wsselect concat_ws('-','liu','a','fu');输出: liu-a-fu根据自己的业务需求灵活选择应用即可!!原创 2020-12-25 09:00:42 · 1851 阅读 · 0 评论 -
Hive日期函数unix_timestamp()和from_unixtime()
unix_timestamp() 日期转时间戳select unix_timestamp();输出: 1608652071 --1970年1月1日到当前时间的毫秒值from_unixtime() 时间戳转日期select from_unixtime(1608651997,'yyyy-MM-dd HH:mm:ss');输出: 2020-12-22 23:46:37原创 2020-12-25 08:54:20 · 1191 阅读 · 0 评论 -
Hive的分区和分桶
1. 分区表分区不是独立的表模型,要和内部表或者外部表结合:内部分区表外部分区表在hive中,分区就是分文件夹1.创建表(单个分区)create table score(s_id string,c_id string, s_score int) partitioned by (month string) row format delimited fields terminated by '\t';解释:partitioned by 固定写法 表示分区 month string 要分区原创 2020-12-21 22:41:01 · 384 阅读 · 0 评论 -
Hive静态分区与动态分区
简介Hive中的分区就是分文件夹,建立分区的目的就是通过指定的方式来减少扫范围,进而提高查询效率,Hive中每个分区对应着表很多的子目录,将所有的数据按照分区列放入到不同的子目录中去。静态分区与动态分区Hive分区: 分区:根据插入时是否需要手动指定分区可以分为: 静态分区:导入数据时需要手动指定分区。(指定特定的文件夹也就是特定的值) 动态分区:导入数据时,系统可以动态判断目标分区。(不能直接用,要手动指定) 两者建表是没有任何区别 仅仅只是插入数据时有区别例如: 按年分区原创 2020-12-19 09:24:17 · 247 阅读 · 1 评论 -
OLTP与OLAP的区别和联系
先简单看看他们的定义OLTP(on-line transaction processing)翻译为联机事务处理, OLAP(On-Line Analytical Processing)翻译为联机分析处理,从字面上来看OLTP是做事务处理,OLAP是做分析处理。从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询。再从应用上来看看OLTP与OLAP的区别OLTP主要用来记录某类业务事件的发生,如购买行为,当行为产生后,系统会记录是谁在何时何地做了何事,这样的一行(或多行)数据会以增删转载 2020-12-17 16:05:36 · 9466 阅读 · 0 评论 -
Hive函数
1.Hive函数Hive的函数分为三类: 聚合函数、内置函数,表生成函数1.1 内置函数1:数学函数2:字符串函数3:日期函数4:条件函数 1) if 函数 hive> select if(1=2,100,200) ; -- 三元 200 hive> select if(1=1,100,200) ; 100 2) 条件判断 case hive> select case when 1=2 then 'tom' when 2=2 then 'mary'原创 2020-12-13 11:46:23 · 313 阅读 · 0 评论 -
Hive查询语法
1.基本查询语法1. * 代表所有 select * from ....... 查询出了所有字段 2. distinct 去重查询 关键字在字段名字的前面 select distinct department from teacher; 3. between ... and ... 在什么之间 >.. and ... < 在什么...之间 4. in 表示或者关系 in(50,66,88) 查询规定中的多的值 5. o原创 2020-12-13 10:42:10 · 764 阅读 · 1 评论 -
Hive数据库以及表的操作
1.Hive的数据库操作1:创建数据库: create database if not exists myhive; if not exists 最好写,方便后面执行shell脚本.解释: 1:当我们在hive每创建一个数据库,则Hive会自动在HDFS上创建一个文件 夹:/user/hive/warehouse/myhive.db #数据库名字 说明:hive的表存放位置模式是由hive-site.xml当中的一个属性指定的(默认就在里面,配置里面看不到) <name>hi原创 2020-12-12 10:55:20 · 678 阅读 · 0 评论 -
Hive的安装
在安装Hive之前要确保集群安装好了MySQL,教程之前已经发表,这里不再解释了.1.Hive的安装方式hive的安装一共有三种方式:内嵌模式、本地模式、远程模式; 这里我安装的是远程模式.版本如下(其实都无所谓,根据自己情况而定):1.1解压Hive安装包并重命名cd /export/software ## 安装包上传的位置tar -zxvf apache-hive-2.1.0-bin.tar.gz -C /export/servercd /export/servermv apach原创 2020-12-08 18:54:08 · 151 阅读 · 0 评论 -
数据仓库以及Hive入门简介
1.数据仓库的介绍1.1 概念数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库顾名思义,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。1.2数据仓库的主要特征数据仓库是面向主题的(Subject-Oriented )、集成的(Int原创 2020-12-08 18:29:36 · 195 阅读 · 0 评论