hive
文章平均质量分 77
为笔者hive实践及问题总结
扫地增
莫问,问就是无敌
展开
-
hive开启自动转化common join和map join 带来的问题
我们采用的hive版本是3.1.2属于较新版本,此版本下hive本身默认开启map join。原创 2022-09-22 18:43:49 · 1057 阅读 · 1 评论 -
hive client 登录报权限不足问题/tmp/hive on HDFS should be writable. Current permissions are: rwx------
今早同事突然说,hive在服务器登录不上去了,报权限问题。集群一直好好的怎么报权限问题呢个?笔者问了问情况,了解到原来该同事是看tmp目录下存储的较多的数据觉得浪费空间所以清理了/tmp。为了帮助新同事萌了解问题提供解决思路,首先这个问题比较简单,添加权限就可以,明白tmp下目录信息,特此记录。............原创 2022-07-18 11:25:58 · 1166 阅读 · 1 评论 -
记一次hive查询报错解决 No enum constant org.apache.parquet.hadoop.metadata.CompressionCodecName.LZOP
在正常开发中建表进行数据插入测试,突然报错报错如下。原创 2022-07-13 18:51:06 · 1307 阅读 · 1 评论 -
CDH hive建表注释中文乱码问题解决
1. 问题描述笔者在入职新公司后,由于现司大数据起步较晚,数仓还在初级建设阶段,集群使用CDH 5.10.0搭建比较古老,在筹建数仓是发现hive本身不支持中文注释,出现乱码。show create table equipment;CREATE EXTERNAL TABLE `equipment`( `id` bigint COMMENT '????', `customer_id` bigint COMMENT '??id', `eq_id` bigint COMMENT '设备id'原创 2021-10-08 11:10:18 · 1073 阅读 · 1 评论 -
HBase实践 —— hive-hbase交互集成实践总结
hive和hbase那些版本是相互兼容的官网说,hive0.90与hbase0.92是兼容的,早期的hive版本与hbase0. 890.0兼容;hive1.x与hbase0.98.x或则更低版本是兼容的。hive2.x与hbase1.x及比hbase1.x更高版本兼容;由于笔者在实践中使用的是hbase1.x与hive1.x。如果想hbase1.x与hive1.x整合,需要编译hive-hbase-handler代码。交互配置:1、配置hive、hbase环境变量,已有不在配#配置原创 2021-06-08 14:46:48 · 321 阅读 · 1 评论 -
HiveSql&SparkSql —— 使用left semi join做in、exists类型子查询优化
LEFT SEMI JOIN(左半连接)介绍SEMI JOIN (即等价于LEFT SEMI JOIN)最主要的使用场景就是解决EXISTS IN。LEFT SEMI JOIN(左半连接)是 IN/EXISTS 子查询的一种更高效的实现。LEFT SEMI JOIN虽然含有LEFT,但其实现效果等价于INNER JOIN,但是JOIN结果只取原左表中的列。优化实例实例表准备:CREATE TABLE test.user1( `id` bigint)ROW FORMAT DELIMITED原创 2021-06-07 14:25:37 · 2346 阅读 · 1 评论 -
DataSkew —— 数据倾斜问题解析及解决方案实践总结小记
文章目录什么是数据倾斜数据倾斜的现象Hadoop中的数据倾斜Spark中的数据倾斜Hive中的数据倾斜数据倾斜产生的原因Hive数仓为何会出现DateSkewSpark为何会出现DateSkew数据倾斜的原因:数据分区的策略:定位数据倾斜问题查看数据倾斜的key的分布情况:数据倾斜产生的原理产生数据倾斜的操作不同情形倾斜数据处理方案Hql和SparkSql中处理Join小表join大表大表join大表skewjoin数据类型不匹配关联主键含有大量空key关联主键中少部分key的数据量巨大Join驱动表选取和原创 2021-06-05 12:56:31 · 1172 阅读 · 3 评论 -
HiveSql--基本运算符实战及注意点总结
文章目录关系运算1、等值比较: =2、不等值比较: <>3、小于比较: <4、小于等于比较: <=5、大于比较: >6、大于等于比较: >=7、空值判断: IS NULL8、非空判断: IS NOT NULL9、LIKE比较: LIKE10、JAVA的LIKE操作: RLIKE11、REGEXP操作: REGEXP数学运算:1、加法操作: +2、减法操作: -3、乘法操作: *4、除法操作: /5、取余操作: %6、位与操作: &7、位或操作: |8、位异或操作:原创 2021-05-29 11:24:13 · 1511 阅读 · 1 评论 -
HiveSql&SparkSql—COUNT(DISTINCT ) OVER (PARTITION BY )报错解决方案
背景:笔者在为公司搭建学生知识点画像时遇到了这种场景,在使用Spark DataFrame开发时,发现count(distinct user_id) over(partition by knowledge_id order by exam_time desc)时报错。如下:select count(distinct user_id) over(partition by knowledge_id order by exam_time desc)from exam_knowledge_detail原创 2021-05-27 18:37:34 · 5291 阅读 · 10 评论 -
hive sql——窗口函数使用实战小结
hive推出的窗口函数功能是对hive sql的功能增强,确实目前用于离线数据分析逻辑日趋复杂,很多场景都需要用到。用于实现分组内所有和连续累积的统计。一、什么是窗口函数1、窗口函数指定了函数工作的数据窗口大小(当前行的上下多少行),这个数据窗口大小可能会随着行的变化而变化。2、窗口函数对于每个组返回多行,组内每一行对应返回一行值。二、窗口函数介绍(一)、聚合函数: 1.sum(col) over() : 分组对col累计求和,over() 中的语法如下 2.count(col) ov.原创 2021-01-12 18:47:18 · 843 阅读 · 1 评论 -
HiveSql&SparkSql —— 自定义UDF、UDAF、UDTF函数实战总结
简介:做数仓的小伙伴应该深有体会,我们在做复杂业务时经常遇到一些比较复杂的逻辑或者复杂的数据结构,它们无法使用hive或者spark天然提供的函数进行解析,在这个时候我们就会想到如果可以自定义一个像hive、spark自身提供的函数对数据对处理那就方便多了,为此hive和spark使用UDF、UDAF、UDTF几种接口,供我们自定义函数解决此类问题,下面笔者以自身实践为基础对UDF、UDAF、UDTF函数进行简单的介绍。使用场景我们先来看下它们各自的定义:UDF(User-Defined-F原创 2021-05-24 18:57:55 · 1946 阅读 · 11 评论 -
hive中如何将13位bigint类型的时间戳的转化为毫秒标准时间格式
首先,我们先了解13位时间戳,13位的时间戳其实数据的时间单位就是ms。基于此我们来分析问题原因和实现方式。要点:13位时间戳因为时间单位为毫秒所以我们可以很容易知道转化成标准毫秒时间格式毫秒部分必然与13位时间戳一致。举个例子方便大家理解。bigint(13):1571709884123毫秒时间标准格式:2019-10-22 10:22:44.123解决方案:首选方案:那么就此我们开始分析我们该如何实现,首先容易想到的就是hive中默认的转换函数FROM_UNIXTIME(unix原创 2021-05-20 15:07:57 · 7098 阅读 · 12 评论 -
Hive SQL使用Skewed方式建表解决数据倾斜小记
Skewed Table可以提高有一个或多个列有倾斜值的表的性能,通过指定经常出现的值(严重倾斜),hive将会在元数据中记录这些倾斜的列名和值,在join时能够进行优化。若是指定了STORED AS DIRECTORIES,也就是使用列表桶(ListBucketing),hive会对倾斜的值建立子目录,查询会更加得到优化。创建表是指定为 Skewed Table,如下例子,STORED AS DIRECTORIES是可选择的,它指定了使用列表桶(ListBucketing)。单倾斜列建表CREA.原创 2021-05-18 15:10:31 · 1213 阅读 · 9 评论 -
SQL DDL—— drop、truncate和delete(mysql)的区别理解小记
需要注意的是Hive是数据仓库,存储格式是文本,不支持行级别的更新删除和插入。所以在Hive中,只有drop table、truncate操作,没有delete操作。Drop语法及注意点:DROP TABLE [IF EXISTS] table_name [PURGE];DROP TABLE命令将会删除这个表的元数据和数据,如果是内部表且配置了Trash并且PURGE没有指定数据将会被移动到当前目录的.Trash下,元数据会直接被删除,若是外部表,数据依然在文件系统中,只是删除元数据。若是使.原创 2021-05-18 10:57:55 · 722 阅读 · 1 评论 -
hive建表详注小记(备忘)
注:hive其他语法在hive官网有说明,建议初学者,去官网学习一手的资料,官网默认情况下,Hive会创建内部表,其中文件,元数据和统计信息由内部Hive进程管理。说到建表首先我们需要了解内部表和外部表,这个点比较重要。hive内部表和外部表1、语法从语法上看,内部表和外部表的区别就是建表时外部表使用EXTERNAL修饰,而内部表没有。2、区别:我们下面从数据管理、数据存储、表删除、元数据更新这四个方面阐述两种模式建表的区别:1、数据管理:内部表数据由Hive自身管理,外部表数据由H.原创 2021-05-12 18:42:16 · 2803 阅读 · 7 评论 -
hivesql -- array_contains()函数使用
某个字段条件过多,查询条件失效select * from login where dt='20130101' and (ver !='3.1' or ver !='3.2' or ver != '4.0' or ver != '5.2');select * from login where dt='20130101' and (ver !='3.1' and ver !='3.2'原创 2021-04-15 19:11:50 · 40296 阅读 · 4 评论