优化 HIVE 查询中的连接:c

     2023-04-14     59

关键词:

【中文标题】优化 HIVE 查询中的连接:c【英文标题】:Optimize join in HIVE query: c 【发布时间】:2014-10-16 12:34:12 【问题描述】:

我想知道哪一个是优化连接这三个可能候选者中的两个表的 HIVE (0.12) 查询的最佳方法(并且可能理解为什么):

SELECT * FROM a join b ON (a.id = b.id) WHERE b.dt = "2014-09-01";

SELECT * FROM a JOIN b ON (a.id = b.id AND b.dt = "2014-09-01") ;

SELECT * FROM a JOIN ( 
     SELECT * FROM b where dt = "2014-09-01" ) c 
ON a.id = c.id ;

我无法控制表的存储和分区方式,所以我的问题更多的是关于 一般最佳实践比特定案例。我确定 a.id = b.id 只有在 b.dt = '2014-09-01' 时才有可能,所以我想限制可以连接的数据以提高速度(b 是一个巨大的表) .

阅读 HIVE 文档我了解到,通常最好 a 是最小的表,b 是(非常)大的表;但是我无法理解 上面显示的不同查询会根据性能表现。

如果有其他方法我可以使用,我也想知道。

【问题讨论】:

一张桌子有多大,它适合记忆吗? 我会说我正在使用的这个特殊的可以,一般不,他们不会。 【参考方案1】:

我发现这三者在 #of MR-jobs 、使用的映射器和解释计划方面都是相同的。 通过注意表 a 足够小,使用了 map-side join 优化。 通过在表 b 上切换过滤器的位置对用于从表 b 检索数据的映射器数量没有影响。即使表 b 在子查询中也是如此。

如果表 b 恰好在 col dt 上分区,则唯一的优化是分区修剪,我认为与全表扫描相比,这是减少映射器数量的唯一因素。

【讨论】:

比较 Hive 查询与不同连接顺序的效率

】比较Hive查询与不同连接顺序的效率【英文标题】:ComparingefficiencyofHivequerieswithdifferentjoinorders【发布时间】:2020-12-1015:29:05【问题描述】:考虑Hive中的以下两个查询:SELECT*FROMAINNERJOINBINNERJOINCONA.COL=B.COLANDA.COL=C.COL和SELECT*FROMAINNE... 查看详情

hive大表和小表mapjoin关联查询优化

大表和小表关联查询可以采用mapjoin优化查询速度。那什么是mapjoin呢?理解MapJoin之前先介绍另一种Join方式,CommonJoin。我们知道Hive编写SQL语句,Hive会将SQL解析成MapReduce任务。对于一个简单的关联查询,CommonJoin任务设计Map阶段和R... 查看详情

presto统计信息

参考技术APresto支持基于统计的查询优化。为了使查询能够利用这些优化,Presto必须具有该查询中表的统计信息。表统计信息通过连接器提供给查询计划者。当前,唯一支持统计信息的连接器是Hive连接器。统计信息通过tablelayout... 查看详情

使用 UNION ALL 和 RANK 优化 Hive 查询

】使用UNIONALL和RANK优化Hive查询【英文标题】:OptimizingHiveQuerywithUNIONALLandRANKwithorder【发布时间】:2019-04-0412:42:07【问题描述】:当前情景:我有这个查询,它对两组数据进行联合,然后根据排名选择字段但是根据我的分析,整个... 查看详情

优化配置单元中的多个连接

】优化配置单元中的多个连接【英文标题】:Optimisingmultiplejoininhive【发布时间】:2018-06-0411:12:39【问题描述】:我有4个四个Hive表:A-1.2billionrecordsand250GBB-4billionrecordsand1TBC-30billionrecordsand2TBD-2billionrecordsand100GB所有表都没有分区A... 查看详情

hive的hive体系结构

...为外部表等),表的数据所在目录等。解释器、编译器、优化器、执行器解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用... 查看详情

hive查询优化总结

一、join优化Join查找操作的基本原则:应该将条目少的表/子查询放在 Join 操作符的左边。原因是在 Join 操作的 Reduce 阶段,位于 Join 操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效... 查看详情

