一、数据集成的基础简介
数据集成是大数据平台上下云的核心枢纽,它的主要功能是把不同业务系统中的数据进行打通,实现数据自由离线或实时地流动,可以通过丰富的网络解决方案完成数据上下云。
数据集成2011年完成DataX 1.0和2.0的发布,2014年正式对外发布DataX 3.0版本,2018年完成三版合一,即公有云、专有云和阿里内部功能统一建立DataIntegration服务,可优化开发效率、降低运维成本;2019年独享资源组发布,数据集成正式商业化;2020年实时同步发布,实现全增量解决方案和资源组连通性单独测试。
数据集成有两大定位,第一是数据中台对接外界核心枢纽,即对接云上系统之间数据流转的打通;第二是跨云跨网一站式数据传输,即在数据集成中,所有数据的进出都可以提供一站式的解决方案。
(一)业务场景
业务场景一:搬站上云。即当用户需要把云下数据快速安全地迁移到云上存储并做进一步的业务分析时,如线下MySQL、Oracle到云上的MaxCompute,或者MC-Hologres、E-MapReduce等。上云过程中支持一次性全量或持续性增量,包括离线或是实时都可以。
业务场景二:实时数仓。支持批或流式数据汇聚进实时数仓,也可以做物联网相关的数据汇总分析,日志数据流的收集、分析等。
业务场景三:容灾备份。用户原始数据需要转移存储系统,做容灾或是长期备份时,比如MaxCompute上的数据可以写入OSS并做成文件,并可使用压缩方式节省存储空间,需要使用的时候也可以将OSS文件恢复为原表格等形式。
业务场景四:平台融合。可以同步云上各个产品的数据,比如第三方的云AWS、GCP等同步到阿里云;阿里云内部各个产品RDS、MaxCompute、OSS、PolarDB、AnalyticDB、Datahub等之间的数据同步等。
(二)业务价值
覆盖地域和行业:从地域覆盖来看,国内开放了8个区域,包含香港地区;国际上已经开放了11个地区,和阿里云基本持平。在行业分布上,已经覆盖了包括政府、金融、保险、能源、电力、制造、互联网和零售等常见领域,有着丰富的业务场景经验。
(三)核心能力
第一大核心能力是离线\实时全覆盖,从2020年开始数据集成支持了实时数据同步,因此覆盖了几乎所有数据流通场景。包括离线的数据同步,实现数据主动抽取,以及被动接收实时数据,感知数据变化,实现实时同步。
第二大核心能力是支持繁多异构数据源。离线支持超过50种数据源,实时支持超过10种数据源,并可以实现读写任意组合;覆盖关系型数据库、MPP、NoSQL、文件存储和消息流等各大种类。
第三大核心能力是支持复杂网络,无论数据源在哪里,比如公网、IDC、VPC等,数据集成都具备成熟的连接到数据源的解决方案。
第四大核心能力是同步解决方案,包括整库迁移、批量上云、增量同步、分库分表、一键实时全增量,这些都已产品化,用户通过简单的配置就能够完成。
第五大核心能力是安全控制,在任务和数据源上可以做到开发跟生产环境隔离、数据源权限安全控制、可以指定人员和项目分享数据源、最小粒度管控。
第六大核心能力是运维监控,可以实现流量控制、脏数据控制、资源组使用监控以及支持包括电话、短信、邮件和钉钉的任务告警设置等。
二、数据集成的技术架构
(一)技术架构
数据集成是跟DataWorks深度融合的。底层是执行层,可以对接到DataWorks的Alisa引擎,还包括马上就能够实现对接的Yarn引擎和Kubernetes等。往上有插件中心控制数据源插件,可以不停的向上扩充,增强各种数据的读写能力。
在管控层可以对作业进行渲染、调度、管控、执行以及资源组管理,还可以进行计量计费的细节反馈,跟DataWorks的权限管控做深度融合等。这些任务依托于DataWorks实现了代码的管理。
再往上是接入层。首先通过DataWorks提供的IDE可视化环境实现可视化开发,同时也能配合DataWorks支持OpenAPI的开发,也就是用户除了使用DataWorks的界面操作,也可以使用OpenAPI的方式直接把数据集成能力包装在自己的功能或是产品里,这样上下游就对接了DataWorks各大模块能力。
(二)引擎架构
数据集成采用的是新型的引擎架构,意味着无论是什么样的数据源,只要接入到这个引擎就能跟其他数据源组成一种相当于一对一或多对一的同步链路。任何两种数据源之间都可以进行组合搭配,每增加一种数据源,其可能性就增加几十种。这种能力为数据链路的扩充性提供了很好的支持。
三、资源组和网络能力
(一)资源组对比
数据集成分三大资源组,包括独享资源组、公共资源组和自定义资源组。可以从8个维度来看它们之间的区别。
首先是计算资源归属。公共资源组的计算资源是所有租户共同竞争使用的,整体维护由DataWorks承担;独享资源组也是由DataWorks来维护,但是由用户自己来独享的;自定义资源组,是用户自己的IDC机器,用户自己维护。
第二是网络支持。公共资源组支持公网、阿里云经典网络和阿里云的内网三种类型,但是不支持阿里云的VPC;独享资源组和自定义资源组支持公网、阿里云VPC和阿里云内网,但是不支持阿里云经典网络。
第三是DataWorks版本。公共资源组和独享资源组所有版本都支持。自定义资源组只支持专业版及以上版本。
第四是支持数据源。公共资源组和自定义资源组支持部分数据源,独享资源组支持全部数据源。
第五是安全性和可靠性。公共资源组由于是用户公用,抢占资源多的会给少的用户造成延迟等问题,所以安全和可靠性较低;独享资源组安全性和可靠性极高;自定义资源组取决于用户机器环境。
第六是任务执行效率。公共资源组由于资源抢占,任务执行效率低,没有保障;独享资源组的任务执行效率极高;自定义资源组取决于用户机器环境。
第七是适用场景。公共资源组适合做一些非重要、非紧急的零散任务,或者测试性任务;独享资源组适合大量、重要的生产级别任务。自定义资源组一般是用户自身已有的资源,或者所有数据源都在IDC内部,从自己一个IDC到另外一个IDC这种情况,使用自定义资源组成本相对低一些。
第八是收费方式。公共资源组是按量收费,独享资源组包年包月,有不同计算资源规格。自定义资源组仅收取DataWorks专业版版本费用。
综合来看,推荐用户使用独享资源组。
(二)网络解决方案
不同资源组的网络解决方案方式和能力都有不同,通常有4大类情况。
第一类是数据源具备公网访问能力,3种资源组都可以跟这组数据源进行连接,进行网络打通从而实现数据同步。
第二类是最常见的情况,数据源在VPC内,这时公共资源组无法连通,只能使用独享或自定义资源组。这里又分两种情况:
- 情况一:数据源VPC与DataWorks在同一地域。在独享资源组里,对应的方案是先绑定VPC,如果可用区不同,则在控制台添加路由来进行网络打通。
- 情况二:数据源VPC与DataWorks在不同地域。可以在DataWorks所在地域新建VPC,再用高速通道或是VPN连通两个VPC,然后将资源组和DataWorks所在地域的VPC做个绑定,最后在控制台添加路由,连接至目标VPC。
第三类是数据源在IDC内。通过独享资源组进行连通,方法是在DataWorks所在地域新建VPC,然后使用高速通道或VPN连通VPC与IDC,绑定DataWorks所在地域的VPC,再在控制台添加路由,连接至目标VPC。
第四类情况是数据源在经典网络内。这种情况比较少,建议把数据源迁到VPC内,我们有对应的方案。目前只有公共资源组可以直接连通经典网络。
对于自定义资源组来说方案就比较灵活,因为机器环境在用户自己那里,但是会遇到各种各样的情况。比如指定的VPC、IDC或经典网路内的某机器为资源组,需要具备访问公网的能力,或者VPC、IDC或经典网络内的数据源可以直接访问,再或是访问其他VPC、IDC或经典网络,需要客户自己使用高速通道、VPN或其他方式连接。
综上所述,建议用户使用独享资源组,界面操作方便且解决方案丰富。
四、离线同步
(一)离线同步的核心功能主要有4大特点
一、数据源种类多
二、解决方案丰富,可以支持全量和增量同步,整库和批量数据同步,也支持分库分表;
三、精细化权限管控。包括数据源权限安全控制、开发生产环境隔离,方便开发流程管控且权限清晰、同步流量控制;
四、支持复杂调度。与DataWorks深度融合,支持千万级别规模定时、条件调度,支持基线设定和报警处理。
(二)同步原理
离线同步从源端到目标端是通过数据集成引擎实现的。基于数据库JDBC协议或数据源的SDK进行源库数据的统筹拉取及分割任务,把一个任务分成多个Task,可以并发读取数据,加快数据同步。每个task里都有对应的读写子线程,读时可以从分割好的区域抽取源库数据,并把数据放到缓存里,最后由写入端writer通过调用JDBC或者SDK的接口把数据灌入到目标端。
(三)同步引擎支持的数据源
离线同步目前支持50+关系型数据库、非结构化存储、大数据存储、消息队列等数据源。这些数据源的读写是交叉的,可以组合成各种各样的同步链路来匹配实际生产中的需求。
五、实时同步
(一)实时同步特性
实时同步有5大特点:
第一大特点是数据源的丰富性。读取支持MySQL、Oracle、SQLServer、OceanBase、Kafka、LogHub、DataHub、PolarDB,写入支持MaxCompute、MC-Hologres(支持动态增加列)、DataHub、Kafka。它支持星型链路组合,任何一种输入源都可以和任何一种输出源搭配组成同步链路。支持一个任务一读多写多路输出。
第二大特点是支持简单数据处理,包括数据过滤、Groovy函数字符串替换等。
第三大特点是支持实时库的监控抽取,包括分库分表、单表、整库多表和DDL消息等。
第四大特点是监控运维告警。它可以监控业务的延迟、Failover、脏数据、心跳检查、失败信息等,并通过邮件、电话、钉钉实现告警。
第五大特点是解决方案系统,把实时和离线做了有机整合,可以支持常见数据库的整库全增量到MaxCompute、MC-Hologres(先全量、再持续增量)。
(二)实时同步架构
输入数据源经过实时库的抽取,包括分库分表、单表或整库多表,DDL,或是通过实时消息流的对接,实现抽取。然后进行数据处理,包括数据过滤、Groovy函数和字符串的替换。最后支持多路输出,即一读多写的实现,读一个数据源同时可以写入到多个数据源里,最终把数据输出出去。
(三)脏数据收集机制
脏数据可以进行统一收集,收集后可以从接口写入到收集的地方,包括本地日志、Loghub、MaxCompute都可以。
(四)实时同步核心技术点
支持MySQL、Oracle、Datahub、Loghub、Kafka实时同步到Datahub、Kafka等目的端,通过拖拽即可完成开发。同时也支持简单的数据过滤、替换及Groovy自定义处理能力。
六、实时同步解决方案
解决方案不是指面对单个任务单独做配置或同步,而是面向一系列使用场景,自动帮用户建立任务或启动任务等,把这些流程做统一整合成为解决方案。
(一)整库迁移
整库迁移即整库同步,可以把关系型数据库中所有的表一次性同步到MaxCompute里,帮助用户提升效率和降低使用成本。
(二)批量上云
批量上云是指可以支持多个数据源同时上传到MaxCompute,支持配置表名转换、字段名转换、字段类型转换、目标表新增字段、目标表字段赋值、数据过滤、目标表名前缀等规则,来满足业务的场景需求。
(三)解决方案系统
解决方案系统可以非常方便的将现有数据库通过简单配置后,完成存量数据的全量迁移以及后续增量的实时同步。
支持以下情况:
- 自动在目标库建表
- 自动建立离线同步任务
- 自动建立实时任务
- 自动启动离线任务
- 自动启动实时任务
- 自动建立和启动增量和全量的融合任务
- 全流程分布监控和展示、支持分布重试
七、收费模式
公有云收费模式与资源组相关,是基于4大点来进行收费的。
第一,按实例数进行收费。按实例并发数阶梯计费的前提是使用公共资源组,可以使用预付费的资源包来节省费用。
第二,包年包月收费方式。这个方式的前提是使用独享资源组,只按照机器规格和年月时长来进行收费,与运行实例数无关。
第三,版本费。在使用自定义资源组的前提下,开通专业版或更高版本即可。
第四,网络费。前提是使用公网和阿里云进行数据传输,可以按照流量收取费用,阿里云国内的统一标准是0.8元/GB。
数据集成介绍及实战请参考:https://developer.aliyun.com/learning/course/81/detail/1228
DataWorks官网:https://www.aliyun.com/product/bigdata/ide
大数据&AI体验馆:https://workbench.data.aliyun.com/experience.htm