HIVE大数据平台SQL优化分享
相信很多小伙伴在面试的时候,必然跳不过去的一个问题就是SQL脚本的优化,这是很多面试官爱问的问题,也是可以证明你实力进阶的一个重要的能力。
下面给大家分享一个重量级的大数据行业sql技能---hive大数据平台SQL优化。
此文章是大数据平台运维组从多维度参数(CPU,内存,运行时长等)筛选出TOP任务,联合数据开发人员进行优化,最终出具优化方案优化跑批作业的业务逻辑,SQL逻辑等,并跟进方案落地和报告整理。
此文章从优化介绍,优化场景,案例实战三个方面循序渐进讲解。
一,优化介绍
1,大数据平台SQL优化的背景,以及采取的措施

2,优化效果概述

这个效果还是蛮理想的,也说明了在项目中sql优化是一项重要的技能之一,也是一个大数据开发人员进阶必备技能。
3,版本信息与名词
在分享SQL优化之前,先了解一下部分名词的含义。

二,优化场景
1,主要的优化场景

1.1,多余分区冗余计算

解决方法:

1.2,历史静态数据重复计算

解决方法>步骤1:优化前把历史结果表落地,再计算出新增结果表

解决方法>步骤2:把新增结果表数据合并进入历史结果表。
---注意,这里为什么不能直接(历史结果表)union all (新增结果表)来合并呢??
因为是要更新变化数据,不是简单的把数据合并,这个主要看不同的业务需求了。

优化总结:

1.3,多作业相同逻辑重复执行

解决方法:

1.4,老系统数据无效计算

解决方法:

1.5,单个sql计算复杂程度过高

解决方法:
code1异常是个重要的且基础的知识点!!!

1.6,规避使用 * 号查询
简单来说,就是要用什么字段就写什么字段,不用的,别多写。这个就是列裁剪。

1.7,相同逻辑冗余计算

解决方法:

优化前后对比:

1.8,单表多次关联冗余计算

解决方法:
1.9,筛选后置导致无用计算

解决方法:

1.10,group by 代替 distinct

1.11,单个字段重复清洗、过滤额、转化

解决方法:

1.12,作业更新及清理下线

2,优化场景总结



三,业务案例实战

1,业务实战案例1











2,业务实战案例2













