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.hqwc.cn/news/500993.html

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

相关文章

决定宾夕法尼亚州地区版图的关键历史事件

决定宾夕法尼亚州地区版图的关键历史事件: 1. 殖民地的成立与威廉佩恩的特许状: - 1681年,英国国王查理二世将一大片土地赐予了贵格会教徒威廉佩恩,作为对佩恩父亲海军上将威廉佩恩服务的赏赐。这块土地被命名为“宾夕法尼亚”&…

智慧灌区项目案例(甘肃省兰州市某重点灌区)

​甘肃省兰州市某重点灌区自上个世纪80年代建成后,灌溉面积达到30万亩,对推动当地农业发展发挥了重要作用。但长期以来,该灌区的水利管理仍主要依靠人工统计记录,缺乏实时监测和精细化管理。为实现灌区管理的现代化升级,甘肃水利局委托星创易联公司设计实施水利信息化项目。 项…

快速下载Huggingface的大语言模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Huggingface是什么?二、基于官方huggingface-cli下载(基础,断线风险)1.安装hf下载环境2.配置环境变量3.注册…

YOLOv8-TensorRT on Jetson

YOLOv8-TensorRT Jetson 项目地址:https://github.com/triple-Mu/YOLOv8-TensorRT/blob/main/docs/Jetson.md 文档地址:https://github.com/triple-Mu/YOLOv8-TensorRT/blob/main/docs/Jetson.md 注意 engine 文件不跨平台,只能在对应的平台…

【ArcPy】简化ArcGISPro默认Python环境体量

参考文献 安装 ArcPy—ArcGIS Pro | 文档

深入解析Golang的encoding/ascii85库:从基础到实战

深入解析Golang的encoding/ascii85库:从基础到实战 引言基础知识什么是ASCII85编码?ASCII85编码的工作原理ASCII85编码的优点ASCII85编码的缺点 使用Golang的encoding/ascii85库引入encoding/ascii85包ASCII85编码ASCII85解码实战示例小结 进阶技巧和最佳…

如何使用Potplayer远程访问本地群晖NAS搭建的WebDAV中的本地资源

文章目录 本教程解决的问题是:按照本教程方法操作后,达到的效果是:1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透,映射至公网4 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内…

EAS web 界面加载后,隐藏按钮

效果:隐藏下列按钮: 实现方法: 1、创建数据装载事件: 2、隐藏按钮: afterOnloadHideEntryTBBBBBB:function(e){console.log("----------失败222!!!!!&a…

git忽略某些文件(夹)更改说明

概述 在项目中,常有需要忽略的文件、文件夹提交到代码仓库中,在此做个笔录。 一、在项目根目录内新建文本文件,并重命名为.gitignore,该文件语法如下 # 以#开始的行,被视为注释. # 忽略掉所有文件名是 a.txt的文件.…

spring cloud 入门

​ 学习目标: 学习spring cloud项目快速搭建方法,学习nacos注册中心使用,实现两个服务间的调用 学习内容: 一、Spring Cloud介绍 Spring 以 Bean(对象) 为中心,提供 IOC、AOP 等功能。Sprin…

【PyTorch][chapter 18][李宏毅深度学习]【无监督学习][ VAE]

前言: VAE——Variational Auto-Encoder,变分自编码器,是由 Kingma 等人于 2014 年提出的基于变分贝叶斯(Variational Bayes,VB)推断的生成式网络结构。与传统的自编码器通过数值的方式描述潜在空间不同,它…

Autosar-诊断配置详解-2

4创建、配置DcM模块 4.1导入DBC文件 按下图的操作步骤导入DBC文件: 导入后可以看到工具生成了3条DcM的Pdu,如下图: 4.2生成通信模块 点击AutoConfig让工具根据Dbc导入的信息生成通信相关的模块: 因为DBC文件中有Dcm的Pdu,因此工具还自动生成了Dcm模块,只是该模块是空…