![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
hive
文章平均质量分 67
Hive 是数据仓库的基础,学习大数据道路上绕不开的技术!19.9 元一顿早餐的钱,就可以带来十倍或者百倍的收益!早关注早收益!
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
笑看风云路
曾转战过大唐电信,京东等一线互联网企业,目前在一家互联网金融公司,从事开发工作。专注于分享大数据相关技术,包括Hadoop、Spark、Flink、Kafka、Hive、 HBase等,让我们在大数据技术的道路上一起努力前行,遇见更好的自己!
展开
-
用Hive SQL求出 a 列 - b 列 的绝对值距离一个给定数组中最近的那个值?
最近碰到一个有意思的需求,跟大家分享一下,如果大家有更好的解法,欢迎在评论区留言!与用户定义的函数(如explode())结合使用。UDTF为每个输入行生成零个或多个输出行。首先将UDTF应用于表的每一行,然后将生成的输出行与输入行连接起来,以形成具有提供的表别名的虚拟表。这个虚拟表会和输入的行进行join,达到连接UDTF外的select字段的目的。explode可以将一行数据转成多行,也就是将行数据转成列数据,它所接收的参数为array和map类型的数据。UDTF默认是忽略输出空的,outer。原创 2023-09-05 23:09:55 · 251 阅读 · 0 评论 -
Hive底层数据存储格式
在大数据领域,Hive是一种常用的数据仓库工具,用于管理和处理大规模数据集。Hive底层支持多种数据存储格式,这些格式对于数据存储、查询性能和压缩效率等方面有不同的优缺点。本文将介绍Hive底层的三种主要数据存储格式:文本文件格式、Parquet格式和ORC格式。总结来说,Hive底层数据存储格式的选择对于数据处理和查询性能有着重要影响。合理的选择能够显著提高数据仓库的性能和效率,进而更好地支持大规模数据处理和分析。原创 2023-08-17 23:04:34 · 1671 阅读 · 22 评论 -
成功解决DataX从Hive导出Oracle的数据乱码问题!
大数据与RDBMS之间的数据导入和导出都是企业日常数据处理中常见的一环,该环节一般称为e-t-l即。市面上可用的etl工具和框架很多,如来自于传统数仓和BI圈的, 来自于hadoop生态圈的,抑或使用计算引擎直接编写代码完成etl作业。在这里跟大家分享一次使用datax从hive导出数据到oracle的作业的时候,出现了两边数据的编码集不一致导致的乱码问题,希望对大家遇到相同的问题时有所帮忙。在数据同步、传输过程中,存在用户对于数据传输进行特殊定制化的需求场景,包括裁剪列、转换列等工作,可以借助ETL。原创 2023-08-14 13:16:24 · 749 阅读 · 22 评论 -
当 Spark 任务出现数据倾斜的问题时该如何处理呢?
最近一位数仓同学问我,当Spark任务出现数据倾斜的问题时该如何处理呢?那么今天就来讲一下遇到了数据倾斜问题时处理的方式方法。Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题。当我们通过现象,定位到数据倾斜的时候,才可以采用合适的解决方案处理数据倾斜问题。原创 2023-07-31 09:48:00 · 413 阅读 · 40 评论 -
Oracle 迁移 Hive 过程中遇到的问题总结
最近一个小伙伴在做从Oracle到Hive的业务迁移工作,在迁移过程中属实遇到了一些坑,今天就来汇总一下这些坑,避免以后大家其他业务迁移的时候再出现类似的问题,即使出现了也可以拿过来进行对照解决。在迁移业务的过程中,要了解不同系统中函数的用法,希望我遇到的坑,给大家带来一点借鉴意义!原创 2023-07-26 18:05:16 · 1530 阅读 · 31 评论 -
成功解决Impala中修改parquet表的字段类型问题
最近有个小伙伴在开发中遇到了Impala中修改Parquet表的字段类型问题,于是开启了问题解决之路。上述解决方案并不是真正的对Parquet进行修改字段类型和删除字段,只是新建了一张修改好的新表,然后把原来表的数据以动态分区的方式导入到删表重建的新表中。因为Parquet是在存储上,做了加密,二级制存储压缩,不可以修改的,包括去Hive中执行也是不行的!原创 2023-07-17 13:48:52 · 1168 阅读 · 19 评论 -
Hive 和 Oracle 中 Decode 函数的用法差异
在数仓构建过程中,需要从业务那边进行数据的迁移!数仓大多数公司都是使用Hive,而业务那边使用的是Oracle数据库居多。最近就有个小伙伴在迁移的时候碰到了问题:从报错来看,在使用Decode()函数的时候,传参有问题!既然问题来了,我们就来解决一下呗,只有不断地解决问题,才能体现出价值!在平时的数据迁移过程中,需要注意不同框架中同名函数的用法是否有差异,只有知道了这些差异,才能避免在开发过程出现重大责任事故,以及带来的经济损失!原创 2023-06-14 00:13:33 · 1316 阅读 · 23 评论 -
解决weekofyear跨年问题
前段时间,做了一个日期维度表的需求,发现 计算当年第几周 有误,发现Hive中 weekofyear 函数存在跨年问题!原创 2023-05-23 15:41:15 · 1300 阅读 · 11 评论 -
Hive 窗口函数超详细教程
在SQL开发中,有时我们可以使用聚合函数将多行数据按照规则聚集在一行,但是我们又想同时得到聚合前的数据,单纯的聚合函数是做不到的,怎么办呢?这时我们的窗口函数就闪亮登场了。窗口函数兼具分组和排序功能,又叫分析函数!主要对Hive窗口函数进行详解,剖析各种窗口函数的使用方法,并且根据窗口函数综合案例进行分析,都是工作常用、面试必问的非常经典的例子。原创 2023-05-04 15:40:57 · 965 阅读 · 16 评论 -
Hive 常用日期函数
面试官:假如让你开发一个日期维度表,你会用到哪些日期相关的函数呢?我:想一下啊。。。今天分享了Hive 中常用的日期函数的用法,在日常开发中,避免不了要和日期函数打交道,因此总结出来分享给别人,也方便自己以后忘记时再次拿出来进行复习!好了,今天的分享就到这里了,博主还开通了vx公号【笑看风云路】,欢迎关注!原创 2023-04-25 00:05:54 · 317 阅读 · 2 评论 -
Hive 浅谈架构
解析器(SQL parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如 antlr;对AST进行语法分析,比如表是否存在,字段是否存在、sql语义是否有误。执行器(Executor):把逻辑执行计划转换成可以运行的物理计划。元数据包括:表名、表所属的数据库,表的拥有者,列 分区字段、表的类型。优化器(Query Optimizer):对逻辑执行计划进行优化。是否是外部表,表的数据所在目录等。通过映射关系向表中导数据 -->用户创建table -->驱动器:Driver。原创 2023-04-23 23:37:15 · 441 阅读 · 0 评论 -
Hive 与数据库的异同点
Hive在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。由于MR本身具有较高的延迟,因此在利用MR执行hive查询时,也会有较高的延迟。当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,hive的并行计算显然能体现出优势。对应的,数据库可以支持的数据规模较小。注意:Hive现在可以借助其他计算引擎,比如Spark等,会降低查询的执行延迟,但是和数据库响应相比,还是有一定差距!因此,Hive中不建议对数据的修改的,所有的数据都是在加载的时候确定好的。原创 2023-04-23 23:09:28 · 367 阅读 · 0 评论 -
Hive 运算符总结
如果a,b,c任一个为null,则结果为null。: a或者b为null,则返回null;如果a小于等于b,则返回true,反之返回false。: a或者b为null,则返回null;如果a大于等于b,则返回true,反之返回false。: a或者b为null,则返回null;如果a不等于b,则返回true,反之返回false。:a或者b为null,则返回null;:a和b都为null,返回true,如果一边为null,返回false。: 如果a不等于Null,则返回true,反之返回false。原创 2023-04-22 23:00:29 · 559 阅读 · 0 评论 -
Hive 数据导出的方式有哪几种,你了解吗?
注意:export 和 import主要用于两个Hadoop平台集群之间hive 表迁移。原创 2023-04-22 22:34:38 · 407 阅读 · 0 评论 -
Hive 函数的类型有哪些,你清楚吗?
Hive 浅谈函数。原创 2023-04-22 23:29:30 · 96 阅读 · 0 评论 -
Hive 自定义UDF函数的保姆级教程
自定义一个udf函数实现计算给定字符串的长度原创 2023-04-19 22:42:38 · 90 阅读 · 0 评论 -
Hive 数仓数据质量治理
数据质量是数据创建价值的保障基石,高质量的数据为数据统计、分析和应用提供了可信任的必要条件。数据质量管理是指在数据创建、加工、使用和迁移等过程中,通过开展数据质量定义、过程控制、监控、问题分析和整改、评估和考核等一系列管理活动,提高数据质量以满足业务要求。可按照"谁创建,谁负责;谁加工,谁负责;谁提供,谁负责"的原则界定数据质量管理责任,由数据流转环节的各责任方对管辖范围内的数据质量负责。对数据质量规则优先采取系统程序的自动化控制措施,并尽可能迁移管控点,从源头上控制数据质量。原创 2023-04-18 23:11:53 · 795 阅读 · 0 评论 -
Hive 分区表和分桶表
在《Hive 建表语句解析》文章中,建表的时候我们可以使用 PARTITIONED BY 子句和 CLUSTERED BY 子句来创建分区表和分桶表,为什么要创建分区表和分桶表呢?分区表和分桶表有什么区别呢?Hive 中分区和分桶的目的都是为了提高查询分析效率,在物理上划分数据范围,两者的区别是分桶可以在分区的基础上进行更细粒度的数据划分。好了,今天的分享就到这里了,博主还开通了vx公号【笑看风云路】,欢迎关注!原创 2023-04-18 09:54:40 · 332 阅读 · 1 评论 -
Hive 浅谈DML语法
在《Hive 浅谈DDL语法》文章中主要介绍了DDL语法,今天就来聊聊 Hive 中的DML语法。原创 2023-04-17 17:28:17 · 327 阅读 · 0 评论 -
Hive 内部表和外部表对比
在创建表的过程中,会有内部表和外部表之分,那么它们有哪些差别呢,分别的使用场景是什么呢?原创 2023-04-17 10:44:36 · 346 阅读 · 1 评论 -
Hive和Impala中substring用法差异
最近一个小伙伴,突然接到业务抛出来的一个问题,说XX表的XX字段没有数据。那赶紧去Hue上去排查一下吧,在Hive上执行没问题,但在Impala上执行确实没有数据;通常业务那边使用Impala进行查询分析数据,这个小伙伴新来的,不太了解情况,以为在Hive上跑成功了就可以了,并没有在Impala上进行验证,才有了上述问题的出现。-- 截取tradetime的前八位日期数据事情很明了了,那么问题就出在substring这个函数上了!原创 2023-04-15 00:32:50 · 363 阅读 · 0 评论 -
Hive 建表语句解析
在上篇文章《Hive 浅谈DDL语法》中我留了一个小尾巴,今天来还债了,为大家详细介绍一下Hive的建表语句。原创 2023-04-14 15:00:27 · 537 阅读 · 2 评论 -
Hive 浅谈DDL语法
Hive 不存储数据,是表到HDFS文件的映射关系。在HQL开发中,我们主要关注语法,今天就带着小伙伴们来了解一下每个 DDL 语句的语义。原创 2023-04-13 10:51:37 · 286 阅读 · 0 评论 -
Hive 有哪些地方可以进行压缩设置呢?
在Hive作业执行过程中,job执行速度更多的是局限于I/O,而不是受制于CPU。如果是这样,通过文件压缩可以提高作业性能。然而,如果作业的执行速度受限于CPU的性能,那么压缩文件可能就不合适,因为文件的压缩和解压会比较耗时。当然确定适合集群最优压缩方式可以通过实验测试,然后衡量结果。原创 2023-04-11 16:07:30 · 645 阅读 · 0 评论 -
Hive 作业中Reduce个数设置多少合适呢?
在上一篇文章《Hive 作业产生的map数越多越好还是越少越好?中介绍了map个数设置多少合适的问题,那么Reduce个数设置多少合适呢?今天就给小伙伴们聊一下Reduce个数设置方法以及设置多少合适的原则!reduce个数并不是越多越好,也不是越少越好!导致过多的启动和初始化操作,消耗时间和资源有多少个reduce,就会产生多少个输出文件,如果生成了很多小文件并且作为下一个job的输入,则会出现小文件过多问题。会导致任务执行效率低下,增加耗时和资源!原创 2023-04-11 10:21:39 · 449 阅读 · 0 评论 -
Hive 作业产生的map数越多越好还是越少越好?
通常情况下,作业会通过input目录产生一个或多个任务。input的文件总个数input的文件大小集群设置的文件块大小在Hive中,map个数并不是越多越好,也不是越少越少越好,而是根据不同的使用场景来调整map个数,从而来提高整个作业的执行效率。原创 2023-04-10 19:10:39 · 483 阅读 · 0 评论 -
Hive分区表的新增字段数据为null的问题解决方法
修改Hive分区表结构以后,元数据库中的SDS中该表对应的CD_ID会改变,但是该表历史分区下面对应的CD_ID还是原来表的CD_ID,导致无法获取新增加字段的值数据。使用cascade关键字之后,历史分区使用的元数据CD_ID也会统一修改,所以不存在通过insert overwrite覆写历史分区数据时出现新增字段为NULL的问题。注意:这种方法是预防insert overwrite覆写历史分区数据时出现新增字段为NULL的问题,等问题出现的时候就需要使用方法1来解决。原创 2023-04-07 11:05:33 · 863 阅读 · 0 评论 -
This table may be a Hive-managed ACID table, or require some other capability that Spark问题解决
既然生成的是一个acid表,那么生成一个非acid表,是不是就可以解决这个问题了呢?原创 2023-04-07 10:05:18 · 315 阅读 · 0 评论 -
Hive Explain查看执行计划
在MySQL中,我们常常使用explain这个命令来查看一些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,来了解MySQL当运行SQL语句时哪种策略预计会被优化器采用的细节。那么,在Hive中,也提供了explain命令来展示一个查询的执行计划,这个执行计划对于我们了解底层原理,hive调优,排查数据倾斜等方面,能够给我们的工作带来极大的便利,如果不懂hive中的explain,说明hive还没入门,今天就和小伙伴们一起深入学习一下!原创 2023-04-06 18:07:53 · 357 阅读 · 0 评论 -
Hive中order by,sort by,distribute by和cluster by详解
作为数据开发工程师,在平时工作中,肯定接到过产品小姐姐提的排序需求,例如在mysql数据库中,就是使用order by函数。在hive中也是有order by函数的,那么除了order by之外是否还有其他排序函数呢?今天就跟小伙伴们聊聊hive中有哪些排序函数以及使用场景!只有了解了各个排序函数的功能和使用场景,才能在开发过程中达到事半功倍的效果,提升HQL性能,节省计算资源,提质增效。原创 2023-03-31 22:12:40 · 613 阅读 · 0 评论 -
hive get_json_object解析json结果为null咋办?
最近一位开发的同学在使用get_json_object函数对json数据解析的时候,出现了结果为null的问题,问题原因是sql语法导致的,那么今天就来详细介绍一下解析json函数的用法!最后还是提醒小伙伴们,在开发过程中,一定要注意sql语法格式的书写,避免一些意想不到的结果!原创 2023-03-30 14:06:26 · 1755 阅读 · 0 评论 -
HiveSQL优化技巧总结
基于Hive的开发过程中主要涉及到的可能是SQL优化这块。减少数据量(例如分区、列剪裁)避免数据倾斜(例如加参数、Key打散)避免全表扫描(例如on添加加上分区等)减少job数(例如相同的on条件的join放在一起作为一个任务)...原创 2022-08-24 22:28:09 · 1186 阅读 · 6 评论 -
手把手教学hive on spark,还不会的小伙伴快上车了
更换Hive执行的引擎,提升执行速度!打开hive on spark 配置的正确姿势从这里开始!原创 2022-05-20 13:18:32 · 959 阅读 · 3 评论 -
Hive安装超详细教程
Hive3.1.2安装教程前言初始准备安装Hive的具体步骤1、下载hive安装包2、解压3、添加Hive核心配置,选择远程MySQL模式4、下载连接MySQL的驱动包到hive的lib目录下5、在MySQL上创建Hive的元数据存储库6、执行Hive的初始化工作7、验证初始化是否成功8、使用hive9、使用beeline...原创 2022-05-19 22:01:24 · 15302 阅读 · 7 评论