hive
文章平均质量分 62
sheep8521
让优秀成为一种习惯
展开
-
Hive实战处理(二十三)hive整合phoenix
业务表使用hbase存储,使用hive整合phoenix,使用sql语法进行数据查询。原创 2024-01-04 15:49:19 · 1211 阅读 · 0 评论 -
Hive学习之路 (二十三)Hive 常用的内置函数(补充) posexplode
一、时间区间拆分成单独行1、天级别:根据指定日期(到天)和结束日期,列出这段时间内的所有明细时间select tf.*,t.*, date_add(start_date,pos) from ( select 'a' as a, '2018-11-01' as start_date, '2018-12-01' as end_date ) t lateral view posexplode(split(space(datediff(end_date,start_date)),' ')) tf as原创 2021-05-20 10:21:26 · 837 阅读 · 1 评论 -
Hive学习之路 (二十五)Hive 行转列str_to_map类比mysql的Pivot (补充)
前言传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。一、关系型数据库方式如果使用mysql\oracle对应的pivot函数的话,sql如下:with testtable(select 1 id,'k1' key,123 value union allselect 1,'k2' key,124 value union allselect 2,'k1',234原创 2021-04-07 15:43:04 · 495 阅读 · 0 评论 -
Hive实战处理(十八)拉链表的设计和使用
一、拉链表的使用场景在数据仓库的数据模型设计过程中,经常会遇到下面这种表的设计:1、 有一些表的数据量很大,比如一张用户表,大约10亿条记录,50个字段,这种表,即使使用ORC压缩,单张表的存储也会超过100G,在HDFS使用双备份或者三备份的话就更大一些。2、 表中的部分字段会被update更新操作,如用户联系方式,产品的描述信息,订单的状态等等。3、 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态。4、表中的记录变化的比例和频率不是很大,比如,总共有原创 2021-03-31 18:51:44 · 457 阅读 · 0 评论 -
HIVE实战处理(十) hive函数json_tuple、get_json_object中遇到的json格式不符合规范问题
1、json解析格式的时候失败的时候检查格式问题。注意: 后面的value如果是json的话,外层{}的外面不需要再有""--处理前的代码select line,get_json_object(line,'$.ext')from (select '{"ext":"{"isNeedToMigu":"0"}"}' as line) a;因为格式问题,所以解析json失败,代码结果:--处理后的代码select line,line_new,get_json_object(line_new,'$原创 2021-03-04 14:58:45 · 1686 阅读 · 1 评论 -
Hive学习之路 (二十四)Hive 分桶表介绍
暂无分桶表的使用场景1、概念: 对于表或分区,进一步细分成桶。 分桶方式: 对列进行hash再对桶个数取模,确定记录入桶。 2、操作 普通表:create table nor_tab(id int,name String,age int) row format delimited fields terminated by '\t' lines terminated by '\n'; 加载数据:load data local inpath原创 2021-03-03 16:44:44 · 180 阅读 · 1 评论 -
HIVE实战处理(九) hive函数sort_array解决排序求最大值以及collet_list列表排序混乱
背景:播放数据有2个来源,根据2个来源取每个用户最大的播放时长作为最后结果。因为sort_array不支持倒序排列,只能根据arr[1]来确认是最大值(因为只有2个数据源)select arr,arr[0],arr[1]from (select name, collect_list(play_duration_ms) , sort_array(collect_list(play_duration_ms)) arr, arr[1] --最大的播放时长 --sort_array(ar原创 2021-03-02 18:12:39 · 5090 阅读 · 0 评论 -
HIVE实战处理(八) hive窗口函数
1、 count、sum、avg、max、min# 按照 year 来分组,统计每一年的总和# 结果:每个月的值都是本年的总和sum(val) over(partition by year)# 按照 year 来分组,按照 month 来排序# 结果:n 月的值是本年 1月到 n 月的累计值sum(val) over(partition by year order by month)通过 explain select ... 来查看语句解析,可以简单理解为,在每一次 order by 之后原创 2021-02-09 17:54:56 · 799 阅读 · 0 评论 -
HIVE实战处理(七) hive 新增字段 联级(cascade)和json格式的hive表
问题描述:实际应用中,常常存在修改数据表结构的需求,比如:增加一个新字段。如果使用一般的add columns(col1 string)的语句增加字段的话,对于旧分区中的col1将为空且无法更新,即便insert overwrite该分区也不会生效。1、准备一个分区表test_partition2、测试数据新增字段alter table temp.test_partition add columns (hour string);3、插入数据插入失败,所以原来的插入方式对以前分分区是不生原创 2020-08-06 10:50:19 · 6009 阅读 · 1 评论 -
HIVE实战处理(四)大数据量导入hive动态分区异常处理
动态分区的异常Caused by: org.apache.hadoop.hive.ql.metadata.HiveFatalException: [Error 20004]: Fatal error occurred when node tried to create too many dynamic partitions.The maximum number of dynamic parti...原创 2020-05-07 16:11:35 · 3892 阅读 · 0 评论 -
HIVE实战处理(六)hive的压缩格式以及压缩文件导入hive实战
一、存储行存储的特点: 查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。列存储的特点: 因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个字段的数据类型一定是相同的,列式存储可以针对性的设计更好的设计压缩算法。Hive中常用的存储格式:1....原创 2020-05-06 19:19:14 · 3999 阅读 · 0 评论 -
HIVE实战处理(二)hive、hbase、phoenix实战
数据从1、准备hive数据2、phoenix数据-- 添加HIVE对接PHOENIX的JARadd jar hdfs://ns1/user/hadoop/hive_udf/phoenix-core-4.7.1-HBase-1.1-SNAPSHOT.jar;add jar hdfs://ns1/user/hadoop/hive_udf/phoenix-hive-4.7.1-HBase-1....原创 2020-04-15 13:26:53 · 463 阅读 · 0 评论 -
HIVE实战处理(三)beeline和hive的区别
1、二、实战1、准备hive数据2、phoenix数据-- 添加HIVE对接PHOENIX的JARadd jar hdfs://ns1/user/hadoop/hive_udf/phoenix-core-4.7.1-HBase-1.1-SNAPSHOT.jar;add jar hdfs://ns1/user/hadoop/hive_udf/phoenix-hive-4.7.1-HBas...原创 2020-04-15 12:55:04 · 9016 阅读 · 1 评论 -
Hive学习之路 (二十四) UDF函数之UDTF(一出多)
之前说到了hive udf,见https://blog.csdn.net/liu82327114/article/details/80670415UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-t...原创 2018-07-26 15:39:24 · 2199 阅读 · 0 评论 -
Hive学习之路 (一)Hive初识
Hive学习之路 (一)Hive初识 Hive 简介什么是Hive1、Hive 由 Facebook 实现并开源2、是基于 Hadoop 的一个数据仓库工具3、可以将结构化的数据映射为一张数据库表4、并提供 HQL(Hive SQL)查询功能5、底层数据是...转载 2018-08-09 14:28:53 · 517 阅读 · 0 评论 -
Hive学习之路 (二)Hive安装
Hive学习之路 (二)Hive安装 Hive的下载下载地址http://mirrors.hust.edu.cn/apache/选择合适的Hive版本进行下载,进到stable-2文件夹可以看到稳定的2.x的版本是2.3.3Hive的安装1、本人使用MySQ...转载 2018-08-09 14:32:39 · 479 阅读 · 0 评论 -
Hive学习之路 (三)Hive元数据信息对应MySQL数据库表
Hive学习之路 (三)Hive元数据信息对应MySQL数据库表 概述Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理。上一篇hive的安装也是将元数据信息存放在MySQL数据库中。Hive的元数据信息在MySQL数据中有57张...转载 2018-08-09 14:34:58 · 552 阅读 · 0 评论 -
Hive学习之路 (四)Hive的连接3种连接方式
Hive学习之路 (四)Hive的连接3种连接方式 一、CLI连接进入到 bin 目录下,直接输入命令: [hadoop@hadoop3 ~]$ hiveSLF4J: Class path contains multiple SLF4J binding...原创 2018-08-09 14:36:18 · 650 阅读 · 0 评论 -
Hive学习之路 (五)DbVisualizer配置连接hive
Hive学习之路 (五)DbVisualizer配置连接hive 一、安装DbVisualizer下载地址http://www.dbvis.com/也可以从网上下载破解版程序,此处使用的版本是DbVisualizer 9.1.1具体的安装步骤可以百度,或是修改安...转载 2018-08-09 14:38:14 · 1004 阅读 · 0 评论 -
Hive学习之路 (六)Hive SQL之数据类型和存储格式
Hive学习之路 (六)Hive SQL之数据类型和存储格式 一、数据类型1、基本数据类型Hive 支持关系型数据中大多数基本数据类型类型描述示例booleantrue/falseTRUEtinyint1字节的有符号整数-128~127...原创 2018-08-09 14:39:40 · 194 阅读 · 1 评论 -
Hive学习之路 (七)Hive的DDL操作
Hive学习之路 (七)Hive的DDL操作 库操作1、创建库语法结构CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] //关于数据...转载 2018-08-09 14:40:41 · 188 阅读 · 0 评论 -
Hive学习之路 (八)Hive中文乱码
Hive学习之路 (八)Hive中文乱码 Hive注释中文乱码创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码create external table movie(userID int comment '用户ID',mov...转载 2018-08-09 14:41:35 · 229 阅读 · 0 评论 -
Hive学习之路 (九)Hive的内置函数
Hive学习之路 (九)Hive的内置函数 数学函数Return Type Name (Signature)Description DOUBLE round(DOUBLE a) Ret...转载 2018-08-09 14:49:00 · 397 阅读 · 0 评论 -
Hive学习之路 (十)Hive的高级操作
Hive学习之路 (十)Hive的高级操作 一、负责数据类型1、array 现有数据如下:1 huangbo guangzhou,xianggang,shenzhen a1:30,a2:20,a3:100 beijing,112233,1352233...转载 2018-08-09 14:50:23 · 257 阅读 · 0 评论 -
Hive学习之路 (十一)Hive的5个面试题
Hive学习之路 (十一)Hive的5个面试题 一、求单月访问次数和总访问次数1、数据说明数据字段说明用户名,月份,访问次数数据格式A,2015-01,5A,2015-01,15B,2015-01,5A,2015-01,8B,2015-01...转载 2018-08-10 09:05:22 · 266 阅读 · 0 评论 -
Hive学习之路 (十二)Hive SQL练习之影评案例
Hive学习之路 (十二)Hive SQL练习之影评案例 案例说明现有如此三份数据:1、users.dat 数据格式为: 2::M::56::16::70072,共有6040条数据对应字段为:UserID BigInt, Gender String, Ag...转载 2018-08-10 09:06:41 · 255 阅读 · 0 评论 -
Hive学习之路 (十三)Hive分析窗口函数(一) SUM,AVG,MIN,MAX
Hive学习之路 (十三)Hive分析窗口函数(一) SUM,AVG,MIN,MAX 数据准备数据格式cookie1,2015-04-10,1cookie1,2015-04-11,5cookie1,2015-04-12,7cookie1,2015-04-1...原创 2018-08-10 09:07:55 · 514 阅读 · 0 评论 -
Hive学习之路 (十四)Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
Hive学习之路 (十四)Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK 概述本文中介绍前几个序列函数,NTILE,ROW_NUMBER,RANK,DENSE_RANK,下面会一一解释各自的用途。注意: 序列函数不支持...转载 2018-08-10 09:08:36 · 251 阅读 · 0 评论 -
Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK
Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK 这两个序列分析函数不是很常用,这里也练习一下。数据准备数据格式cookie3.txtd1,user1,1000d1,user2,2000d1,...转载 2018-08-10 09:09:27 · 164 阅读 · 0 评论 -
Hive学习之路 (十六)Hive分析窗口函数(四) LAG、LEAD、FIRST_VALUE和LAST_VALUE
Hive学习之路 (十六)Hive分析窗口函数(四) LAG、LEAD、FIRST_VALUE和LAST_VALUE 数据准备数据格式cookie4.txtcookie1,2015-04-10 10:00:02,url2cookie1,2015-04-10 ...转载 2018-08-10 09:10:20 · 175 阅读 · 0 评论 -
Hive学习之路 (十七)Hive分析窗口函数(五) GROUPING SETS、GROUPING__ID、CUBE和ROLLUP
Hive学习之路 (十七)Hive分析窗口函数(五) GROUPING SETS、GROUPING__ID、CUBE和ROLLUP 概述GROUPING SETS,GROUPING__ID,CUBE,ROLLUP这几个分析函数通常用于OLAP中,不能累加,而且需要...转载 2018-08-10 09:11:27 · 151 阅读 · 0 评论 -
Hive学习之路 (十八)Hive的Shell操作
Hive学习之路 (十八)Hive的Shell操作 一、Hive的命令行1、Hive支持的一些命令Command Descriptionquit Use quit or exit to leave the interactive shell.set key=...转载 2018-08-10 09:12:11 · 717 阅读 · 0 评论 -
Hive学习之路 (十九)Hive的数据倾斜
Hive学习之路 (十九)Hive的数据倾斜 1、什么是数据倾斜?由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点2、Hadoop 框架的特性 A、不怕数据大,怕数据倾斜 B、Jobs 数比较多的作业运行效率相对比较低,如子查询比较多 C、 ...原创 2018-08-10 09:12:49 · 279 阅读 · 0 评论 -
Hive学习之路 (二十)Hive 执行过程实例分析
Hive学习之路 (二十)Hive 执行过程实例分析 一、Hive 执行过程概述1、概述(1) Hive 将 HQL 转换成一组操作符(Operator),比如 GroupByOperator, JoinOperator 等(2)操作符 Operator 是 H...转载 2018-08-10 09:14:23 · 321 阅读 · 0 评论 -
Hive学习之路 (二十一)Hive 优化策略
Hive学习之路 (二十一)Hive 优化策略 一、Hadoop 框架计算特性1、数据量大不是问题,数据倾斜是个问题2、jobs 数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次 汇总,产生十几个 jobs,耗时很长。原因是 map red...转载 2018-08-21 10:46:45 · 135 阅读 · 0 评论 -
Hive学习之路 (二十二)Hive 常用的内置函数(补充)
hive 查看函数:show functions;desc functions 函数名1.parse_urlparse_url(url, partToExtract[, key]) - extracts a part from a URL解析URL字符串,partToExtract的...原创 2018-08-21 14:04:15 · 4559 阅读 · 0 评论 -
HIVE异常处理(一)用外连接替代子查询
HIVE:用外连接替代子查询 由于hive也支持sql,很多人会把hql跟标准sql进行比较,甚至有的时候会直接套用。hive不支持事务也不支持索引,更不支持追加写,但是对于一般的sql都是能够支持的。但是对于一些子查询确实无法支持的,例如select * fro...转载 2018-08-29 10:46:51 · 496 阅读 · 0 评论 -
HIVE异常处理(二)空值的过滤
1.nvl函数nvl(exp1,exp2)解释:第一个参数exp1如果是空值,那么exp2就是其值。举例:nvl(event.type,”)原创 2018-09-04 11:47:14 · 2711 阅读 · 0 评论 -
Hive学习之路 (二十三)Hive 行列互转(补充)
行和列的互转1)列转行 (对某列拆分,一列拆多行)使用函数:lateral view explode(split(column, ‘,’)) numeg: 如表:t_row_to_column_tmp 数据如下,对tag列进行拆分SQL代码:selectid,tag,tag_newfromt_row_to_column_tmplateral view explode(spl...原创 2018-10-18 17:24:54 · 853 阅读 · 0 评论 -
Hive数据优化(一) 基础生产环境数据优化参数
1、合并小文件hive.merge.mapfile=true;在Map-only的任务结束时合并小文件。是否开启合并 Map 小文件,对于 Hadoop 0.20 以前的版本,起一个新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。是否开启合并 Map 端小文件,当Hive输入由很多个小文件组成,...原创 2019-03-21 15:12:27 · 620 阅读 · 0 评论