DataWorks(ODPS)性能优化技巧指南

使用阿里云DataWorks进行数据处理的时候,有时候会遇到一个sql或pyodps(本质上还是转化为sql)执行很长的情况,这个时候有必要对代码进行性能优化。

一、打开ODPS运行评估报告

一个sql脚本执行完毕后,在运维中心的周期实例中右击该任务"查看运行日志"。

然后再找到如下链接即可打开日志的检测报告:

点击后显示如下:

可以看到该任务从13:33运行到16:04,运行了2个半小时左右,性能堪忧。

二、分析LogView的信息

我们对LogView的各部分信息分别进行说明。

1、运行DAG图

显示了整个SQL任务切分为MapReduce任务后的DAG图。

【名称含义】

M:map操作

R:reduce操作

J:join操作

【链路】

链路上比较粗的表示数据量比较大,比较细的表示数据量比较小。

2、任务节点详细信息

该部分展示了Map、Reduce、Join节点任务的详细信息。

IO Records:数据的条数

IO Bytes:数据的大小

Latency:节点运行时长

Failed/Terminated/ALL:节点的分区执行情况

3、某节点的各分区(partition)的任务执行情况

在这里可以查看下start_time:如果差异很大说明计算资源紧缺,依次抢占了计算资源。

三、优化方案

1、资源切换

如果之前使用的是公共资源,那么可以切换为独享资源

2、Hash clustering

将数据提前进行shuffle和排序,在使用数据的过程中,读取数据后直接参与计算。这种模式非常适合产出后 后续节点多次按照相同key进行join或聚合的场景。

当然生成hash clustering table本身也是有代价的,在生辰阶段会进行一次额外的shuffle。

执行方法示例:

alter table s_auction_auctions CLUSTERED by (acution_id) SORTED by (auction_id) into 1200 buckets;


3、设置任务执行时的map、reduce、join实例数

'odps.stage.mapper.num' : 1024

'odps.stage.joiner.num' : 2048

'odps.stage.reducer.num' : 2048

4、提早过滤不必要的数据

DAG中输入较多数据的节点(线较粗的),提早过滤没用的数据,让输入数据变少点。

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

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

相关文章

94. 7张图掌握后端服务重构技巧

文章目录 导言一、逻辑模块重构二、存储模块重构三、逻辑与存储模块联合重构总结 原文地址:7张架构图掌握后端服务重构技巧 导言 随着项目发展,现有模块不再符合需求,重构后端服务必要性拉满。👨‍💻 重构过程中&am…

蓝桥杯练习系统(算法训练)ALGO-992 士兵杀敌(二)

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。   小工是南将军手下的军师&…

数据中心在高性能计算(HPC)中的作用

高性能计算(HPC)已成为解决复杂问题、推动科学研究、人工智能和其他各种应用领域的关键工具。要确保高性能计算系统的高效运行,需要专门的基础设施和支持。数据中心在满足高密度计算、管理散热和提供强大带宽方面起着关键作用。本文探讨了数据…

langchain学习笔记(十一)

关于langchain中的memory,即对话历史(message history) 1、 Add message history (memory) | 🦜️🔗 Langchain RunnableWithMessageHistory,可用于任何的chain中添加对话历史,将以下之一作为…

串的定义及BF算法

定义 BF算法——朴素查找算法——也叫做串的模式匹配算法 其应用特别多,比如经常在一篇文章里面搜索一些东西,(比如文章里的某个内容,或某些关键字词出现的位置,次数等) 之前我们大多数情况下是用来搜索关…

基于Springboot的助农管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的助农管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

【项目实践】如何解决并发场景下数据一致性问题

1.背景 并发写场景下,由于微服务的系统环境复杂,不可避免的会出现 【机器、缓存、数据库、依赖服务】等出现问题,导致数据不一致的情况产生。 影响大且广: 1、数据不一致问题在线上可能会产生故障 2、数据不一致会导致长尾错误…

IP传输方式——组播

