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

自关联的优化

根据定义,自关联是表自身的关联。自连接通常仅在给定数据中存在父子关系时使用。在本文中,我们将检查如何在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. 创建索引,因为是自关联,所以我们就只需要创建一次索引

相关推荐

  1. 优化实战关联优化

    2024-07-14 11:18:03       18 阅读
  2. 关于学习方法优化

    2024-07-14 11:18:03       25 阅读
  3. ElasticSearch之优化

    2024-07-14 11:18:03       38 阅读
  4. Redis实现登录优化

    2024-07-14 11:18:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 11:18:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 11:18:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 11:18:03       57 阅读
  4. Python语言-面向对象

    2024-07-14 11:18:03       68 阅读

热门阅读

  1. todolist-原生js(ES6)

    2024-07-14 11:18:03       21 阅读
  2. 日常学习--docker命令梳理--20240714

    2024-07-14 11:18:03       24 阅读
  3. iOS热门面试题(四)

    2024-07-14 11:18:03       25 阅读
  4. 56. 合并区间

    2024-07-14 11:18:03       22 阅读
  5. 微服务架构,通信协议,Web服务器和kafka

    2024-07-14 11:18:03       18 阅读
  6. 【学习笔记】Redis学习笔记——第9章 数据库

    2024-07-14 11:18:03       24 阅读
  7. 基于gunicorn+flask+docker模型高并发部署

    2024-07-14 11:18:03       22 阅读
  8. 求助大佬——期末考试评分标准(浙大)C语言

    2024-07-14 11:18:03       26 阅读
  9. 如何解决数据分析问题:IPython与Pandas结合

    2024-07-14 11:18:03       17 阅读
  10. 【团队成长】2024-28周周报

    2024-07-14 11:18:03       23 阅读
  11. Mysql第八次作业

    2024-07-14 11:18:03       18 阅读
  12. SQLite DISTINCT 关键字

    2024-07-14 11:18:03       26 阅读
  13. 显式等待、隐式等待、强制等待

    2024-07-14 11:18:03       25 阅读
  14. HttpUtil工具

    2024-07-14 11:18:03       24 阅读
  15. 中文科技核心论文

    2024-07-14 11:18:03       23 阅读