![](https://img-blog.csdnimg.cn/20200730205703985.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Hive
文章平均质量分 83
Hive从入门到精通,常见问题,知识点,实战问题
一个写湿的程序猿
练习两年半的程序猿。。。只因(ji)你太美!!!
初识不知文中意,再见已是文中人
展开
-
Hive数据存储格式有哪些?TextFile、SequenceFile、RCFile、ORCFile、Parquet有什么区别?为什么绝大多数都使用ORCFile、Parquet格式?
通过 ORC 这些索引,可以快速定位满足查询的数据块,规避大部分不满足查询条件的文件和数据块,相比于读取传统的数据文件,进行查找时需要遍历全部的数据,使用 ORC 可以避免磁盘和网络 I/O 的浪费,提升程序的查找效率,提升整个集群的工作负载。Parquet 在存储数据时,也同 ORC 一样记录这些数据的元数据,这些元数据也同 Parquet 的文件结构一样,被分成多层文件级别的元数据、列块级别的元数据及页级别的元数据。Hive 是面向 OLAP 的,所以它的事务也和 RDMBS 的事务有一定的区别。原创 2023-03-16 15:10:58 · 1588 阅读 · 0 评论 -
Hive超常用的十个转换小技巧
Hive超常用的十个转换小技巧1、数据脱敏函数2、hive 获取当天时间3、hive 格式化时间数据4、hive 获取本月第一天,本年第一天,上个月第一天,本月最后一天,下个月第一天等指标5、datediff日期比较函数第一个参数是结束日期,第二个是开始日期,返回结束日期减开始日期6、hive对yyyy/MM/dd格式的日期和yyyy-MM-dd格式的日期相互转换方案7、hive的多行转多列8、hive查找数组内是否包含某个元素9、hive字符串数组类型的数据转为字符串数据10、hive原创 2022-10-02 09:00:00 · 723 阅读 · 0 评论 -
什么情况下mysql innodb会发生回表操作?
什么情况下mysql innodb会发生回表操作?回表是什么意思?什么是索引覆盖?为什么设置了命中了索引但还是造成了全表扫描MySQL innodb的主键索引是簇集索引(聚簇索引),也就是索引的叶子节点存的是整个单条记录的所有字段值;非主键索引(其它索引)的就是非簇集索引(非聚簇索引),非簇集索引的叶子节点存的是主键字段的值。索引的叶子节点结构是key value,key是索引项,value存放具体值,主键索引在mysql中是簇集索引,key是主键,value是单条记录的所有值。但一张原创 2021-09-02 17:24:22 · 2735 阅读 · 3 评论 -
Hive实现同比环比计算
Hive实现同比环比计算同比环比的计算销售量的月年占比同比环比lead lag 的实现自关联的实现同比环比的计算测试数据1,2020-04-20,4202,2020-04-04,8003,2020-03-28,5004,2020-03-13,1005,2020-02-27,3006,2020-01-07,4507,2019-04-07,8008,2019-03-15,12009,2019-02-17,20010,2019-02-07,60011,2019-01-13,300CR原创 2022-02-25 17:29:21 · 3789 阅读 · 0 评论 -
Hive实现时间滑动窗口计算
Hive实现时间滑动窗口计算时间滑动计算外部调用实现时间循环自关联实现滑动时间窗口扩展基于自然周的的滚动时间窗口计算总结时间滑动计算需求大致是这样的,我们有一个业务涉及到用户打卡,用户可以一天多次打卡,我们希望计算出7天内打卡8次以上,且打卡时间分布在4天以上的时间具体解释一下这个需求用户一天可以打卡多次,所以要求打卡必须分布在4天以上;7天不是一个自然周,而是某一天和接下来的6天,也就是说时间是是滑动的,窗口大小是7,步长是1,说白了就是窗口计算;其实说到这里你就想到了窗口函数,虽原创 2022-02-25 17:28:26 · 3487 阅读 · 2 评论 -
Hive从入门到精通,常见问题知识点
Hive从入门到精通(全)Hive大体可以分为三大部分, 基础,调优,源码。常见问题知识点1、基础基础部分主要是:Hive的一些概念、DDL数据定义、DML数据操作、hive函数这部分重点掌握:主要是DDL (建表语句、分区、分桶),DML(数据的操作、SQL语句),函数(基本函数、开窗、行列转行)Hive最重要的还是SQL,就是实操,说白了就是能用SQL完成对应的需求,一般常见的报表类指标都有现成的SQL解决方案。【Hive-基础】优缺点,架构原理,与数据库的差异*【Hive-基础】基本数原创 2021-12-25 14:21:09 · 1471 阅读 · 0 评论 -
MySQL为什么命中索引还会全表扫描?简述覆盖索引和回表
MySQL为什么命中索引还会全表扫描?简述覆盖索引和回表什么是索引?索引的类型聚簇索引普通索引示例索引存储结构索引查找过程回表查询索引覆盖如何实现覆盖索引什么是索引?索引其实是一种能高效帮助MYSQL获取数据的数据结构,通常保存在磁盘文件中,好比一本书的目录,能加快数据库的查询速度。除此之外,索引是有序的,所以也能提高数据的排序效率。通常MYSQL的索引包括聚簇索引,覆盖索引,复合索引,唯一索引,普通索引,通常底层是B+树的数据结构。总结一下,索引的优势在于:提高查询效率。降低数据排序的原创 2022-01-20 10:59:40 · 5194 阅读 · 1 评论 -
【Hive】SQL处理各种场景问题(题)
一、行列转换描述:表中记录了各年份各部门的平均绩效考核成绩。表名:t1表结构:a -- 年份b -- 部门c -- 绩效得分表内容: a b c2014 B 92015 A 82014 A 102015 B 7问题一:多行转多列问题描述:将上述表内容转为如下输出结果所示: a col_A col_B2014 10 92015 8 7参考答案:select a, max(case when b="原创 2021-12-23 11:39:19 · 2170 阅读 · 0 评论 -
【Hive】HQL执行过程、编译MR过程解析
SQL执行过程解析Hive是什么?Hive 底层执行架构Hive五个组件基本流程Hive SQL 编译成 MapReduce 过程SQL编译成MapReduce具体原理Join的实现原理Group By的实现原理Distinct的实现原理来源:大数据DTHive是什么?Hive 是数据仓库工具,再具体点就是一个 SQL 解析引擎,因为它即不负责存储数据,也不负责计算数据,只负责解析 SQL,记录元数据。Hive直接访问存储在 HDFS 中或者 HBase 中的文件,通过 MapReduce、Sp原创 2021-09-28 14:57:35 · 2438 阅读 · 0 评论 -
【Hive】HQL常见细节、注意事项详解
HQL常见细节、注意事项详解1、decimal2、location3、load data 和 load data local4、drop 和 truncate5、join 连接6、left semi join7、聚合函数中 null 值8、运算符中 null 值9、and 和 or1、decimalhive 除了支持 int,double,string等常用类型,也支持 decimal 类型,用于在数据库中存储精确的数值,常用在表示金额的字段上注意事项:如:decimal(11,2) 代表最多有11原创 2021-09-28 14:56:24 · 1211 阅读 · 0 评论 -
【mysql】group by、on、where、having的常见问题
group by、where、having的常见问题sql 执行顺序group bywhere 和 havingsql 执行顺序1)SQL的书写顺序SELECT- DISTINCT- FROM- JOIN ON- WHERE- GROUP BY- HIVING- ORDER BY- LIMIT2)真正执行的顺序:随着Mysql版本的更新换代,其优化器也在不断的升级,优化器会分析不同执行顺序产生的性能消耗不同而动态调整执行顺序。下面是经常出现的查询顺序:FROM- ON- JOIN- WHERE-原创 2021-09-22 11:13:32 · 2636 阅读 · 0 评论 -
【Hive】split()、explode()、lateral view用法和区别
split、explode、lateral view用法和区别split() 函数explode() 函数lateral view小结split() 函数是用于切分数据,就是将一串字符串,按照指定格式切割成了一个数组,标准格式为split(str,regex),支持正则切分对于 .,| 这样的特殊字符,不加\转义符的时候是特殊字符,加了以后才是普通字符,而对于\d的字符,需要加\后才是特殊字符,就是是说\\d才是匹配数字。有一张表(demo)如下:用split()函数对name字段切分sele原创 2021-09-18 16:16:13 · 3931 阅读 · 2 评论 -
【Hive】count(distinct column) 为何效率低?
count(distinct column)为何效率低?问题?解决办法问题?统计一个按天分区,每天都有百亿条数据条的hive表中account字段的非重用户数(大概两千万)。后来又更改为按id字段分别统计每个id的用户数。很简单,直接count(distinct account)这个句子。然后写上了一行查询完成!然后等待了四个小时,map反着跑就知道肯定有问题。。Hive SQL 基于的mapreduce是并行计算,百亿的数据可不是平时测试时的mysql里的几百条数据。这么想来应该是map和原创 2021-09-17 17:30:37 · 1989 阅读 · 0 评论 -
【Hive】left semi join(exists、in)和 left join 区别
left semi join 和 left join 区别对比执行计划小结对比a表和b表通过user_id关联a表数据select * from wedw_dw.t_user;b表数据select * from wedw_dw.t_order;left joinselect*from wedw_dw.t_user as t1left join wedw_dw.t_order as t2on t1.user_id = t2.user_id;如图所示:a表和b表匹原创 2021-09-17 16:27:39 · 4455 阅读 · 0 评论 -
【Hive】Hive中的MapJoin,CommonJoin,SMBJoin详细介绍
Hive-窗口函数,详细分析,案例实践文章目录Hive-窗口函数,详细分析,案例实践窗口函数介绍窗口函数分析案例实践一案例实践二窗口函数介绍LEAD(col,n, default_val):表示往后第n行数据,col是字段,n表示第几行,default_val 如果没有往后第n行则用默认值代替LAG(col,n,default_val):表示往前第n行数据,col是字段,n表示第几行,default_val 如果没有往前第n行则用默认值代替FIRST_VALUE (col,true/false):原创 2020-08-04 23:26:45 · 2490 阅读 · 0 评论 -
Hive-SQL基础练习一
文章目录练习一练习二练习一有如下的用户访问数据table_name:actionuserId (string), visitDate (string), visitCount (int)用户ID 访问时间 访问次数userid|visitdate|visitcount|------|---------|----------|u01 |2017/1/21| 5|u02 |2017/1/23| 6|u03 |2017/1/22|原创 2020-08-06 23:25:20 · 448 阅读 · 0 评论 -
【Hive-源码】HQL是如何转换为MR任务的,源码流程解读
这一、Hive的核心组成介绍二、HQL转换为MR任务流程说明三、HQL的读取与参数解析2.1 程序入口 — CliDriver2.2 找到“CliDriver”这个类的“main”方法2.3 主类的run方法2.4 executeDriver方法2.5 processLine方法2.6 processCmd方法2.7 processLocalCmd方法2.8 qp.run(cmd)方法2.9 runInternal方法四、HQL生成AST(抽象语法树)4. compileInternal方法2.4.2 co原创 2021-12-24 09:04:29 · 1633 阅读 · 0 评论 -
【Hive-调优】并行执行,严格模式,Fetch抓取,本地模式
文章目录并行执行严格模式执行计划(Explain)并行执行Hive会将一个查询转化成一个或者多个阶段。这样的阶段可以是MapReduce阶段、抽样阶段、合并阶段、limit阶段。或者Hive执行过程中可能需要的其他阶段。默认情况下,Hive一次只会执行一个阶段。不过,某个特定的job可能包含众多的阶段,而这些阶段可能并非完全互相依赖的,也就是说有些阶段是可以并行执行的,这样可能使得整个job的执行时间缩短。通过设置参数hive.exec.parallel值为true,就可以开启并发执行。不过,在原创 2020-08-05 20:24:18 · 1335 阅读 · 0 评论 -
【Hive-调优】HQL语法优化,Job优化(map端和reduce端)
Hive-调优,Fetch抓取,本地模式文章目录Hive-调优,Fetch抓取,本地模式Fetch抓取本地模式Fetch抓取Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM emp;在这种情况下,Hive可以简单地读取emp对应的存储目录下的文件,然后输出查询结果到控制台。hive.fetch.task.conversion默认是more,老版本 Hive 默认是 minimal(Minimal,查询分区表不走MR)none:执行原创 2020-08-04 23:55:33 · 996 阅读 · 0 评论 -
【Hive-调优】数据压缩格式,存储格式(行式存储、列式存储)
第9章 压缩和存储9.1 Hadoop压缩配置文章目录第9章 压缩和存储9.1 Hadoop压缩配置9.1.1 MR支持的压缩编码9.1.2 压缩参数配置9.2 开启Map输出阶段压缩(MR引擎)9.3 开启Reduce输出阶段压缩9.4 文件存储格式9.4.1 列式存储和行式存储9.4.2 TextFile格式9.4.3 Orc格式9.4.4 Parquet格式9.4.5 主流文件存储格式对比实验9.5 存储和压缩结合9.5.1 测试存储和压缩9.1.1 MR支持的压缩编码压缩格式算法原创 2020-08-05 18:59:06 · 1230 阅读 · 0 评论 -
【Hive-基础】行转列,列转行,窗口函数
行转列,列转行文章目录行转列,列转行行转列列转行行转列1)函数说明(可以是一行转一列,多行转一列)CONCAT(string A, string B...):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 concat()。第一个参数是其余参数,的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。注意:CONCAT_WS must be “string o原创 2020-08-03 22:43:06 · 5606 阅读 · 0 评论 -
【Hive-基础】分区表,二级分区,动态分区,分桶表
分区表,二级分区,动态分区,分桶表文章目录分区表,二级分区,动态分区,分桶表分区表与分桶表的区别?分区表1 分区表基本操作2 分区表二级分区3 动态分区调整分桶表分区表与分桶表的区别?1)分区表:使用的是表外字段(表中不存在的字段),需要指定字段类型;分桶表:使用的是表内字段(表中存在的字段),已经知道字段类型,不需要指定。2)分区表:通过关键字partitioned by(partition_name string)声明,分桶表:通过关键字clustered by(column_name)原创 2020-08-03 18:46:27 · 2752 阅读 · 0 评论 -
【Hive-基础】全局排序、内部排序、分区排序
排序文章目录排序全局排序(Order By)每个Reduce内部排序(Sort By)分区(Distribute By)分区排序(Cluster By)全局排序(Order By)Order By:全局排序,只有一个Reducer1)使用 ORDER BY 子句排序ASC(ascend): 升序(默认)DESC(descend): 降序(1)查询员工信息按工资升序排列hive (default)> select * from emp order by sal;(2)查询员工信息按工原创 2020-08-02 22:42:04 · 2259 阅读 · 0 评论 -
【Hive-基础】表数据的导出、导入(HDFS、本地)
表数据的导出、导入(HDFS、本地)文章目录表数据的导出、导入(HDFS、本地)数据导入1 向表中装载数据(Load)2 通过查询语句向表中插入数据(Insert)3 查询语句中创建表并加载数据(As Select)4 创建表时通过Location指定加载数据路径5 Import数据到指定Hive表中数据导出1 Insert导出2 Hadoop命令导出到本地3 Hive Shell 命令导出4 Export导出到HDFS上数据导入1 向表中装载数据(Load)1)语法load data [loca原创 2020-08-02 22:22:15 · 11306 阅读 · 0 评论 -
【Hive-基础】DDL语句,数据库、表的基本CURD操作
DDL语句,数据库、表的基本操作文章目录DDL语句,数据库、表的基本操作1 创建-数据库2 查询-数据库3 修改-数据库4 删除-数据库5 创建-表5.1 管理表5.2 外部表5.3 管理表与外部表的互相转换6 修改-表7 删除-表8 清除-表1 创建-数据库CREATE DATABASE [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_原创 2020-08-02 21:53:02 · 1290 阅读 · 0 评论 -
【Hive-基础】基本数据类型,集合数据类型,类型转换
Hive-基本数据类型,集合数据类型,类型转换文章目录Hive-基本数据类型,集合数据类型,类型转换基本数据类型集合数据类型类型转化基本数据类型HIVEMySQLJAVA长度例子TINYINTTINYINTbyte1byte有符号整数2SMALINTSMALINTshort2byte有符号整数20INTINT int4byte有符号整数20BIGINTBIGINTlong8byte有符号整数20BOOLEAN无原创 2020-08-02 20:48:06 · 831 阅读 · 0 评论 -
【Hive-基础】优缺点,架构原理,与数据库的差异
Hive-优缺点,架构原理,与数据库的差异文章目录Hive-优缺点,架构原理,与数据库的差异1 Hive的概述2 Hive的优缺点3 Hive架构原理4 Hive和数据库比较4.1 查询语言4.2 数据更新4.3 执行延迟4.4 数据规模1 Hive的概述1) Hive简介Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于Hadoop的一个数据仓库工具(不是数据库),可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。2) Hive本质:将HQL转化成M原创 2020-07-31 23:00:36 · 1641 阅读 · 0 评论