阿里云DataWorks数据集成DataX架构amp实践分享.docx

上传人:b****1 文档编号:973804 上传时间:2023-04-30 格式:DOCX 页数:9 大小:22KB
下载 相关 举报
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第1页
第1页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第2页
第2页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第3页
第3页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第4页
第4页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第5页
第5页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第6页
第6页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第7页
第7页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第8页
第8页 / 共9页
阿里云DataWorks数据集成DataX架构amp实践分享.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

阿里云DataWorks数据集成DataX架构amp实践分享.docx

《阿里云DataWorks数据集成DataX架构amp实践分享.docx》由会员分享,可在线阅读,更多相关《阿里云DataWorks数据集成DataX架构amp实践分享.docx(9页珍藏版)》请在冰点文库上搜索。

阿里云DataWorks数据集成DataX架构amp实践分享.docx

阿里云DataWorks数据集成DataX架构amp实践分享

阿里云DataWorks数据集成(DataX)架构&实践分享

导读阿里云DataWorks数据集成是DataX团队在阿里云上的商业化产品致力于提供复杂网络环境下、丰富的异构数据源之间高速稳定的数据挪动才能和繁杂业务背景下的数据同步解决方案。

目前已经支持云上近3000家客户单日同步数据超过3万亿条。

DataWorks数据集成目前支持离线50种数据源可以进展整库迁移、批量上云、增量同步、分库分表等各类同步解决方案。

2020年度更新实时同步才能支持10种数据源的读写任意组合。

提供MySQLOracle等多种数据源到阿里云MaxComputeHologres等大数据引擎的一键全增量同步解决方案。

今天跟大众沟通内容是数据集成DataX的架构以及在使用数据集成这款产品经过中遇到的一些问题以及经历共享。

今天的介绍会围绕下面几点展开

为什么需要数据集成阿里云数据集成大事记阿里云数据集成产品定位以及业务支撑情况阿里云数据集成DataX设计核心思路阿里云数据集成DataX架构阿里云数据集成数据同步-核心亮点阿里云数据集成解决方案系统阿里云DataWorks数据集成关系智能实时数仓解决方案例如▌为什么需要数据集成数据集成的应用场景

首先为什么需要数据集成在大数据场景下数据集成主要是解决哪些核心问题我将其分为以下四个场景

第一个场景就是搬站上云。

搬站上云主要用来对接业务数据库完成初始化数仓比方用户需要把自己的云下数据库快速平安地迁移到云上存储并做进一步的业务分析如线下Mysql、Oracle到云上MaxCompute或是Hadoop中Hive上这既包含了一次性全量数据迁移还包含持续增量数据迁移。

第二个场景是构建实时数仓做流式的数据会聚。

主要包含应用产生的日志数据应用产生的消息数据以及应用对接数据库产生的日志数据数据库的Binlog或归档日志。

第三个场景是平台交融完成云上各个产品之间的数据同步以及交换。

既包含跨云平台之间的数据同步比方从AWS、GCP到阿里云还包含云平台内部之间的数据交换比方阿里云内部RDS、MaxCompute、OSS、PolarDB、AnalyticDB、Datahub等之间的数据同步。

第四个场景是容灾备份。

当数据分为冷热数据时需要把冷数据放到归档数据中极大节约本钱。

在数仓场景中可以以把云上计算好的一些结果数据回流到数据库中效劳于在线数据应用。

以上是数据集成主要支撑的四个典型的大数据场景。

数据集成的角色以及地位

数据集成在整个大数据数仓建立中的角色以及地位是什么简单概括为6个模块第一个是数据源里面包含了各种关系型数据库、文件存储、大数据存储、消息队列等。

这些异构的数据源可以通过统一的数据集成平台来将异构网络的异构数据源统一抽取到数据仓库平台在数据仓库平台中完成数据会聚进展统一的数据分析。

