`
猫耳呀
  • 浏览: 166415 次
社区版块
存档分类
最新评论

DRDS到MaxCompute(原ODPS)数据归档性能优化测试

阅读更多
摘要: cdp同步基本原理 数据集成(Data Integration)是阿里巴巴集团提供的数据同步平台。该平台具备可跨异构数据存储系统、可靠、安全、低成本、可弹性扩展等特点,可为 20 多种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。
 
一、cdp同步基本原理
 
数据集成(Data Integration)是阿里巴巴集团提供的数据同步平台。该平台具备可跨异构数据存储系统、可靠、安全、低成本、可弹性扩展等特点,可为 20 多种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。数据源类型的详情请参见 支持数据源类型。
 
数据集成的原理:
数据集成在阿里云上提供一套分布式离线数据同步平台,同时提供一套抽象化的数据抽取插件(称之为Reader)、数据写入插件(称之为Writer),并基于此框架设计一套简化版的中间数据传输格式,从而达到任意结构化、半结构化数据源之间数据传输之目的。从用户角度来看,一个数据集成同步任务运行Job示意图如下所示:
 
上述中,红色虚箭头是代表通过collector状态收集器监控数据返回到脏数据管理服务器进行数据分析,灰色方向箭头代表数据流向。DI Service主要是包含资源管理器、Job管理器、脏数据管理器、分布式服务、鉴权服务等。Job Container主要是将数据集成运行任务分成若干个task,然后通过scheduler调度管理。TaskGroup Container主要是数据抽取通过数据通道(channel)将数据写入。
 
• 使用数据集成Job启动API,向数据集成服务端发起调用,提交一个离线数据同步Job。
• 数据集成收到Job API请求后,将负责做必要的安全和权限校验,待校验通过后,数据集成会下发相应的Job到执行集群节点启动离线数据同步任务。
• Job启动后,根据您提供的源端(Reader)、目的端(Writer)的配置信息,加载并初始化相关插件,连接两端数据源,开始数据同步工作。
• Job运行过程中,将随心跳向数据集成汇报当前进度、速度、数据量等关键运行指标,可根据Job的状态API实时获取该Job运行状态,直至Job运行结束(成功或者失败)。
 
流程概述
 
步骤1:数据源端新建表。
步骤2:新增数据源。
步骤3:向导模式或脚本模式配置同步任务。
步骤4:运行同步任务,检查目标端的数据质量。
 
因为DRDS不支持存储过程,造一张实际生产的表有些复杂,所以采用通过RDS创建表数据,再导入到DRDS的方式
 
二、测试表准备:
 
通过RDS新建一张实际生产的表,数据量为一亿行左右(主键为自增)
通过存储结构插入数据(业务只需要天数是随机的):
delimiter
dropprocedurehuayu2;CREATEPROCEDUREhuayu2()begindeclarevarint;setvar
delimiter
 
三、测试要求
 
通过mysqldump在DRDS新建导入的表,以天为分表键,分表键的值是随机分布在3月1日-3月31日的。
 
将源表按分表键做拆分,1天拆成1个任务,并发向目标表里进行同步,同时目标表按天做分区,找到最佳并发量。
 
注意:分库键的选择为自增主键,不能是固定,否则hash的时候只落在一个库里面,分表键也是随机的日期,这样数据就能均衡的分布在各个库里面
 
四、具体实施步骤
 
1、将RDS的表导入到测试环境DRDS
mysqldump –urds_xncs_qps8 –p –P3306 –h 10.1.1.1 database test1 –t > /home/hy.sql
 
这里加上了-t参数,目的是不备份表的结构,这样做的好处是,导入到DRDS的时候,在DRDS端建一个相同名字的数据库,并且可以自定义分库分表键,这样就省略了再次去修改备份的.sql文件而达到分库分表的目的。当然,如果只是需要一个单表,那就复制表结构跟数据就好了
 
2、 将复制的表数据导入到DRDS
 
2.1、 通过mysql -udrds_uat_pcs –P3306 –h10.3.3.3 drds_uat_pcs -p < /home/hy.slq
 
2.2、 进入到目标表所在的数据库,执行source /home/hy.sql
这两种方式大同小异,第一种稍微快些,第二种会有过程在屏幕上展示。习惯用第二种
在刚开始导入的时候会一些报错,但是对实际的导入不会影响
 
3、具体测试
数据量:
mysql> select count(*) from t_pcs_bill_recieve_huayutest ;
count(*)
78322075
 
1、 一个工作流,分十个同步任务执行,
每个同步任务where条件对应3天,每一个同步任务对应一个分区,共10个分区
最大速率上线10M/s,
结构图:
各个任务耗时:
1、========================================================================
任务启动时刻 : 2018-03-28 11:47:15 任务结束时刻 : 2018-03-28 11:57:28 任务总计耗时 : 612s 任务平均流量 : 1.69MB/s 记录写入速度 : 20753rec/s 读出记录总数 : 12638734 读写失败总数 : 0
2、========================================================================
任务启动时刻 : 2018-03-28 11:47:15 任务结束时刻 : 2018-03-28 11:56:18 任务总计耗时 : 543s 任务平均流量 : 1.14MB/s 记录写入速度 : 14038rec/s 读出记录总数 : 7580943 读写失败总数 : 0
3、========================================================================
任务启动时刻 : 2018-03-28 11:47:17 任务结束时刻 : 2018-03-28 11:56:23 任务总计耗时 : 545s 任务平均流量 : 1.14MB/s 记录写入速度 : 14004rec/s 读出记录总数 : 7576202 读写失败总数 : 0
4、========================================================================
任务启动时刻 : 2018-03-28 11:47:17 任务结束时刻 : 2018-03-28 11:56:26 任务总计耗时 : 548s 任务平均流量 : 1.13MB/s 记录写入速度 : 13933rec/s 读出记录总数 : 7579645 读写失败总数 : 0
5、========================================================================
任务启动时刻 : 2018-03-28 11:47:10 任务结束时刻 : 2018-03-28 11:56:17 任务总计耗时 : 546s 任务平均流量 : 1.14MB/s 记录写入速度 : 13979rec/s 读出记录总数 : 7576799 读写失败总数 : 0
6、========================================================================
任务启动时刻 : 2018-03-28 11:47:15 任务结束时刻 : 2018-03-28 11:56:28 任务总计耗时 : 553s 任务平均流量 : 1.12MB/s 记录写入速度 : 13774rec/s 读出记录总数 : 7575981 读写失败总数 : 0
7、========================================================================
任务启动时刻 : 2018-03-28 11:47:17 任务结束时刻 : 2018-03-28 11:56:18 任务总计耗时 : 541s 任务平均流量 : 1.15MB/s 记录写入速度 : 14115rec/s 读出记录总数 : 7579924 读写失败总数 : 0
8、========================================================================
任务启动时刻 : 2018-03-28 11:47:17 任务结束时刻 : 2018-03-28 11:56:18 任务总计耗时 : 541s 任务平均流量 : 1.15MB/s 记录写入速度 : 14115rec/s 读出记录总数 : 7579924 读写失败总数 : 0
9、========================================================================
任务启动时刻 : 2018-03-28 11:47:15 任务结束时刻 : 2018-03-28 11:56:27 任务总计耗时 : 551s 任务平均流量 : 1.13MB/s 记录写入速度 : 13856rec/s 读出记录总数 : 7579604 读写失败总数 : 0
10、========================================================================
任务启动时刻 : 2018-03-28 11:47:17 任务结束时刻 : 2018-03-28 11:55:20 任务总计耗时 : 482s 任务平均流量 : 877.38KB/s 记录写入速度 : 10522rec/s 读出记录总数 : 5050713 读写失败总数 : 0
整体耗时:630秒
 
![image](https://yqfile.alicdn.com/8d8f3acb4098f6860aa698d56277bcdbf9c4f975.png)
 
2、 一个工作流,分五个同步任务执行,
每个同步任务where条件对应6天,每一个同步任务对应一个分区,共5个分区
最大速率上线10M/s,
 
结构图:
任务同步耗时:
1、========================================================================
任务启动时刻 : 2018-03-28 14:27:49 任务结束时刻 : 2018-03-28 14:37:42 任务总计耗时 : 593s 任务平均流量 : 2.09MB/s 记录写入速度 : 25605rec/s 读出记录总数 : 15158472 读写失败总数 : 0
2、========================================================================
任务启动时刻 : 2018-03-28 14:27:53 任务结束时刻 : 2018-03-28 14:37:36 任务总计耗时 : 583s 任务平均流量 : 2.12MB/s 记录写入速度 : 26093rec/s 读出记录总数 : 15160230 读写失败总数 : 0
3、========================================================================
任务启动时刻 : 2018-03-28 14:27:43 任务结束时刻 : 2018-03-28 14:37:33 任务总计耗时 : 589s 任务平均流量 : 2.10MB/s 记录写入速度 : 25775rec/s 读出记录总数 : 15156082 读写失败总数 : 0
4、========================================================================
任务启动时刻 : 2018-03-28 14:27:45 任务结束时刻 : 2018-03-28 14:37:36 任务总计耗时 : 591s 任务平均流量 : 2.10MB/s 记录写入速度 : 25729rec/s 读出记录总数 : 15154873 读写失败总数 : 0
5、========================================================================
任务启动时刻 : 2018-03-28 14:27:43 任务结束时刻 : 2018-03-28 14:38:01 任务总计耗时 : 617s 任务平均流量 : 2.34MB/s 记录写入速度 : 28768rec/s 读出记录总数 : 17692418 读写失败总数 : 0
整体耗时:629秒
3、 一个工作流,分十五个同步任务执行,
每个同步任务where条件对应2天,每一个同步任务对应一个分区,共15个分区
最大速率上线10M/s,
结构图:
![image](https://yqfile.alicdn.com/068c1c56b16baa1c3cc270eb286f7d46ff1a8990.png)
 
总体耗时:623秒
 
4、 一个工作流,分一个同步任务执行
最大速率上线10M/s,
结构图:
同步任务耗时:
任务启动时刻 : 2018-03-28 15:42:05 任务结束时刻 : 2018-03-28 15:57:16 任务总计耗时 : 910s 任务平均流量 : 7.02MB/s 记录写入速度 : 86257rec/s 读出记录总数 : 78322075 读写失败总数 : 0
总耗时:928秒
 
5、 一个工作流,分三个同步任务执行
最大速率上线10M/s,
结构图:
总耗时:699秒
 
6、 一个工作流,分四个同步任务执行
最大速率上线10M/s,
结构图:
总耗时:672秒
测试结果:
并发数 10 5 15 1 3 4 总耗时 630秒 629秒 623秒 928秒 699秒 672秒 并发数 1 3 4 5 10 15 总耗时 928秒 699秒 672秒 629秒 630秒 623秒
初步结论:
在并发为5、10、15的情况下,同步数据的速率基本没有变化630秒左右,在并发为1、2、3、4的情况下,速率由930秒提升到630秒左右,从而可以得出结论,在并发为5的情况下,同步速率已经达到最大,再增加并发对于速率的增加效果不明显。
 
阅读更多干货好文,请关注扫描以下二维码:
 
分享到:
评论

相关推荐

    阿里云DRDS简明教程-Ver1.04

    DRDS还能够无缝对接MaxCompute、AnalyticDB等大数据分析服务,实现数据的在线离线一体化管理。 “阿里云DRDS简明教程-Ver1.04”详细介绍了如何在Java环境中集成和使用DRDS,包括配置、操作、监控等方面。通过阅读此...

    阿里云分布式关系型数据库DRDS-开发手册-D.docx

    阿里云分布式关系型数据库DRDS是一种高性能、可扩展的关系型数据库解决方案,旨在帮助用户构建高效、可靠的数据存储系统。以下是对DRDS开发手册的总结: 一、分布式关系型数据库DRDS的特点 DRDS是一种分布式关系型...

    数据同步工具datax

    linux datax 同步工具离线数据同步工具,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。Github地址:...

    藏经阁-DRDS到ADS...[饮冰].1505740086.pdf

    阿里云大数据平台 DRDS 到 ADS 的数据同步节点任务配置详解 CDP(Cloud Data Platform)是一款阿里云大数据平台提供的稳定高效、弹性伸缩的数据同步云服务。用户可以通过 CDP 将 DRDS 数据同步至 ADS,以实现数据的...

    阿里云数据库DRDS解决方案.docx

    1. **稳定性**:DRDS利用分库分表技术将数据分散到多个RDS MySQL实例上,每个实例承载适当的负载,从而保证整体系统的稳定运行。相较于单机MySQL,DRDS能够更好地应对高并发和复杂计算场景。此外,DRDS还提供了一...

    DataX aliyun开源 DataWorks数据集

    DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

    DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台

    DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

    阿里云产品DRDS

    - **水平扩展**:DRDS支持通过数据分片(Sharding)技术来实现水平扩展,即数据被均匀分布到多个数据库实例上,从而提高系统的整体处理能力。 - **分库分表**:这是DRDS中的一个重要概念,指的是将原有的大型数据库...

    阿里云分布式关系型数据库DRDS-最佳实践-D.docx

    在实践中,分布式关系型数据库 DRDS 需要考虑到多个方面,包括数据拆分策略、事务边界、常用查询优化、异构索引和简单性策略等。只有通过综合考虑这些方面,才能设计和开发出高性能、可扩展、安全可靠的分布式关系型...

    分布式数据库DRDS.pdf

    1. **水平拆分**:DRDS提供了多种适合OLTP业务的水平拆分策略,能够有效减少单次数据库操作所涉及的数据量,从而显著提高并发处理能力和整体性能。 2. **垂直拆分**:支持跨多个RDS实例的数据库之间进行强一致事务...

    DRDS跨库事务文档

    DRDS(Distributed Relational...同时,后置执行功能进一步优化了事务处理性能,使得在确保一致性的基础上提高系统整体的运行效率。在进行系统设计时,应当根据具体的业务逻辑和性能要求,合理选择合适的事务处理方式。

    阿里云分布式关系型数据库DRDS-开发手册.pdf

    阿里云分布式关系型数据库DRDS(Distributed Relational Database Service)是一种专为大规模并发访问设计的数据库服务,它基于MySQL数据库引擎,旨在解决单机数据库在高并发、大数据量场景下的性能瓶颈问题。DRDS...

    阿里云 专有云企业版 V3.5.2 分布式关系型数据库服务DRDS 产品简介 - 20180831.pdf

    * 高性能:DRDS采用分布式架构,能够提供高性能的数据库服务,满足企业级的数据存储和处理需求。 * 高可靠性:DRDS 采用高可靠性的存储系统,确保数据的安全和可靠性。 * 高安全性:DRDS 采用多层次的安全机制,确保...

    hdfswriter.zip

    DataX是阿里巴巴集团开源的一款跨平台、高性能的数据同步工具,能够实现包括MySQL、Oracle、SQLServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS等数据源之间的数据迁移。...

    阿里云分布式关系型数据库DRDS-产品简介.pdf

    DRDS产品是一种基于云计算的分布式关系型数据库解决方案,能够满足企业对高性能、可扩展性和高可用性的需求。 其次,业务面临的问题中提到了单机数据库到达瓶颈的问题,包括存储容量瓶颈、访问容量瓶颈和容灾问题...

    drds最佳技术文档实践文档

    - **适用场景**:对于那些不需要独占DRDS实例、对处理能力要求不高的用户,如用于功能性测试的场景,且对性能没有特别要求的情况。 2. **专享实例**:专享实例为用户提供独占的DRDS实例,提供多种规格以适应不同...

    阿里云分布式关系型数据库DRDS-API介绍.pdf

    阿里云分布式关系型数据库DRDS(Distribute Relational Database Service)是一种基于RDS(Relational Database Service)的服务,旨在解决大规模数据处理中的分库分表、读写分离、平滑扩容以及全局唯一ID等问题。...

    datax-es:从mysql导入es 重写代码

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步...

    阿里云分布式关系型数据库DRDS-最佳实践.pdf

    "阿里云分布式关系型数据库DRDS-最佳实践" 阿里云分布式关系型数据库DRDS是一个高性能、...通过选择合适的拆分维度、缩小事务边界、优化常用查询、保持简单和选择合适的应用连接池,可以确保系统的高性能和可扩展性。

Global site tag (gtag.js) - Google Analytics