组播作为IP传输三种方式之一,指的是报文从一个源发出,被转发到一组特定的接收者,相同的报文在每条链路上最多有一份。相较于传统的单播和广播,组播可以有效地节约网络带宽、降低网络负载,所以被广泛应用于IPTV、实时数…

项目中如何优雅的使用枚举类型

原文链接:赵侠客 前言 枚举类型在开发中是很常见的,有非常多的应用场景,如状态管理、类型分类、权限控制、配置管理、错误码管理、日志级别等。正确合理的使用枚举可以给我们带来非常多的好处: 增强代码可读性:枚举可…

pandas.DataFrame新增列、dropna()方法-丢弃含空值的行、列;inf的处理技巧

在Dataframe中新添加一列 直接指明列名,然后赋值就可 import pandas as pddata pd.DataFrame(columns[a,b], data[[1,2],[3,4]]) data >>> dataa b 0 1 2 1 3 4 添加一列’c‘,赋值为空白值。打印出来 data[c] data >>>…

1255942-05-2,DBCO-C6-Amine,可以用于构建分子结构和生物活性分子

您好,欢迎来到新研之家 文章关键词:1255942-05-2,DBCO C6 NH2,DBCO-C6-Amine,二苯并环辛炔-C6-氨基 一、基本信息 【产品简介】:DBCO-C6-NH2 is a multifunctional molecule with excellent chemical re…

【王道操作系统】ch1计算机系统概述-05操作系统引导

文章目录 【王道操作系统】ch1计算机系统概述-05操作系统引导01 什么是操作系统引导02 磁盘里边有哪些相关数据(1)主引导记录(MBR)(2)活动分区(一般是C盘) 03 操作系统引导的过程 【…

如何创建MinIO存储服务公网地址实现固定TCP域名异地远程访问——“cpolar内网穿透”

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等…

每日一题 — 盛水最多的容器

11. 盛最多水的容器 - 力扣(LeetCode) 思路: 因为体积是长度乘高,所以运用双指针,一个在最左,一个在最右,每次都记录体积 V ,然后比较左边的长度和右边的长度,左边的长度…

【代码随想录算法训练营Day35】435.无重叠区间;763.划分字母区间;56.合并区间

文章目录 ❇️Day 36 第八章 贪心算法 part05✴️今日任务❇️435. 无重叠区间自己的思路自己的代码(✅通过81.59%)随想录思路随想录代码 ❇️763.划分字母区间自己的思路自己的代码(✅通过55.30%)随想录思路随想录代码 ❇️56. 合…

长/短 链接/轮询 和websocket

短连接和长连接 短连接: http协议底层基于socket的tcp协议,每次通信都会新建一个TCP连接,即每次请求和响应过程都经历”三次握手-四次挥手“优点:方便管理缺点:频繁的建立和销毁连接占用资源 长连接: 客…

Javaweb之SpringBootWeb案例之自动配置案例的自定义starter分析的详细解析

3.2.4.1 自定义starter分析 前面我们解析了SpringBoot中自动配置的原理,下面我们就通过一个自定义starter案例来加深大家对于自动配置原理的理解。首先介绍一下自定义starter的业务场景,再来分析一下具体的操作步骤。 所谓starter指的就是SpringBoot当…

java 多线程分段下载

java 多线程分段下载 介绍 使用java 多线程下载,当前只是一个demo,还没进行对比测试,目前看速度确实要快一些 实现和简单就是启用多个现成分段下载,最后再组合在一起 完整代码 原本是下载tomcat10的,但是我本地jdk不符&#…

机器人工具箱学习(二)

一、机械臂及运动学 1.1 机械臂构成 机械臂多采用关节式机械结构,一般具有6个自由度,其中3个用来确定末端执行器的位置,另外3个则用来确定末端执行装置的方向(姿态)。   如图所示,一个机械臂是由一组可做相对运动的关节连接的连…

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行 目录 Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行前言1 使用GUI-Guider设计UI1.1 创建工程1.2 设计UI 2 ESP工程导入UI2.1 移植LVGL2.2 移植UI文件2.3 调用UI文件2.4 烧录测试 结束语 前言 GU…