优化实战篇—自关联的优化

自关联的优化

根据定义,自关联是表自身的关联。自连接通常仅在给定数据中存在父子关系时使用。在本文中,我们将检查如何在Hive中编写自连接查询,它的性能问题以及如何优化它。开始之前我们可以看一下之前关于关联的文章

Hive实战之自关联经典案例

各种join 的执行计划

从查询结果进行自关联

有个需求就是我们需要从一个查询结果上进行自关联,这里我使用WITH 语法构造了这个查询,更多关于WITH的可以看看我们之前的文章

数仓工具—Hive语法之with as和from

数仓工具—Hive语法之with扩展

WITH sub_query AS(SELECT * FROM employee_manager
)
select EMPL.EID, EMPL.NAME, MANAGER.NAME as MANAGER_NAME
from  sub_query EMPL, sub_query MANAGER
where EMPL.eid = MANAGER.mid;

其实我们可以使用临时表来替代WITH语法,这个时候可能会看到性能有所提示,常见的创建临时表的方式如下

CREATE TEMPORARY TABLE temp1(col1 string);
CREATE TEMPORARY TABLE temp2 AS Select * from table_name; 
CREATE TEMPORARY TABLE temp3 LIKE table_name;

自关联的优化

其实关于自关联的优化手段,和我们之前优化join 的差不多,我们简单看一下

  1. 避免使用自关联在大表上,如果无法避免那么参考之前我们大表的关联优化方案
  2. 创建临时表避免WITH,因为你通过WITH 创建出来的对象在多次使用时会多次执行查询
  3. 在关联之前删除不必要的数据
  4. 创建索引,因为是自关联,所以我们就只需要创建一次索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构第28节 字典树

字典树(Trie,也称前缀树)是一种用于存储字符串的树形数据结构。它将字符串中的字符作为树的边,每个节点代表一个可能的前缀。字典树非常适合处理大量字符串的搜索、插入和删除操作,尤其是在查找具有相同前缀的字符串时…

[GXYCTF2019]BabySQli

原题目描述:刚学完sqli,我才知道万能口令这么危险,还好我进行了防护,还用md5哈希了密码! 我看到是个黑盒先想着搞一份源码 我dirsearch明明扫到了.git,算了直接注入试试看 随便输入了两个东西&#xff0c…

Type-C PD芯片:引领充电技术的新纪元

随着科技的飞速发展,人们对电子设备的依赖日益加深,对充电速度、效率和安全性的要求也越来越高。在这样的背景下,Type-C PD(Power Delivery)芯片应运而生,以其高效、安全、智能的特点,成为了充电…

vscode编译环境配置-golang