分析后的结果数据仍可以通过数据集成回流到在线数据库为在线业务、在线应用提供数据查询。

除此之外还可以利用一个承上启下的产品-数据效劳对接数据应用制作相关报表、大屏、应用等。

综上所述我们知道数据集成在整个数据仓库开发建立经过中起到了非常关键的作用只有通过数据集成将异构数据源统一汇总到数据仓库中才有后序的数据分析、数据效劳、数据应用等。

▌阿里云数据集成大事记

阿里云数据集成是为解析决数据仓库中这些经典问题而出现的。

阿里云数据集成是一款有历史渊源的产品。

2020年度伴随着阿里巴巴数据平台事业部成立当即推出了DataX的1.0以及2.0版本但当时大众对于这款产品还没有过多解析。

在2021年度数据集成才能登陆阿里云公有云、专有云开场正式对外提供效劳相应着DataX3.0版本发布。

并且于2016年度阿里巴巴将数据同步引擎DataX开源到社区助力大数据ETL生态建立。

2018年度DataX有了一个比拟大的架构晋级将公有云、专有云、阿里内部功能统一建立DataIntegration效劳进一步优化了开发效率节约了运维本钱。

2019年度在公有云将数据集成才能商业化2020年度发布数据集成的实时同步才能可以支持数据实时传输并且提供了一些实时同步场景解决方案。

总之阿里云数据集成是大数据平台上下云的核心枢纽可以将不同业务系统中数据互相打通实现数据自由离线或者实时的流动。

其致力于提供复杂网络环境下丰富的异构数据源之间高速稳定的数据挪动才能和繁杂业务背景下提供数据同步解决方案。

▌阿里云数据集成产品定位以及业务支撑情况阿里云数据集成产品定位

图中是阿里云数据集成产品的核心功能特性列表大众在自己制作或者选用数据集成产品的时候可以着重解析这些点做选型参考。

首先是离线以及实时全覆盖这款产品既支持传统的离线同步也支持及时高效的实时同步第二点针对各种复杂网络均做了相应的解决方案以及产品化才能无论数据源在公网、IDC还是VPC等数据集成都具备成熟的方法可以提供连接到数据源的网络解决方案第三点因为DataX是一个云上产品同时需要具备一些平安的管控策略我们将开发以及消费环境隔离进展数据源权限平安控制可共享独享资源组保障高可用第四点得益于这种可扩展性架构DataX可以支持繁多的异构数据源离线支持50种数据源实时支持10种数据源读写任意组合其中涵盖了关系型数据库、MPP、NoSQL、文件储存、消息流等各大种类第五点在大数据场景中往往存在特定场景的通用需求比方整库迁移、批量上云、增量同步、分库分表、一键实时全增量我们将这些通用需求抽象为数据集成的解决方案进一步降低用户使用数据集成门槛最后我们拥有一个非常完备的运维监控体系可以进展流量控制、脏数据控制可以对资源组进展监控另外还可以设置任务告警支持、短信、邮件、钉钉。

阿里云数据集成业务支撑情况

首先该产品如今拥有数千用户、数万名开发者每天同步的数据量在PB级别这些数据是由数千万个任务调度完成而且该产品已经做到了全球地域部署覆盖目前已经涵盖了政府、金融、保险、能源、电力、制造、互联网、零售等多个行业几乎每一个行业都有典型的客户以及场景。

▌阿里云数据集成DataX设计核心思路

首先左侧图是传统的数据ETL工具制作的方法是一种网状模型每种储存之间假如交换数据需分别设计一套数据传输软件。

比方在Mysql以及FTP之间交换数据需要实现一个Mysql到FTP的数据同步工具在Mysql以及Hdfs之间交换数据还要实现另一个同步工具这种方法扩展性非常差。

针对这种场景DataX做了一个非常核心的抽象就是右侧图中蓝色的线性模型每一种数据源统一通过DataX框架做数据交换当增加一种新的数据源类型便天然的具备以及DataX进展数据交换的才能。

