当前位置: 首页 > news >正文

Hive三大连接操作全解析

Hive中的连接操作详解

1. 全连接(FULL JOIN)
  • 作用:返回两个表的所有记录,匹配失败时用NULL填充缺失部分
  • 语法
    SELECT *
    FROM table1 
    FULL JOIN table2 ON table1.key = table2.key
    

  • 示例
    -- 员工表(emp)和部门表(dept)的全连接
    SELECT emp.name, dept.dept_name
    FROM emp 
    FULL JOIN dept ON emp.dept_id = dept.id
    

  • 结果特征
    • 包含所有员工(即使无部门)
    • 包含所有部门(即使无员工)
    • 缺失值显示为NULL

2. 半连接(SEMI JOIN)
  • 作用:仅返回左表中存在于右表的记录(不返回右表字段)
  • 语法
    SELECT *
    FROM table1 
    LEFT SEMI JOIN table2 ON table1.key = table2.key
    

  • 示例
    -- 获取有订单的客户
    SELECT cust.*
    FROM customers cust 
    LEFT SEMI JOIN orders ON cust.id = orders.cust_id
    

  • 结果特征
    • 只返回左表字段
    • 相当于WHERE EXISTS子查询
    • 右表字段不可访问

3. 交叉连接(CROSS JOIN)
  • 作用:生成两个表的笛卡尔积(所有行组合)
  • 语法
    SELECT *
    FROM table1 
    CROSS JOIN table2
    

  • 示例
    -- 生成所有产品与地区的组合
    SELECT products.name, regions.region_name
    FROM products 
    CROSS JOIN regions
    

  • 结果特征
    • 结果行数 = $m \times n$($m$为左表行数,$n$为右表行数)
    • 无连接条件
    • 大数据集需谨慎使用(易产生海量数据)

核心对比

连接类型匹配逻辑结果特征典型应用场景
FULL JOIN保留所有记录+NULL填充包含两表全部数据数据完整性分析
SEMI JOIN仅保留左表匹配记录只返回左表字段存在性验证(如过滤)
CROSS JOIN所有行组合(笛卡尔积)$m \times n$ 行结果组合生成(如测试用例构建)

性能提示

  • 优先使用SEMI JOIN替代IN/EXISTS子查询(Hive优化更好)
  • CROSS JOIN需严格控制数据量(可添加WHERE 1=0快速终止)
  • 大表连接建议开启MapJoin优化:SET hive.auto.convert.join=true;
http://www.dtcms.com/a/564674.html

相关文章:

  • css3新增过渡
  • Hive 中的 COALESCE 函数作用
  • 网站建设内部下单流程图赣州的免费网站建设
  • 广东顺德网站建设instagram wordpress
  • Linux连接Doris:MySQL与Beeline指南
  • 【金仓数据库】ksql 指南(四) —— 创建与管理表(KingbaseES 数据存储核心)
  • Swift项目生成Framework流程以及与OC的区别
  • C++多线程同步与互斥
  • Python Jupyter Notebook 完全指南:从入门到精通
  • 站点查询wordpress 外贸网站
  • CSP集训错题集 第八周 主题:基础图论
  • 基于C语言 HTTP 服务器客户端的实验
  • 如何利用 Jupyter 从浏览器访问远程服务器
  • C语言基础知识点简单案例分享之二——C语言全知识点速查宝典
  • 怎么找网站局域网电脑做网站服务器
  • 一男一女做那个的动漫视频网站网站怎样推广 优帮云
  • hive常用命令
  • AWS + 飞天CMS:高性能内容站的云端搭建方案
  • 800G光模块:驱动AI与云计算高速互联的核心引擎
  • Python每日一练---第三天:删除有序数组中的重复项
  • U-Net 的输入与输出:通用场景与扩散模型场景解析
  • 李宏毅机器学习笔记39
  • 【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
  • PPT+配音生成带旁白的PPT演示视频
  • abp vnext cli无法正常使用,卡在 Checking extensions..,cli修改abp版本及.net版本
  • 萤石摄像头使用NAS作为存储
  • 2025江西省职业院校技能大赛(中职组)移动应用与开发竞赛样题
  • 建站公司哪家好在哪里推广比较好
  • 在 iOS 18 的照片应用,如何批量隐藏截屏?
  • OK3568 Android11 实现 App 独占隔离 CPU 核心完整指