您现在的位置是:首页 > 正文

调度、模型、同步与任务——阿里云大数据数仓建设性能优化方案

2024-01-30 22:29:41阅读 0

摘要: 对于阿里云大数据数仓建设性能优化而言,主要可以从调度优化、模型优化、同步优化以及任务优化这四个方面着手。其实,对于性能优化而言,最终还是会归结到“资源”之上,所以资源是否足够,分配是否合理也是我们在进行性能优化时必须考虑的关键所在。

摘要:对于阿里云大数据数仓建设性能优化而言,主要可以从调度优化、模型优化、同步优化以及任务优化这四个方面着手。其实,对于性能优化而言,最终还是会归结到“资源”之上,所以资源是否足够,分配是否合理也是我们在进行性能优化时必须考虑的关键所在。

以下内容根据演讲视频以及PPT整理而成。

 

本次演讲视频分享,请戳这里!
本次演讲PPT下载,请戳这里!
关于MaxCompute更多精彩文章,请移步云栖社区MaxCompute公众号!

 

本文将主要围绕以下四个方面进行介绍:调度优化、模型优化、同步优化以及任务优化。对于调度优化而言,将分享任务调度如何进行优化,以及如何看到调度的瓶颈点,以及在初步进行建设和使用数据仓库的任务之后,对于任务如何进行调整来满足业务的时间要求。对于模型优化而言,主要包括一些优化相关的想法、建议以及技术的优化点。对于数据同步优化而言,也是大家在建设数据仓库的过程中经常遇到的问题,也就是将数据从其他数据库同步过来或者向其他数据库进行数据同步的时候,经常会遇到一些像某些任务运行过慢或者影响其他任务的情况。对于任务优化而言,主要指的是计算任务,也可以理解为MaxCompute的SQL任务,这部分将与大家分享如何去优化这部分的任务。

一、调度优化
在数据仓库建设的过程中,大家都会需要跑一些任务,那么这些任务如何进行配置才会是最优的呢?如果出现了瓶颈点或者业务第二天所需要的数据并没有给到,那么很大一部分的情况需要从调度方面来考虑,是不是有些任务的时间点设置的不合理?或者是不是有些任务的优先级设置的不合理?这些可能是在调度层面,大家需要优先考虑的一个点。

调度优化方式
调度优化的主要方式如下图所示,按照道理前三点应该在设计初期提前想到或者提前规划好的。而目前大部分客户还是用了一段时间的数据仓库的时候,才发现存在一些问题,当第二天需要出报表的时候才想到去优化这些点。

96a08be19d92b2809500348cc79b458aae49d70e

第一点就是对于大任务而言,需要将其预定处理的时间提前,这里的大任务也就是耗时比较长的任务,如果任务已经在跑了,那么很好评估,在DataWorks里面可以看到哪些任务跑得慢。此外还有一个评估方法就是在第一次建立数仓的时候,表的数据量很大那么也肯定是大任务。对于这些大任务而言,需要将其定时的时间提前,也就是将其优先级提前。第二点就是将关键节点的定时时间提前,这里所谓的关键节点并不是说其数据量大,而是业务很重要的任务。第三点就是需要做到任务的隔离,这里主要指的是在使用DataWorks的时候会用到一些调度资源,不管是运行SQL也好还是运行同步任务也好,这些任务都需要跑在DataWorks的调度资源里面,那么如果将这些任务都放在一个项目就会出现问题,比如某个同步任务设置了10个并发,这样就占据了10多个调度资源,这样就可能将资源全部占满了,这样就会导致其他任务需要等待,这里不是指的MaxCompute资源不够,而是DataWorks的调度资源不够了。因此,一方面需要将开发和生产隔离开,避免因为开发临时启动了测试任务导致生产环境受到影响,因此要尽量将DataWorks里面的开发项目和生产项目分离开。此外,如果生产项目也很大,可能就需要按照数仓的分层或者不同业务拆分成不同的项目,这也是避免资源出现抢占,避免影响其他业务的一种方式。当然,这样的做法有利也有弊,因为这样做会使得复杂度增加,对于企业而言,后续的运维成本也会高一些,因此这需要看大家应该如何评估,如果数据量达到了一定的规模其实可以分拆出来的,但是如果数据量不是很大,那么就可以先不考虑分拆。第四点就是减少任务层级的依赖,大家在进行调度的时候,都会在DataWorks里面看到依赖的上一层或者下游依赖哪一些任务,而任务互相依赖的层级应该是越少越好的,但是按照数仓分层,依赖至少需要三层,这三层依赖是肯定存在的,除此之外还会有一些中间表,这样就会有四层或者五层,但是尽量不要出现10层以上甚至20层的依赖,这样复杂的任务依赖会使得后期去排查任务的依赖成本升高。如果在数仓建设的初期或者建设的过程中发现了一些问题就可以从以上四个点出发进行考虑。

