DataWorks公共云优先级和离线同步任务实时同步任务速度

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 1.资源优先级2.数据集成离线同步提速3.数据集成实时同步任务提速4.相关引擎调优

(一)资源优先级

补充说明:资源分为调度资源、计算资源、数据集成同步资源。

  • 一个数据集成任务需要一级调度资源组下发任务到二级数据集成资源组来同步数据;
  • 像odps sql等其他计算引擎任务需要一级调度资源下发任务到二级计算资源来处理任务;
  • 通用节点一般仅需要一级调度资源完成。



(二)数据集成

离线同步

离线任务同步速度有哪些影响因素?

  • 网络
  • 走公网相对于内网速度较慢;跨域,跨国网络更建议走内网。
  • 数据库、引擎服务端、cen带宽、数据集成独享资源组网络的带宽(吞吐量TPS)。
  • 服务端本身的读写性能:大部分读写插件会转换成SQL在数据库、引擎服务端侧执行,一部分是接入的数据库、引擎提供的接口,所以同步的快慢受限于服务端本身的读写性能。
  • CPU、内存、SSD 硬盘、硬盘、网络带宽
  • 写端插件中前置语句或后置语句耗时久导致整体任务慢,同步传输速度本身不慢(仅部分插件支持前或后置语句)。
  • 读端全表扫描。
  • 任务配置的并发数:实际并发低。包括假如配置了8并发,由于参数或服务端本身限制原因实际生效3并发的场景。
  • 任务配置的限流。


离线任务如何调优?

调优通用逻辑

  • 走内网相对走公网速度、安全性、稳定性更优,跨国网络建议走专线打通内网。
  • 离线任务通常情况下并发("concurrent"参数)数越高,同步速度越快,部分插件需要配置切分键(例如"splitPk参数")才生效,否则使用单通道进行同步,具体可参见插件文档。注意资源可用并发数;单机任务并发上限15。
    "setting": {

     "speed": {

      "concurrent": 10

          }

      }

  • 写端数据库负载不高的情况下,可以关闭限流,不限流的情况下则会提供现有硬件环境下最大的传输性能。
    "setting": {

     "speed": {

        "throttle": true // 是否限流。

        "mbps": 1, // 具体速率值。

        }

      }

  • 大并发任务(>=8个并发)且独享数据集成资源组有2台及以上,可以开启分布式"executeMode":"distribute"
    分布式模式的计算逻辑:
    子进程数 = 并发数 / 6

消耗的总资源内存 = 子进程数 * 手动分配的内存

比如以最大的kafka_2_odps任务为例:120个并发分布式模式下  ->  总共切分了20个子进程  ->  每个子进程分配了8GB内存 -> 总消耗资源为 20 * 8 = 160

  • 将写端插件中前后置语句移出同步任务外执行。
  • 读端插件过滤条件中尽量使用索引字段避免全表扫描,避免或减少函数等复杂处理。


常用的插件调优

附:《数据集成支持的离线/实时数据源》

插件

调优/提速

典型场景

MySQL Reader

  • where条件中优先选择使用索引字段避免全表扫描,尽量避免使用函数处理等。
  • 上调并发需设置splitPk,不设置数据同步视作使用单通道同步该表数据。
  • 参考上文调优通用逻辑,优先考虑走内网、加并发。

\

Datahub Reader

\

  • 配置了8并发,任务实际并发只有1,原因是实际并发受限于datahub topic shard数,shard数只有1。

OTSStream Reader

\

  • OTSSream一直没有速度,原因是填写的结束时间大于了最新数据时间。

OTS Reader

  • 可以通过分片方式提升ots读取性能,具体可咨询OTS

\

ClickHouse Writer

  • 参考上文调优通用逻辑,优先考虑走内网、加并发。
  • batchSize参数:一次性批量提交的记录数大小,该值可以极大减少数据同步系统与ClickHouse的网络交互次数,并提升吞吐量。如果该值设置过大,会导致数据同步运行进程OOM异常。
    注:"jvmOption": "-Xms1024m -Xmx1024m",//JVM内存(仅独享数据集成资源组可以添加,需脚本模式配置,与"speed"参数同级)

\


实时同步

