explain 实战-----查看hive sql执行计划

目录

1.join/left join/full join 语句会过滤关联字段 null 的值吗?

(1)join 

(2) left join /full join

2.group by 分组语句会进行排序吗?


1.join/left join/full join 语句会过滤关联字段 null 的值吗?

(1)join 

sql:

explain 
selecta.into_id,a.into_bus_id,b.customer_type  as customer_type
from
--进件表
(select * from dp_ods.o_fk_eagle_jsd_intopieces_s
where etl_date = '2023-09-06' and substr(into_time ,1,4) >= '2019' ) a
join 
(select * from dp_ods.o_hyd_jsd_loan_order_s  where etl_date = '2023-09-06') b
on a.into_id=b.loan_id 
STAGE DEPENDENCIES:Stage-1 is a root stageStage-0 depends on stages: Stage-1STAGE PLANS:Stage: Stage-1Map ReduceMap Operator Tree:TableScanalias: o_fk_eagle_jsd_intopieces_sStatistics: Num rows: 36940508 Data size: 360575316992 Basic stats: COMPLETE Column stats: NONEFilter Operatorpredicate: ((substr(into_time, 1, 4) >= '2019') and into_id is not null) (type: boolean)Statistics: Num rows: 12313502 Data size: 120191765823 Basic stats: COMPLETE Column stats: NONESelect Operatorexpressions: into_id (type: string), into_bus_id (type: string)outputColumnNames: _col0, _col1Statistics: Num rows: 12313502 Data size: 120191765823 Basic stats: COMPLETE Column stats: NONEReduce Output Operatorkey expressions: _col0 (type: string)sort order: +Map-reduce partition columns: _col0 (type: string)Statistics: Num rows: 12313502 Data size: 120191765823 Basic stats: COMPLETE Column stats: NONEvalue expressions: _col1 (type: string)TableScanalias: o_hyd_jsd_loan_order_sStatistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEFilter Operatorpredicate: loan_id is not null (type: boolean)Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONESelect Operatorexpressions: loan_id (type: string), customer_type (type: int)outputColumnNames: _col0, _col1Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEReduce Output Operatorkey expressions: _col0 (type: string)sort order: +Map-reduce partition columns: _col0 (type: string)Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEvalue expressions: _col1 (type: int)Reduce Operator Tree:Join Operatorcondition map:Inner Join 0 to 1keys:0 _col0 (type: string)1 _col0 (type: string)outputColumnNames: _col0, _col1, _col3Statistics: Num rows: 48592050 Data size: 92443374291 Basic stats: COMPLETE Column stats: NONESelect Operatorexpressions: _col0 (type: string), _col1 (type: string), _col3 (type: int)outputColumnNames: _col0, _col1, _col2Statistics: Num rows: 48592050 Data size: 92443374291 Basic stats: COMPLETE Column stats: NONEFile Output Operatorcompressed: falseStatistics: Num rows: 48592050 Data size: 92443374291 Basic stats: COMPLETE Column stats: NONEtable:input format: org.apache.hadoop.mapred.TextInputFormatoutput format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormatserde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDeStage: Stage-0Fetch Operatorlimit: -1Processor Tree:ListSink

可以看到filter 顾虑部分有比原sql多了关联字段不为空的判断

(2) left join /full join

没有相关的过滤空值操作

2.group by 分组语句会进行排序吗?