1. 支持跳转 如果单测函数上方不显示run test | debug test,需要安装Code Debugger(因为以前的go Test Explorer不再被维护了) 2. 单测 指定单个用例测试 go test -v run TestXXXdlv 调试 需要安装匹配的go版本和delve版本(如…

Qt易错总结

一、编译相关 建议用qmake !!!,cmake坑点太多!!! 1.自定义控件识别不了 cmakelist加上 include_directories(${PROJECT_SOURCE_DIR}/你自定义控件的相对路径) 2.添加模块(以QCharts为例) find_package(QT NAMES Q…

Linux多线程编程-生产者与消费者模型详解与实现(C语言)

1.什么是生成者与消费者模型 生产者-消费者模型是并发编程中的经典问题,描述了多个线程(或进程)如何安全、有效地共享有限的缓冲区资源。在这个模型中,有两种角色: 生产者(Producer)&#xff1…

<数据集>光伏板缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:2400张 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注类别数:4 标注类别名称:[Crack,Grid,Spot] 序号类别名称图片数框数1Crack8688922Grid8248843S…

研究生发表期刊/会议必看,一文看懂A/B/C类和顶刊

主要看:中国计算机学会(CCF)推荐国际学术期刊 里面的划分等级 等级为:A类(最难)>B类(中等难度)>C类(难度一般) 本人这边计划:最低发C刊&a…

css-grid布局(栅格布局)

css新世界-auto-fit grid 一个比flex更强大的布局,适合做整体布局 grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); auto-fit的话有strech效果gap 不仅可以用于grid 也可用flex. 在grid-template-areas表示这个位置空着grid area 的 [a b]命名可重复命名 表示的…

大模型分布式训练并行技术

随着深度学习的发展,模型规模逐渐增大,数据量和计算需求也呈爆炸式增长。在单个计算设备上完成大模型的训练变得不切实际,因此,分布式训练成为了解决这一问题的关键。在分布式训练中,数据并行是一种非常有效的策略&…

【JavaScript脚本宇宙】JavaScript图表库大比拼:从实时数据到时间表,一网打尽

数据可视化利器:探索六款流行JavaScript图表库 前言 在Web开发中,数据可视化是一个非常重要的领域。随着JavaScript图表库的不断涌现,开发人员可以更轻松地创建各种交互式和实时的图表。本文将介绍几种流行的JavaScript图表库,包…

双向收发的信号应该在哪进行串联端接?分享几个实用设计方法!

高速先生成员--黄刚 经过上次高速先生的描述,相信大家已经掌握了串联端接的秘诀了,简单来说,那就是第一步:先看看芯片的驱动内阻,第二步:再用加起来50欧姆匹配的方法来选择适合的串阻值,第三步&…

【C语言报错已解决】格式化字符串漏洞(Format String Vulnerability)

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言:一、问题描述:1.1 报错示例:1.2 报错分析:1.3 解决思路&#xff…

HEROIC FANTASY WERE CREATURES PACK VOL 2 (幻想生物)

这个包收集了5种英雄幻想生物:狼人,狼人,狼人山羊,狼人鲨鱼和狼人蜘蛛。 狼人:27.5 Ktris Max//101个骨骼//4种材质//最多4096*4096个纹理//40个动画(11个是根运动变体) 狼人:15.83 Ktris//66个骨骼//3种材质//最多4096*4096个纹理//35个动画(9个是根运动变体) wereg…

Centos 使用nfs配置共享目录使docker集群所有容器日志统一主机访问

Centos 使用nfs配置共享目录,使docker集群所有容器日志统一存放在主机一个共享目录下,供开发人员访问查看 准备两台或以上Centos服务器 192.168.0.1 nfs服务器 192.168.0.2 nfs客户端 以root用户登录192.168.0.1服务器,执行以下操作 注意先…

excel根据数据批量创建并重命名工作表

需求 根据一列数据,批量创建并重命名工作表 做法 1. 右键该sheet,选择查看代码 2. 输入VBA代码 正向创建 Sub create_sheets_by_col()Dim num% 定义为integer*num Application.WorksheetFunction.CountA(Sheet1.Range("A:A")) num是非空…

木舟0基础学习Java的第十八天(IO流,字节流,字符流,缓冲)

IO流正常使用流程:1.抛异常 2.资源读写 3.关闭资源(从后往前关) 字节流:(拷贝推荐使用) 开发中一般不会抛出异常 用try{}catch(){} 也不推荐字节流读中文 FileInputStream:读 FileInputStream fsnew FileInputStream("e:/b.txt");//11111…

设计模式使用场景实现示例及优缺点(行为型模式——策略模式)

策略模式(Strategy Pattern) 策略模式(Strategy Pattern)是一种行为设计模式,它能够在运行时选择最适合的算法或行为,同时能够将算法族封装成独立的类,并使它们之间可以相互替换。这种模式是通…

类形断言和和类型推导的区别是什么?

类型断言(Type Assertion)和类型推导(Type Inference)在TypeScript中的区别 如下: 定义: 类型断言:是程序员明确指定一个值的类型,即允许变量从一种类型更改为另一种类型。它不会进行…

接着探索Linux的世界 -- 基本指令(文件查看、时间相关、打包压缩等等)

话不多说,直接进入主题 一、cat指令 -- 查看目标文件的内容 语法:cat [选项][文件] 功能: 查看目标文件的内容 -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 1、查看目标文件的内容 2、 -b 对非空输出行编号 3、-n 对…