
Hive
文章平均质量分 84
goTsHgo
这个作者很懒,什么都没留下…
展开
-
Hive 的 Hook 机制 完全解析
Hive 的 Hook 是一种基于事件驱动、动态加载的扩展机制,允许开发者在查询生命周期的各个阶段注入自定义逻辑。其设计简单却功能强大,适用于日志记录、权限验证、性能监控、数据质量检查、自动化等多种场景。通过。原创 2024-12-05 12:19:13 · 1271 阅读 · 0 评论 -
Hive分区裁剪(Partition Pruning)详解
Hive分区裁剪是一种优化技术,旨在查询时只读取与条件匹配的分区,从而减少不必要的数据扫描。这种机制依赖于分区表的设计和查询优化器的工作,特别是在处理大规模数据时,分区裁剪可以显著提高查询性能。通过合理的分区设计和分区裁剪配置,可以有效减少数据扫描量,提高查询效率。个按天分区(每分区1GB),静态分区裁剪处理一天的数据仅需扫描1GB,而未裁剪则需要扫描365GB。指在执行查询时,根据查询条件自动过滤掉无关的分区,只扫描符合条件的数据分区。对应的分区,而不扫描其他日期的分区。分区的,Hive只读取。原创 2024-12-04 17:06:01 · 1178 阅读 · 0 评论 -
区分 Hive on Spark 和 Spark on Hive
Hive on Spark 是指使用 Spark 作为 Hive 的查询执行引擎。Spark on Hive 是 Spark 的一个集成模式,在 Spark 应用中可以直接访问 Hive 的元数据和存储数据。它使得 Spark 作业能够查询和操作 Hive 中的数据,主要用来结合 Spark 的高性能计算能力和 Hive 的数据仓库管理能力。用户通过 Spark 的 SQL API 编写查询,调用 Hive 的表或元数据。最终生成 Spark 的 RDD 作业计划,提交给 Spark 执行。原创 2024-11-29 14:17:24 · 1215 阅读 · 0 评论 -
Hive 的窗口函数 详解
逻辑层是 Hive 中的窗口函数,它依赖分区和排序规则来生成每个分区中的行号。物理层:Hive 在执行时,通过MapReduce或Tez实现了分布式排序和行号分配,关键类如和负责处理窗口函数的具体逻辑。性能优化:通过合理调优 Hive 参数、增加并行度和使用高效的执行引擎如 Tez,可以显著提升的执行效率。原创 2024-09-24 14:39:23 · 1524 阅读 · 0 评论 -
Hive ROW_NUMBER() 简介
解析查询:Hive 将的 SQL 查询解析为抽象语法树(AST)。生成执行计划:查询计划中包含窗口函数的计算,分布在不同的任务和阶段。Map 阶段:数据读取并按分区分配给不同的 Reduce 任务。Reduce 阶段:数据按照指定的ORDER BY进行排序,并生成行号。返回结果:结果集带有唯一的行号。原创 2024-09-24 14:32:00 · 1558 阅读 · 0 评论 -
Hive自定义函数——简单使用
UDF 是一种用户自定义的单行函数,它将输入的一行数据进行处理并返回一个结果。例如,可以将 UDF 用来执行列的转换或简单的计算。UDAF 是一种用户自定义的聚合函数,它处理多行数据,并返回一个聚合后的结果。类似于 SQL 中的SUMAVG等聚合函数。UDTF 是一种用户自定义的表生成函数,它接受一行输入,但可以返回多行甚至多列数据。它的作用类似于 SQL 中的EXPLODE,将一行数据拆分成多行。UDF:适用于列级的简单数据转换和计算,如格式化、字符串处理等。UDAF。原创 2024-09-19 17:03:43 · 1116 阅读 · 0 评论 -
拉链表简介
拉链表是一种用于处理哈希冲突的常见方法。其基本思想是,当多个键在哈希表中被映射到相同的哈希桶(bucket)时,使用一个链表来存储这些冲突的元素。这使得每个哈希桶中的元素都是链表节点,从而有效处理哈希冲突。原创 2024-09-13 14:59:07 · 555 阅读 · 0 评论 -
Hive执行 报错:FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
项目场景:HiveOnSpark环境下执行hive脚本,报错。问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); } 原因分析:..原创 2021-12-08 18:35:27 · 9495 阅读 · 18 评论 -
Hive的存储格式和压缩算法的特点和选择
HIVE 中默认的存储格式;一般使用在数据贴源层(ODS 或 STG) ,针对需要使用脚本 LOAD 加载数据到 HIVE 数仓表中的情况;需要把表里数据导出或直接可以查看等场景,作为BI供数易读性要比 ORC 高很多;数据存储时不压缩,因此磁盘的开销和数据解析开销比较大;TEXTFILE 可以结合 Gzip、Bzip2 等压缩算法使用(系统自动检查,执行查询时自动解压),但使用这种方式,HIVE 不会对数据进行切分,从而无法对数据进行并行操作;原创 2024-06-11 10:03:11 · 1418 阅读 · 0 评论 -
Hive自定义Serde,实现自定义多字符串作为分隔符
这几种方法可以帮助你将自定义的 JAR 文件添加到 Hive 的类路径中,选择合适的方法根据你的使用场景和需求。对于临时加载 JAR 文件,使用ADD JAR命令最为方便;对于长期使用,修改配置文件或者直接放置在lib目录下更为合适。col2 INT通过以上步骤,就可以在Hive中使用自定义Serde来处理自定义格式的数据。原创 2024-08-05 17:18:17 · 548 阅读 · 0 评论