下面着重介绍一下详细的实现思路首先每一种数据存储比方Mysql会有一个Mysql的Reader插件以及一个Writer插件Reader插件主要是用来读取Mysql中的数据读取的形式可以是离线的同步可以以是实时的Binlog同步Writer插件主要是用来写入数据。

DataX做了两个核心抽象第一个是接口抽象不管Reader还是Writer插件均有一套接口标准只要符合接口标准就可以纳入平台调度体系被平台调度以及使用。

另外一个抽象是数据类型标准每增加一种新的数据源只要符合数据交换标准就可以以及平台中已经支持的其他数据源进展交换以上就是DataX极具扩展性的原因。

我们在2016年度将数据同步核心同步引擎的一局部DataX开源到了社区地址为。

DataX是数据集成的一个核心同步引擎是我们同步才能的一局部今天除了要介绍一些开源的架构之外还会介绍一些商业版没有完全开源的局部功能的核心架构。

离线数据同步原理

首先是离线数据的同步原理每一个数据同步作业都是DataX上的一个程序进程DataX可以连接数据源头读取数据读取到数据以后写入到目的端。

数据源头的数据读取可以基于数据库的JDBC协议这些在一些关系型数据库或一些MPP数据库中已经非常常见了假如源数据系统是KafkaMQ消息队列等储存形式的话可以使用数据源对应的SDK进展读写。

一个任务在读取的经过中会发生切片、并发、执行Reader在读取数据以后会通过消费者消费者模型将数据传递给Writer端由Writer写入到目的储存里面。

实时数据同步原理

其次介绍一下DataX实时数据同步原理。

数据来源主要分为两类关系型数据库以及实时消息流。

关系型数据库可以有对应日志比方Mysql对应的Binlog日志Oracle的归档日志或数据变更捕获cdc。

这些日志会被日志抽取捕获到捕获方式有API以及SDK两种方式然后框架会将捕获到的内容做消息分解处理分解为insert、update、delete、alter等事件然后并行地将其存放。

我们支持关系型数据库、大数据、实时消息流等多种目的存储方式假如数据源就是实时消息流的话我们可以使用消息订阅形式订阅消息并且将消息同样做分解最终重放到目的端。

其中第一类关系型数据库复杂度还是比拟高的因为包含了数据的增删改以及DDL操作实时消息流主要是一些追加数据。

▌阿里云数据集成DataX架构DataX架构形式Standalone形式

在解析根底原理之后向大众介绍一下阿里云数据集成DataX的架构设计其中最经典的是大众比拟熟悉的Standalone形式Github上开源的即为这种形式。

Standalone形式将整个经过抽象为3个局部第一局部是framework框架框架主要用来提供一些核心的、共性的功能比方数据的数率控制、脏数据、任务执行指标的采集、汇总以及上报除此之外框架还具有一定的调度才能第二局部是Reader插件局部Reader插件主要是用来对接数据源头将源头数据读入其中第三局部是Writer写插件局部每一个目的存储类型都对应一个Writer插件可以将源头投递过来的数据写入到不同的目的储存里面。

上面就是一个非常简单的模型我们将一个数据同步作业称之为一个job为了最大化的进步任务执行速度以及效率我们会将一个job拆分成多个task任务每一个task都是一个完好数据同步作业的一个工作子任务用来完成对应工作期间数据传输以及投递task任务可以被我们调度框架进展调度执行。

task是分组的一个taskgroup可以有多个task子任务taskgroup会在worker节点中执行以及处理worker也是单机版本的这也是Github中开源的经典形式。

Distribute形式

除了Standalone形式以外我们在商业版本里面还有一些更强大的才能首先是分布式形式刚我们看到一个数据传输作业可以被分为多个task子任务task又可以分组成taskgroup这些task会被并发执行。