今天这篇文章就分享到这里,欢迎大家提出宝贵建议和意见。
相关文章:
HIVE大数据平台SQL优化分享
相信很多小伙伴在面试的时候,必然跳不过去的一个问题就是SQL脚本的优化,这是很多面试官爱问的问题,也是可以证明你实力进阶的一个重要的能力。 下面给大家分享一个重量级的大数据行业sql技能---hive大数据平台SQL优化。 此文章是大数据平台…...
JS算法-十大排序算法(上)
思想小剧场 如果我的相对论被证明是正确的,德国人就会说我是德国人,法国人会说我是一个世界公民;如果我的相对论被否定了,法国佬就会骂我是德国鬼子,而德国人就会把我归为犹太人。—爱因斯坦 以下案例都是升序 const a…...
c++编程(11)——string类的模拟实现
欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 前言string类的模拟实现string的成员对象构造、赋值、析构访问成员对象的接口访问字符串中的元素迭代器对字符序列的插入、删除元素操作mystring类的相关操作 mystring类的所有模拟实现以及测试案例 前言 本…...
Python从0到POC编写--函数
数学函数: 1. len len() 函数返回对象(字符、列表、元组等)长度或项目个数, 例如: str "python" len(str)2. range range() 函数返回的是一个可迭代对象(类型是对象),…...
【教程】Linux/Jetson 安装X11VNC同步屏幕内容
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,请不吝给个[点赞、收藏、关注]哦~ 目录 背景说明 实际效果 安装步骤 安装 x11vnc 配置 x11vnc 配置 x11vnc 作为系统服务 使用 VNC 客户端连接 背景说明 通常vnc-server是单…...
【LLM第五篇】名词解释:prompt
1.是什么 提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解…...
k8s v1.20二进制部署 部署 CNI 网络组件 部署 Calico
一、部署 flannel 1.1.K8S 中 Pod 网络通信 ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命名空间,相当于它们在同一台机器上一样,可以用 localhost 地址访问彼此的端口。…...
在React中利用Postman测试代码获取数据
文章目录 概要名词解释1、Postman2、axios 使用Postman测试API在React中获取并展示数据小结 概要 在Web开发中,通过API获取数据是一项常见任务。Postman是一个功能强大的工具,可以帮助开发者测试API,并查看API的响应数据。在本篇博客中&…...
嵌入式学习-通用定时器
简介 框图介绍 时钟选择 计数器部分 输入捕获和输出比较框图 嵌入式学习全文参考(小向是个der)做笔记:https://blog.csdn.net/qq_41954556/article/details/129735708...
培训行业有哪些ai工具?
培训行业利用人工智能(AI)工具的方式多种多样,其中一些常见的工具包括: 1. **经AI深度学习的OCR软件**:OCR能给培训行业带来很大的便利,能大大提高工作效率和降低文字录入的成本,但一般的OCR工具…...
7.STL中string的一些超常用函数 (附习题)
目录 1.find 2.atoi 3.to_string 4.getline 【leetcode 习题】 387.字符串中的第一个唯一字符 125. 验证回文串 1.find 1.查找第一次出现的目标字符串:说明:如果查找成功则输出查找到的第一个位置,否则返回-1; s1.find(s2…...
GPT搜索鸽了!改升级GPT-4
最近OpenAI太反常,消息一会一变,直让人摸不着头脑。 奥特曼最新宣布:5月13日开发布会,不是GPT-5,也不是盛传的GPT搜索引擎,改成对ChatGP和GPT-4的升级~ 消息一出,大伙儿都蒙了。 之…...
数字绘画教学实训解决方案
一、建设背景 1.1政策背景 教育信息化政策推动:近年来,随着教育信息化政策的不断推动,各级教育部门纷纷出台相关政策,鼓励和支持教育信息化的发展。数字绘画作为现代艺术教育的重要组成部分,其教学实训解决方案的建设…...
C#之如何判断数据类型
一、GetType方法 a.GetType():获取当前变量的类型对象 string str "Hello World";Console.WriteLine(str.GetType()); 结果: 二、typeof方法 typeof(Int):获取的是Int类型的类型对象 int num 10;Console.WriteLine(num.GetType() typeof(i…...
算法学习笔记(Tarjan)
本文介绍 T a r j a n Tarjan Tarjan求强联通分量、找割点和割边、找环。 Tarjan求强联通分量 例题:【模板】有向图缩点 题目描述 给定一个 n n n点 m m m边的有向图(保证不存在重边与自环,但不保证连通),请你求出…...
一台linux通过另一台linux访问互联网-TinyProxy
参考: https://blog.csdn.net/weixin_41831919/article/details/113061317https://www.yuncongz.com/archives/1.htmlhttps://blog.csdn.net/aoc68397/article/details/101893369 环境:ubuntu 18.04 机器1: IP 219.216.65.252 (可以访问外网) 机器2: IP…...
探索数据结构:堆的具体实现与应用
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 堆的概念 堆(Heap)是计算机科学中一类特殊的数据结构。堆通常是一个…...
网络2--MAC地址,IP地址的理解
引入: 每一张主机都会有一张网卡,每一张网卡都有一个48bit位的序列号 当我们的热点被连上,你查看时,就会出现MAC地址,IP地址 那么他们两个是什么呢??? MAC地址 在同一个局域网中…...
类型的转换
首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。 什么时候会用到?我觉得两种情况会用到 等号左右两边类型不一致(一般发生在赋值时)不同类型的数据参与运算(一般发生在计算时) 转…...
memset函数
让我们先看两个代码 memset(dp, 0x3f, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; memset(dp, 127, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; 代码结果如下: 现在我们来分…...
《深入理解Mybatis原理》MyBatis动态SQL原理
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
SpringBoot的两种启动方式原理
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
药流会不会落下月子病?药流后修护要点
药流作为终止早期妊娠的常见方式,其术后养护是否到位,直接关系到女性后续健康,“药流会不会落下月子病”也是行业内及女性群体重点关注的问题。事实上,药流虽无需手术创伤,但对身体的隐性损伤不容忽视,若忽…...
北京交通大学 | 基于TD3算法的层叠超表面辅助多用户MISO系统联合优化研究
引言随着无线通信技术的不断发展,可重构智能表面(RIS)技术因其低功耗和信号操控能力而受到广泛关注。然而,RIS的单层结构和离散相移能力限制了其性能表现。层叠智能超表面(SIM)作为一项创新技术,…...
《C 头文件》
《C 头文件》 引言 C 头文件是 C 语言编程中不可或缺的一部分。它们包含了 C 语言标准库中的各种函数、宏定义和类型定义,为程序员提供了丰富的编程工具。本文将详细介绍 C 头文件的作用、分类、常用头文件及其在编程中的应用。 一、C 头文件的作用 C 头文件的主要作用有以…...
Claude Code 开挂指南:这个开源项目让你的 AI 编程助手直接进化
这个项目是什么?everything-claude-code 是一个在 GitHub 上拿到 50,000 star 的开源项目,出自 Anthropic Hackathon 的获奖团队之手,经历了 10 个月的实际生产环境打磨。一句话说清楚它是什么:给 AI 编程助手装「外挂」的全套配置…...
H5动态公共导航栏
CommonNavBar.vue: <template><divclass"common-nav-bar":style"navBarStyle"><!-- 状态栏占位,可以按项目需要删除或调整高度 --><div class"status-bar-placeholder"></div><!-- 主导…...
MATLAB 实现轴承振动信号模拟:从动力学方程到故障仿真
MATLAB matlab 轴承振动信号模拟 轴承动力学方程 滚动轴承动力学模型,轴承动力学模型:滚动轴承运动学模型,深沟球轴承故障基于Hertz接触理论,采用龙格库塔方法可根据需求仿真轴承正常状态,外圈、内圈以及滚动体的故障…...
Driver Store Explorer终极指南:三步清理Windows冗余驱动,快速释放数十GB空间
Driver Store Explorer终极指南:三步清理Windows冗余驱动,快速释放数十GB空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来越…...
AA-PEG-Lipoic acid,硫辛酸PEG乙酸,显著提升稳定性和生物相容性
一.名称英文名称:AA-PEG-LA,AA-PEG-Lipoic acid,Acetic Acid-PEG-LA,Acetic Acid-PEG-Lipoic acid,LA-PEG-AA,Lipoic acid-PEG-AA中文名称:硫辛酸聚乙二醇乙酸,硫辛酸PEG乙酸分子量&…...
