二、 数据上云
数据传输服务(Data Transmission Service,简称DTS)是阿里云提供的实时数据流服务,支持关系型数据库、非关系型数据库,及OLAP分析型数据库等数据源间的数据交互,集数据同步、迁移、订阅、集成、加工于一体。
DTS能够让数据可以更好地流通,从线下流通到云上,在云上不同数据库之间流通。其优势主要在于以下几点:
第一,方便快捷。DTS提供可视化管理界面,不需要进行黑屏命令或其他复杂的操作,只需要在界面上进行任务的配置和流程安排,就可以创建订阅或同步任务。
第二,丰富多样。DTS支持的源库和目标数据库引擎丰富,支持从关系型到非关系型、从关系型到OLAP等跨引擎之间的数据传输。此外,DTS数据传输方式也十分丰富,包括数据迁移、同步、订阅、集成等方式。
第三,高性能。DTS采用阿里云自研的高可用架构、高性能的链路,峰值的传输数据速率可达70MB/S。
第四,安全可靠。DTS具有容灾、鉴权、断点续传及数据校验功能,能够保证数据的完整性和一致性。
DTS系统架构中,用户可以通过DTS控制台配置迁移、同步或订阅任务,并通过内部调度系统匹配不同的应用。例如,迁移任务需要通过迁移系统完成,同步任务需要通过数据同步系统进行。
另外,容灾和监控系统将不断监听任务是否正常。如出现异常,DTS将提供另外的高可用方案来保证其正常运行。
系统高可用性是指DTS内部每个模块都存在主备架构来保证系统的高可用性,容灾系统会实时检测每个节点的健康状况,一旦发现某个节点存在异常,会快速切换到其他节点。
数据源地址动态适配是指对于数据订阅及同步链路,容灾系统会监测数据源连接地址切换等变更操作,一旦发生了数据源连接地址变更,DTS会自动适配数据源新的连接地址。在数据源变更情况下保证链路稳定性,加强高可用性。
DTS三大功能指DTS数据迁移、数据同步和数据订阅,不同的功能有不同的应用场景。数据迁移一般用于一次性或大批量数据搬迁场景,能够将数据迁移到目标库内。例如,客户将业务从IDC、机房或线下初始化搬迁到云上时可以使用数据迁移。
数据迁移过程包含进行数据迁移的某一时间点及迁移过程中的数据,该时间点之前的所有数据为全量的数据迁移,迁移过程中源端数据库写入的数据即增量数据。DTS支持将增量数据迁移到目标库,以保证目标库和源库数据完整一致。
数据迁移过程包括结构迁移、全量数据迁移、增量数据迁移三个阶段。
结构迁移。DTS将在目标库中重新创建同源库保持一致的数据结构。异构数据库之间进行迁移时,DTS将会解析源库DDL代码,将代码转换成目标库语法,在目标库中创建新的结构对象。
全量数据迁移。DTS会将源库的存量数据全部迁移到目标库。源库保持运行状态且迁移过程中仍有数据更新时,DTS会使用增量数据读取模块来获取全量数据迁移过程中发生的数据更新。
增量数据迁移。当全量数据迁移完成后,DTS会检查本地存储的增量数据,并重新格式化,将数据更新到目标数据库。持续到所有进行的数据变更都复制到目标数据库,以保证源库和目标库数据完全一致。
数据同步是指将源库数据迁移到目标库,为什么需要数据同步?
第一,时效性高。数据同步能够将某一时刻中源端实例的数据变化,在短时间同步到目标库中,该功能在容灾或多活场景下应用广泛。
第二,数据变化丰富。数据同步可以完成插入数据、删除数据或数据更新的操作。虽然无法完成类似数据迁移的大批量迁移,但其时效或单个数据准确性较高。
数据同步包括同步初始化和数据实时同步两个阶段。初始化是将源端数据加载到目标数据库,数据实时同步是将在进行中的数据变更加载到目标库,来保证源端数据库和目标数据库中数据是一致的。
数据同步通过事务日志读取模块和事务日志回放模块来完成。
事务日志读取模块在源端实例读取原始数据,经过解析、过滤及标准格式化,最终将数据本地化,该模块会通过数据库协议连接并读取源实例的增量日志。
事务日志回放模块从日志读取模块中请求增量数据,根据用户配置的同步对象进行数据过滤。在保证事务时序和一致性的前提下,将日志同步记录到目标实例,保证两端数据一致。