实时任务为什么会同步慢或延迟?

  • 网络
  • 走公网相对于内网速度较慢;跨域,跨国网络更建议走内网。
  • 数据库、引擎服务端、数据集成独享资源组网络的带宽(吞吐量TPS
  • 服务端本身的读写性能
  • CPU、内存、SSD 硬盘、硬盘、网络带宽。
  • 任务配置的读写端的并发数,部分还受限于源服务的特性,比如DataHub并发受限于shard数等。
  • 同步起始位点较早,需要一段时间来追平,只要界面延迟时间是在逐渐减小,就是在追平的状态。


实时任务调优或降低延迟的常见案例?

通用场景

【案例一】

现象:跨域、跨账号数据同步实时同步任务读不到数据,离线任务可以正常读到或者实时同步读取非常慢,延迟高;

原因:可能被cen带宽吞了,或者带宽太小。


读取MySQL相关场景

【说明】

  • MySQL输入基于Binlog实时订阅的方式实时读取配置的MySQL数据库表数据。
  • 延迟时间的计算方式:


【案例一】
现象:MySQL实时同步到ADB for MySQL延迟高调整并发不生效
原因:整库实时同步到ADB,因为支持DDL同步,所以目前并发数被系统控制到了和目标端表数目一致。同步1张表,并发数只能为1。页面的并发配置调整也无效。

如果使用ETL单表实时同步,不支持DDL同步(DDL消息会被忽略),如果存在主键列的话,用户配置的并发可以生效。


读取Kafka相关场景

【说明】

  • 读kafka的并发上限值受限于kafka的分区数


【案例一】

现象:实时kafka-odps显示当前同步位点1970年,52的业务延迟,当前起始位点为2022-03-21。

原因:这类问题一般都是源端数据设置的时间戳不对或者没有设置时间戳,需检查源端数据。


写入MaxCompute相关场景

【说明】

  • 如果源端数据比较稀疏,可以调大内存,调大Flush间隔,开启并行Flush,增大缓存队列,降低和MaxCompute的交互频率,可以减少小文件的数量,提升性能。

【案例一】

现象:数据写入MaxCompute等待时间远大于kafka数据读取等待时间。查看日志中,如图,读线程有48个,写线程只有3个,数据写入等待时间久。

原因:写的线程数少于读的线程数

解决:加并发,保持和读端一致,加到48。


(三)调度

参考上文“资源优先级


(四)计算引擎


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
1月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
3月前
|
SQL 机器学习/深度学习 分布式计算
dataworks节点任务
在DataWorks中,你可以通过拖拽节点以及连线来构建复杂的工作流,这样可以方便地管理多个任务之间的依赖关系。此外,DataWorks还提供了调度功能,使得这些任务可以在设定的时间自动执行。这对于构建自动化、定时的数据处理管道非常有用。
74 5
|
4月前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之怎么指定任务的执行时间
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
分布式计算 运维 DataWorks
DataWorks产品使用合集之如何实现任务的批量导入和导出
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
SQL DataWorks 安全
DataWorks产品使用合集之怎么跨项目移动sql任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5天前
|
数据采集 人工智能 DataWorks
DataWorks产品最佳实践测评
DataWorks产品最佳实践测评
|
23天前
|
SQL DataWorks 数据可视化
DataWorks产品体验与评测
在当今数字化时代,数据处理的重要性不言而喻。DataWorks作为一款数据开发治理平台,在数据处理领域占据着重要的地位。通过对DataWorks产品的体验使用,我们可以深入了解其功能、优势以及存在的问题,并且与其他数据处理工具进行对比,从而为企业、工作或学习中的数据处理提供有价值的参考。
48 6
DataWorks产品体验与评测
|
18天前
|
SQL DataWorks 搜索推荐
DataWorks产品评测与最佳实践体验报告
DataWorks是阿里巴巴云推出的一款高效数据处理平台,通过内置的数据集成工具和ETL功能,实现了多源数据的自动化处理与分析。本文介绍了DataWorks在用户画像分析中的应用实践,展示了其如何帮助企业高效管理数据资源,支持决策制定及营销优化。同时,文章还评测了DataWorks的产品体验,包括开通流程、功能满足度等方面,并与其它数据开发平台进行了比较,突出了DataWorks在易用性、性能和生态完整性上的优势。最后,对Data Studio新版本中的Notebook环境进行了初步探索,强调了其在提升开发效率方面的价值。
54 16
|
12天前
|
SQL 分布式计算 DataWorks
DataWorks产品测评|基于DataWorks和MaxCompute产品组合实现用户画像分析
本文介绍了如何使用DataWorks和MaxCompute产品组合实现用户画像分析。首先,通过阿里云官网开通DataWorks服务并创建资源组,接着创建MaxCompute项目和数据源。随后,利用DataWorks的数据集成和数据开发模块,将业务数据同步至MaxCompute,并通过ODPS SQL完成用户画像的数据加工,最终将结果写入`ads_user_info_1d`表。文章详细记录了每一步的操作过程,包括任务开发、运行、运维操作和资源释放,帮助读者顺利完成用户画像分析。此外,还指出了文档中的一些不一致之处,并提供了相应的解决方法。
|
21天前
|
机器学习/深度学习 数据采集 DataWorks
DataWorks产品评测:数据处理与分析的最佳实践
DataWorks是阿里巴巴推出的大数据开发治理平台,支持从数据采集、预处理、存储到分析的全流程操作。本文评测了其在用户画像分析中的应用,包括数据收集、清洗、特征工程、模型训练、结果评估及应用部署等步骤,展示了其在提高数据资产管理效率、支持多种编程语言和技术栈、集成丰富可视化工具等方面的优势。同时,文章也指出了DataWorks在使用过程中的一些不便与问题,并提出了改进建议。
56 17