![](https://img-blog.csdnimg.cn/1cc74165878844c484179fadf1ce8679.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
HIVE
文章平均质量分 59
HIVE的介绍,内部原理,及简单使用
飞天小老头
这个作者很懒,什么都没留下…
展开
-
hive中substr和regexp_replace的使用
substr从指定位开始截取字符串SELECT SUBSTR('2022-05-04',2) #这里以年月日作为测试数据,SUBSTR(column, start_index),这种用法会从start_index位置开始截取字符串到最后一位,这里要注意,索引是从1开始而不是0从指定位置开始截取,截取到指定的最后一位SELECT SUBSTR('2022-05-04',1,4)#SUBSTR(column, start_index, length),这里start_index还是截.原创 2022-05-04 09:56:43 · 1741 阅读 · 1 评论 -
HIVE的metastore和hiveserver2服务的启动和停止脚本
启动脚本在hive的bin目录下执行vi hive-start.sh命令或者通过touch hive-start.sh创建一个文件都可以,在脚本内添加如下内容#!/bin/bash# 启动hive的metastore服务hive --service metastore > /dev/null 2>&1 &echo -n "Starting metastore servece,please wait"mt=1while [ $mt -ne 0 ] do .原创 2022-02-28 17:30:32 · 3784 阅读 · 0 评论 -
在Mysql中获取hive表的元数据信息
获取hive的元数据信息可以通过hive的元数据库(通常为Msyql)获得,通过sql的关联即可。 具体内容如下sql所示,这里就不作详解了。SELECT t2.`NAME` `database_name`, -- 库名 t2.`DESC` `database_comment`, -- 库注释 t1.`TBL_NAME` `table_name`, -- 表名 t3.`PARAM_VALUE` `database_commet`, -- 表注释 FROM_UNIXTIME(t原创 2021-08-15 22:38:36 · 1412 阅读 · 0 评论 -
hive中文注释乱码
hive中文注释乱码问题 hive建表的过程经常会碰到字段的中文注释乱码的问题,下面就介绍下如何处理此类问题。1. 修改元数据的编码修改表字段注解和表注解-- 修改表字段注解编码ALTER TABLE columns_v2 MODIFY COLUMN COMMENT VARCHAR(256) CHARACTER SET utf8;-- 修改表名注解编码ALTER TABLE table_params MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHAR原创 2021-08-10 21:42:27 · 392 阅读 · 1 评论 -
解决hive中数据倾斜问题
平常工作中我们在使用hive处理业务问题的时候不可避免的会遇到数据倾斜的问题,数据倾斜的本质就是key的分布不均匀,导致分到不同reduce上的数据量差距或大或小,当数据量差距过大的时候就造成了数据倾斜,使得某一个reduce的负担过大,导致任务迟迟不能完成。主要原因1.key分布不均匀。2. map端数据倾斜,输入文件过多,并且大小不统一。3. reduce端数据倾斜,分区器存在问题。4.业务数据本身特征。解决方案1.调节hive中的参数如下所示:set hive.map.aggr=原创 2021-01-27 01:30:27 · 773 阅读 · 0 评论 -
hive中控制窗口范围rows between的使用
1.rows between的作用 在使用hsql完成一些业务需求的时候,我们经常会用到窗口函数,某些场景下会涉及到需要控制窗口函数的范围来满足业务需求,这个时候就需要用到rowsbetween了,使用rows between可以根据自己的需求任意的控制窗口函数的范围。2.rows between的使用首先我们有一张如下的数据表sidday_timesale_volume1012020-01-03101022020-01-04201032020-原创 2021-01-20 14:56:41 · 4928 阅读 · 2 评论 -
hive中order by、sort by、distribute by、cluster by的区别详解
1. order by 在hive中order by是进行全局排序的,这也就是说会最后会在一个reduce中进行统一的排序,所以说使用order by进行全局排序尽量不要对数据量很大 的表进行全局排序,这样效率会很低,会对进行排序的那一个reduce所在的节点造成内存压力。使用order by会受到如下属性的约束:set hive.mapred.mode=nonstrict;set hive.mapred.mode=strict; 默认是在nonstrict模式下的,如果在stric原创 2021-01-13 00:05:01 · 985 阅读 · 0 评论 -
hive中order by详解
order by的使用及讲解1. order by的使用大家都清楚在hive中order by是用来排序的,使用语法如下SELECT * FROM tab_name ORDER BY column_name;在使用order by的时候默认是按照升序进行排序的(ASC),字符串类型就是按照字典顺序进行排序的,数值类型就是按照数值的大小进行排序的具体列子如下:表中数据:goodsgtypeprice口香糖食品10薯片食品20巧克力食品30蛋糕原创 2021-01-10 01:59:43 · 12739 阅读 · 2 评论 -
hive获取系统当前时间
获取系统当前时间unix_timestamp()在hive中获取系统当前时间可以使用unix_timestamp()函数,不过这个函数获取的是bigint值如下图从上图可以看到获取到了当前系统时间,数值类型是bigint的,但是我们通常是想获取标准时间,这个时候可以和from_unixtime()函数配合使用,得到标准时间。from_unixtime(bigint n,string str)from_unixtime()函数和unix_timestamp()函数的组合使用方式如下from原创 2021-01-06 01:37:39 · 17298 阅读 · 0 评论 -
HIVE集合数据类型
集合数据类型Hive除了支持基本数据类型外,还支持Map,Array,Strcut,三种集合数据类型好处: 由于集合数据类型的存储数据比基本类型要多,在存盘上存储可以连续存储,在查询操时可以减少磁盘的IO坏处: 集合数据数据类型可能存在着数据的重复,而且有更大的导致数据不一致的风险集合数据类型的简单使用如下面的简单案例:原始数据:建表:create table tb_teacher(name string,friends array<string>,children ma原创 2020-06-20 11:22:26 · 530 阅读 · 0 评论 -
HIVE数据导入和导出方式
数据导入1. 将数据直接导入上传到表对应HDFS文件夹中这个方法相对比较简单粗暴,通过hdfs的shell客户端命令,将数据文件直接上传到hdfs文件系统中就可以了.shell客户端命令:hdfs dfs /本地路径/所要上传的文件 /hdfs文件系统中的路径2. 使用load命令1. 使用命令将本地数据导入到表中语法:load data local inpath /path/filename.txt into table tbName;例子:2. 使用命令导入HDFS中的数据到原创 2020-06-18 21:51:22 · 970 阅读 · 0 评论