hive性能优化之表设计优化(代码片段)

目录1分区表1.1Hive查询基本原理1.2普通表结构问题1.3分区表设计思想1.4分区表测试2分桶表2.1Hive中Join的问题2.2分桶表设计思想2.3分桶表测试3索引设计3.1Hive中的索引3.2索引的原理及使用3.3索引的问题与应用1分区表1.1Hive查询基本原... 查看详情

优化连接查询中的 order by 子句

】优化连接查询中的orderby子句【英文标题】:Optimizingorderbyclauseinjoinquery【发布时间】:2013-10-0517:18:23【问题描述】:我需要帮助来优化此查询。SELECTmessages.*FROMmessagesINNERJOINsubscriptionONsubscription.entity_id=messages.entity_idWHEREsubscription... 查看详情

hive优化的十大方法

...此也出现了presto、spark-sql等替代品。这里重点讲解hive的优化方式,例如一.表连接优化二.用insertinto替换unionall如果unionall的部分个数大于2,或者每个union部分数据量大,应该拆成多个insertinto语句,实际测试过程中,执行时间能提... 查看详情

Hive 查询优化

】Hive查询优化【英文标题】:Hivequeryoptimization【发布时间】:2019-10-0306:45:15【问题描述】:我的要求是获取拥有超过1个电子邮件ID和type=1的学生的ID和姓名。我正在使用类似的查询selectdistinctb.id,b.name,b.email,b.type,a.cntfrom(selectid,cou... 查看详情

Hive 分区表查询优化

】Hive分区表查询优化【英文标题】:Hivepartitiontablequeryoptimisation【发布时间】:2020-06-0222:01:55【问题描述】:我是hive和hadoop生态系统的新手。根据我对Hive基础知识的了解,您可以根据某些属性在hive表上创建分区。如果查询中提... 查看详情

OutOfMemory 异常 - HDInsight LLAP 群集中的 Hive 多联接查询

】OutOfMemory异常-HDInsightLLAP群集中的Hive多联接查询【英文标题】:OutOfMemoryException-HivemultijoinqueryinHDInsightLLAPcluster【发布时间】:2018-11-3013:41:14【问题描述】:我正在AzureHDInsightLLAPHive集群中尝试Hive多连接查询。在运行大约20分钟... 查看详情

使用 Hive 分区表优化连接性能

】使用Hive分区表优化连接性能【英文标题】:OptimizethejoinperformancewithHivepartitiontable【发布时间】:2019-07-0816:43:56【问题描述】:我有一个Hiveorctest_dev_db.TransactionUpdateTable表,其中包含一些示例数据,其中包含需要更新到主表(test_... 查看详情

如何优化 MySQL 中的多个左连接?

】如何优化MySQL中的多个左连接?【英文标题】:HowcanIdooptimizemultipleleftjoinsinMySQL?【发布时间】:2012-12-1012:09:39【问题描述】:你能帮我完成这个查询吗?我有一个日志查询,它按天(表:calendar,包括没有行的日子。以下查询... 查看详情

hive里的优化和高级功能

...析效率可能会很低。Hive有针对性地对不同的查询进行了优化。在Hive里可以通过修改配置的方式进行优化。  以下,几种方式调优的属性。 1、列裁剪  在通过Hive读取数据的时候,并不是所有的需求都要获取表内的所有... 查看详情

hive性能优化(新手重新标注版)

...有Map,Spill,Shuffle,Sort,Reduce等多个阶段,所以针对Hive查询的优化可以大致分为针对MR中单个步骤的优化(其中又会有细分),针对MR全局的优化,和针对整个查询(多MRJob)的优化,下文会分别阐述。在开始之前, 查看详情

Hive Optimizer 在优化视图查询时是不是考虑视图定义?

】HiveOptimizer在优化视图查询时是不是考虑视图定义?【英文标题】:DoesHiveOptimizerconsiderviewdefinitionwhileoptimizingqueriesonviews?HiveOptimizer在优化视图查询时是否考虑视图定义?【发布时间】:2017-07-0607:40:42【问题描述】:我有这个架... 查看详情