explain
select date(create_time),max(actual_amount) max_actual_amount 
from dp_ods.o_hyd_jsd_loan_order_s  
where etl_date = '2023-09-06'
group by date(create_time)
STAGE DEPENDENCIES:Stage-1 is a root stageStage-2 depends on stages: Stage-1Stage-0 depends on stages: Stage-2STAGE PLANS:Stage: Stage-1Map ReduceMap Operator Tree:TableScanalias: o_hyd_jsd_loan_order_sStatistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONESelect Operatorexpressions: CAST( create_time AS DATE) (type: date), actual_amount (type: double)outputColumnNames: _col0, _col1Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEGroup By Operatoraggregations: max(_col1)keys: _col0 (type: date)mode: hashoutputColumnNames: _col0, _col1Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEReduce Output Operatorkey expressions: _col0 (type: date)sort order: +Map-reduce partition columns: rand() (type: double)Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEvalue expressions: _col1 (type: double)Reduce Operator Tree:Group By Operatoraggregations: max(VALUE._col0)keys: KEY._col0 (type: date)mode: partialsoutputColumnNames: _col0, _col1Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEFile Output Operatorcompressed: falsetable:input format: org.apache.hadoop.mapred.SequenceFileInputFormatoutput format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormatserde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDeStage: Stage-2Map ReduceMap Operator Tree:TableScanReduce Output Operatorkey expressions: _col0 (type: date)sort order: +Map-reduce partition columns: _col0 (type: date)Statistics: Num rows: 44174590 Data size: 84039429353 Basic stats: COMPLETE Column stats: NONEvalue expressions: _col1 (type: double)Reduce Operator Tree:Group By Operatoraggregations: max(VALUE._col0)keys: KEY._col0 (type: date)mode: finaloutputColumnNames: _col0, _col1Statistics: Num rows: 22087295 Data size: 42019714676 Basic stats: COMPLETE Column stats: NONEFile Output Operatorcompressed: falseStatistics: Num rows: 22087295 Data size: 42019714676 Basic stats: COMPLETE Column stats: NONEtable:input format: org.apache.hadoop.mapred.TextInputFormatoutput format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormatserde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDeStage: Stage-0Fetch Operatorlimit: -1Processor Tree:ListSink

可以看到group by 字段是进行了正序排序的,查看sql执行结果也能看到。

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

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

相关文章

【java】【SSM框架系列】【一】Spring

目录 一、简介 1.1 为什么学 1.2 学什么 1.3 怎么学 1.4 初识Spring 1.5 Spring发展史 1.6 Spring Framework系统架构图 1.7 Spring Framework学习线路 二、核心概念(IoC/DI,IoC容器,Bean) 2.1 概念 2.2 IoC入门案例 …

CH06_第一组重构(上)