二、模型优化
对于模型优化而言,必须要

网站文章

  • SublimeText3: ImportError: No module named ‘urllib2′ 热门推荐

    使用sublime text的同学一般会装package control这个插件,这个插件是管理插件的功能,先安装它,再安装其他插件就方便了。 console安装命令: import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();

    2024-01-30 22:29:06
  • strictfp关键字和clone()方法

    strictfp关键字和clone()方法

    strictfp 关键字<strict float point (精确浮点)>1.可以用在哪里接口类方法2.有什么作用?使用 strictfp 关键字声明一个方法时,该方法中所有的float和doub...

    2024-01-30 22:28:57
  • 如何查看服务器的型号

    如何查看服务器的型号

    2024-01-30 22:28:29
  • Kafka的监听地址配置

    Kafka的监听地址配置

    本文就用Kafka 2.8.有时我们会碰到网络是通畅的,但却连不上Kafka,特别是在多网卡环境或者云环境上很容易出现。这个其实和Kafka的监听配置有关系。本文介绍监听相关的配置。目前监听相关的参数...

    2024-01-30 22:28:22
  • 【大一程序设计基础作业】P266Ex3

    【大一程序设计基础作业】P266Ex3

    遍历则是让这个小机器人通过循环语句顺着一个个结点走下去,在循环语句结束之后,他会停在这一系列结点的后面,此时我们就要把它收回来,让他休息一下,也就是让ptr指向空指针。最值则是先读取头结点中的数据,装...

    2024-01-30 22:28:14
  • LeNet模型——tensorflow实现

    LeNet模型——tensorflow实现

    文章目录MNIST数据集MNIST数据集简介MNIST数据集加载MNIST数据集可视化数据集格式转换tendorflow模型类ModelSequetial卷积类Conv2D池化类AveragePool...

    2024-01-30 22:27:44
  • CCNP-第六篇-OSPF高级版(三)

    CCNP-第六篇-OSPF高级版(三)

    CCNP-第六篇-OSPF高级版(三) 这一节差不多都是密码认证了,还有个NSSA和OE1,OE2 OSPF默认路由 OSPF认证问题 OSPF特殊区域,NSSA,STUB OSPF下发默认路由 其实...

    2024-01-30 22:27:37
  • tornado mysql 操作_tornado 数据库操作

    tornado是python的web框架,web程序开发中数据库操作是必须的。安装:tornado的官方文档中提供的说明比较少,而且提供的模块中未找到数据库方面的模块,难道没有针对数据库操作进行封装?百度查询了一下才发现,tornado在升级过程中把数据库模块独立出来了。模块为torndb模块。模块git地址:https://github.com/bdarnell/torndb 官方文档地址...

    2024-01-30 22:27:29
  • 各种排序算法的时间复杂度和空间复杂度

    各种排序算法的时间复杂度和空间复杂度

    2024-01-30 22:27:20
  • 机器学习入门与Python实战(四):K近邻分类(KNN)

    机器学习入门与Python实战(四):K近邻分类(KNN)

    目录现实问题:“物以类聚,人以群分”一.KNN算法概述二.KNN算法介绍K近邻分类模型算法步骤距离计算方式KNN分类图K值选择三.KNN特点KNN算法的优势和劣势知识巩固Python实战:KNN数据分...

    2024-01-30 22:26:51