我们将前面讲的调度局部换成分布式调度模型我们可以将不同的TaskGroup分发到不同的worker节点上面就可以打破系统的单机瓶颈在面对海量数据同步的时候极大地提升数据传输效率。

分布式执行集群可以以做到线性扩展只要数据系统吞吐可以保障数据同步作业可以随着worker节点的增加而线性增加并且我们还做了一些异常节点的隔离等对应的一些分布式机制。

OnHadoop形式

第三个形式是OnHadoop形式也是商业化版本的一个才能。

当用户已经拥有一个Hadoop执行集群我们可以将DataX数据传输作业部署在已有的Hadoop集群里面Hadoop中常见的编程模型是MapReduce我们可以将DataX拆分的task寄宿在mapper节点以及reducer节点中通过Yarn进展统一调度以及管理通过这种方式我们可以复用已有的Hadoop计算以及执行才能。

这种形式以及开源的Sqoop框架是有一点类似的。

实时同步CheckPoint机制

下面介绍阿里云数据集成DataX关于实时同步的checkpoint机制checkpoint机制可以保证实时数据传输的稳定以及断点续传的才能。

假如你对Flink十分解析的话这张图会非常熟悉。

Flink是阿里团队开源出去的另外一个非常重要的实时计算引擎DataX框架也借助了Flink的checkpoint机制比方Flink会定期发送一些barrier事件以及消息。

我们的ReaderTask其实是source收到barrier以后会产生snapShotState并且barrier会传递到TransformerTaskTransformerTask可以用来做数据的转换TransformerTask收到barrier以后barrier进一步传递到WriterTask这个时候的WriterTask其实就是sink收到barrier之后会再做一次snapShotStateWriterTask会将我们的数据flush到目的储存。

接下来我们会trace跟踪barrier进度情况并且根据barrier进度情况把数据流消费的点位cache缓存下来并且可以进展持久化存储。

当任务出现异常或进程退出的时候我们可以继续从上一个cache点继续消费数据可以保证数据不会被丢弃但是可能会有短暂的数据重复一般后序数据引擎可以处理这种情况。

▌阿里云数据集成数据同步-核心亮点阿里云数据集成离线同步-核心亮点

大概情况一下阿里云数据集成离线同步的核心亮点。

主要分为以下四个局部第一局部是支持多种类的数据源DataX支持50常见数据源涵盖各种关系型数据库、文件系统、大数据系统、消息系统第二局部是解决方案我们为一些数据传输经典问题准备了对应的解决方案比方支持全量以及增量的数据同步支持整库、批量数据同步、支持分库分表我们将这些琐碎的功能整合成了产品化的解决方案直接通过界面操作即可完好复杂的数据传输经过第三局部是精细化权限管控才能可以对数据源权限进展平安控制并且隔分开发以及消费环境第四局部DataX支持复杂调度数据集成与dataWorks深度交融利用dataWorks强大的调度才能调度我们的数据传输任务。

阿里云数据集成实时同步-核心亮点

再大概情况下阿里云数据集成实时同步的核心亮点。

DataX是借助插件化机制对新的数据源支持扩展才能强。

DataX支持丰富多样的数据源支持星型链路组合任何一种输入源都可以以及任何一种输出源搭配组成同步链路。

DataX支持断点续传可以实时读取MySQL、Oracle、SQLSever、OceanBase、Kafka、LogHub、DataHub、PolarDB等可以将数据实时写入到MaxCompute、Hologres、Datahub、Kafka、ElasticSearch等储存系统。

另外DataX天然具有云原生基因以及阿里云产品交融度非常高。

DataX可以轻松监控运维告警提供运维大盘、监控报警、FailOver等运维才能可以监控业务延迟、FailOver、脏数据、心跳检查、失败信息并且支持邮件、、钉钉通知。