提取函数(Extract Function |106) 曾用名:提炼函数(Extract Function) 反向重构:内联函数(115) 示例代码 function printOwing(invoice) {printBanner();let outstanding calcul…

API安全学习 - crAPI漏洞靶场与API测试思路

crAPI漏洞靶场与解题思路 1. 前置基础1.1 认识crAPI1.2 环境搭建1.3 API的分类与鉴别 2. 漏洞验证2.1 失效的对象级别授权挑战1:访问其它用户车辆的详细信息挑战2:访问其它用户的机械报告 2.2 失效的用户身份验证挑战3:重置其它用户的密码 2.…

NIFI实现JSON转SQL并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的,所有的配置参考:docker安装Apache NIFI 需求背景 现在有一个文件,里面存储的是一些json格式的数据,要求将文件中的数据存入数据库表中,以下是一些模拟的数据和对应的数据库…

centos7使用docker-compose一键搭建mysql高可用主从集群

docker部署 环境准备 卸载旧版本 yum remove -y docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine 安装依赖 yum install -y yum-utils \…

伪微分反馈控制(Pesudo-Drivative Feedback Control——PDF)

运动控制-单轴伺服控制带宽分析(二) - 知乎 (zhihu.com) 伪微分反馈控制_百度百科 (baidu.com) 伺服电机控制器的参数整定_老马过河hhh的博客-CSDN博客 伪微分PIIP控制_yukee10的博客-CSDN博客

docker搭建个人网盘和私有仓库Harbor

目录 1、使用mysql:5.7和 owncloud 镜像,构建一个个人网盘 2、安装搭建私有仓库 Harbor 1、使用mysql:5.7和owncloud,构建一个个人网盘 1.拉取mysql:5.6镜像,并且运行mysql容器 [rootnode8 ~]# docker pull mysql:5.7 [rootnode8 ~]# doc…

Excel VSTO开发10 -自定义任务面板

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 10 自定义任务面板 自定义任务面板(有些地方称为侧边面板)即CustomTaskPane,这个类在Microsoft…

leetcode 第 361 场周赛

2843. 统计对称整数的数目 核心思想:枚举每一个数是否是对称整数,第一种写法为python写法,第二种为一般写法我觉得更好,非常有思想性。 2844. 生成特殊数字的最少操作 核心思想:枚举特殊数字结尾的几种可能。其实自己做的时候一…

2023/09/07 c++qt day2

#include <iostream>using namespace std; //封装一个学生类 struct stu { private://存放学生的成绩int stu_score[256];//记录学生个数int stu_num; public://用于设置学生个数void setNum(){cout<<"请输入学生的个数"<<" ";cin>&g…

Stable Diffuse 之 本地环境部署 WebUI 进行汉化操作

Stable Diffuse 之 本地环境部署 WebUI 进行汉化操作 目录 Stable Diffuse 之 本地环境部署 WebUI 进行汉化操作 一、简单介绍 二、汉化操作 附录&#xff1a; 一、Install from URL 中出现 Failed to connect to 127.0.0.1 port 7890: Connection refused 错误&#xf…

【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码

【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码 1 比赛时间 北京时间&#xff1a;2023年9月7日 18:00-2023年9月10日20:00 2 思路内容 可以参考我提供的历史竞赛信息内容&#xff0c;最新更新我会发布在博客和知乎上&#xff0c;请关注我获得最…

C++核心编程--类篇

C核心编程 1.内存分区模型 C程序在执行时&#xff0c;将内存大方向分为4个区域 意义&#xff1a;不同区域存放数据&#xff0c;赋予不同的生命周期&#xff0c;更能灵活编程 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理的全局区&#xff1a;存放…

Vue3+Element Plus实现el-table跨行显示(非脚手架)

Vue3Element Plus实现el-table跨行显示 app组件内容使用:span-method"objectSpanMethod"自定义方法实现跨行显示查询方法初始化挂载新建一个html即可进行测试&#xff0c;完整代码如下效果图 app组件内容 <div id"app"><!-- 远程搜索 --><e…

算法训练day43|动态规划 part05:0-1背包 (LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474.一和零)

文章目录 1049. 最后一块石头的重量 II思路分析代码实现 494. 目标和思路分析动规方法代码实现总结思考 474.一和零思路分析代码实现思考总结 var code "57a5e730-4e5e-43ad-b567-720d69f0371a"1049. 最后一块石头的重量 II 题目链接&#x1f525;&#x1f525; 有…

揭秘拼多多API接口:让商家和用户实现高效连接与便捷操作

随着电商行业的飞速发展&#xff0c;拼多多作为一家新兴电商平台&#xff0c;近年来已逐渐成为市场的焦点。为了满足商家和用户的需求&#xff0c;拼多多不断创新&#xff0c;推出了智能化的API接口&#xff0c;以实现更加高效、便捷的操作和管理。本文将深入探讨拼多多API接口…

提高使用VS Code工作效率的技巧

提高使用VS Code工作效率的技巧 时间轴视图&#xff1a;本地源代码控制 时间轴视图为我们提供了内置的源代码控制。 我们中的许多人都知道 Git 和其他源代码控制工具有多么有用&#xff0c;它们可以帮助我们轻松跟踪文件更改并在需要时恢复到之前的状态。 因此&#xff0c;…

go基础08-map的内部实现

和切片相比&#xff0c;map类型的内部实现要复杂得多。Go运行时使用一张哈希表来实现抽象的map类型。运行时实现了map操作的所有功能&#xff0c;包括查找、插入、删除、遍历等。在编译阶段&#xff0c;Go编译器会将语法层面的map操作重写成运行时对应的函数调用。 下面是大致的…

YOLOV7改进-添加Deformable Conv V2

可变形卷积link class DCNv2(nn.Module):def __init__(self, in_channels, out_channels, kernel_size, stride1,padding1, groups1, actTrue, dilation1, deformable_groups1):super(DCNv2, self).__init__()self.in_channels in_channelsself.out_channels out_channelsse…

QT for andriod

QT for andriod 开发 apk软件&#xff0c;因为一些特殊的原因&#xff0c;在这里简单的记录一哈自己开发apk的流程和心得。 首先说明我采用的环境有哪些&#xff1f; 1、QT的版本&#xff0c;个人建议5.15.2的版本及以上&#xff0c;我是用的5.15.2。 2、andriod studio 可以…