DataX支持一站式解决方案支持常见数据源整库全增量到MaxCompute、Hologres、ElasticSearch、DataHub等同时支持分库分表单表、整库多表、DDL消息。

▌阿里云数据集成解决方案系统离线数仓-整库迁移方案

下面将详细介绍一下阿里云数据集成解决方案首先是离线数仓的整库迁移的解决方案我们将数据集成中的一些典型场景抽象为数据产品解决方案可以帮助提升用户效率降低用户使用本钱。

右侧图片可以展示出源头数据库中所有的表列表直接选中需要的表选择对应的同步方式比方每日增量或每日全量选择分批上传或整批上传的同步并发配置就可以上传到MaxCompute中这种可视化操作可以知足大多离线数据迁移场景。

实时数仓-全增量解决方案

下面是实时数仓的全增量解决方案可以非常方便的将现有数据库通过简单的配置后完成存量的全量迁移和后续增量的实时同步。

支持在目的库中建表、自动建立离线同步任务、自动建立实时任务、自动启动离线任务、自动启动实时任务、自动建立以及启动增量以及全量的交融任务、全流程分布监控以及展示支持分步重试。

通过这种方案可以让用户不用原子化的关注每个全量任务以及实时任务的配置细节。

通过这一套解决方案可以完成整个数据的全量、增量实时数据的加工。

▌阿里云DataWorks以及数据集成的关系

前面介绍了阿里云数据集成开源以及商业架构以及才能接下来重点介绍阿里云DataWorks以及数据集成的关系。

DataWorks是阿里云提供的一站式开发、数据治理的平台交融了阿里云、阿里集团12年度之久的数据中台、数据治理的理论经历。

数据集成是阿里云DataWorks核心的一局部DataWorks向下支持各种不同的计算以及存储引擎比方阿里大数据计算效劳MaxCompute、开源大数据计算平台E-MapReduce、实时计算RealtimeCompute、图计算引擎GraphCompute、交互式分析引擎MC-Hologres等支持OSS、HDFS、DB等各种存储引擎。

这些不同的计算存储引擎可以被阿里云DataWorks统一管理使用后面可以基于这些引擎去做整个数据仓库。

DataWorks内部划分为7个模块最下面是数据集成可以完成各种该形式的数据同步数据集成之上是元数据中心提供统一的元数据效劳任务调度中心可以执行任务调度效劳数据开发方面不同的存储引擎比方实时计算以及离线计算其有着不同的开发形式DataWorks支持离线开发以及实时开发。

同时DataWorks拥有一套综合数据治理的解决方案会有一个数据效劳模块统一向上提供数据效劳对接各种数据应用。

最后将DataWorks各种才能统一通过OpenAPI对外提供效劳。

数据集成模块是可以单独对用户提供效劳单独使用的并不需要解析以及掌握所有DataWorks模块就可以将数据同步作业配置运行起来。

▌智能实时数仓解决方案例如

下面介绍一套智能实时数仓解决方案可以应用在电商、游戏、社交等大数据实时场景中。

数据源有构造化数据以及非构造化数据非构造化数据可以通过DataHub数据总线做实时数据收集之后由数据集成DataWorks完成数据集成可以实时写到Hologres中做交互式分析可以以将实时数据写入到MaxCompute中进展归档以及离线数据计算另外Flink可以以消费订阅数据做实时数据计算。

Flink计算结果同时又可以写入Hologres中可以以将实时计算结果做实时大屏以及实时预警。

Hologres数据可以进展OLAP分析。

构造化数据可以通过实时数据抽取或批量数据收集方式统一收集到DataWorks实时数据可以写入到Hologres或定期归档到MaxCompute离线数据可以通过批量数据加工到MaxCompute中来另外MaxCompute以及Hologres可以结合使用进展实时联邦查询。

上面这套解决方案可以将阿里云实时数仓全套链路与离线数据无缝衔接知足一套存储、两种计算实时计算以及离线计算的高性价比组合。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2