数据交换过程详解( 五 )


数据交换过程详解

文章插图
 
CDC的数据同步具有低影响、低延迟、高性能等特点 。这里以mysql为例采用Canal来说明实现CDC数据同步 。canal利用了mysql的slave协议将自己伪装为mysql的一个子服务器,向mysql master发送dump协议mysql master收到dump请求,就会将记录的日志信息给slave(也就是canal),canal解析日志信息获取需要同步的数据,数据交换平台通过Canal组件监听Canal服务获取到变化数据交给之后的增量数据输出组件根据CDC所捕获的操作类型(类型有:insert,update,delete)对目标数据库进行相同的操作来完成数据同步 。
这里Canal通过对日志数据的监听触发 。
4.3.4 指定周期的交换
数据交换平台作为一个批量数据处理系统,每天都会进行大量的数据处理作业,这些作业之间可能存在复杂的时序关联,因此必须有一个具备一定自动化程度的调度层,来实现作业有序、高效的执行 。
作业在运行前都需要在统一调度系统中注册,注册成功后再由调度系统自身的调度管理根据配置的任务计划决定作业的执行次序进行资源调配 。
数据交换过程详解

文章插图
 
调度包含以下内容:
  • 触发方式:在调度管理中定期根据日历、频度进行作业触发 。
  • 作业次序:触发后作业会根据之前设定好的数据性进行作业排序调整作业次序 。
  • 任务计划:任务计划会按照配置好的任务执行周期来进行任务调度 。
  • 资源调配:在执行调度的时候会根据注册的作业服务器的状况进行资源分配执行传输任务 。
4.3.5 事件驱动的交换
数据交换平台在与用户的系统进行集成式往往会遇到客户系统需要直接运行交换作业的情况,为此数据交换平台提供了一套基于事件触发的作业运行机制 。能够通过文件监听或者http调用来与用户的系统进行集成 。
数据交换过程详解

文章插图
 
交换服务能够通过监听文件目录或端口,当目录中有符合作业触发规范的文件时或接口被调用时,对文件中描述的计划按照之前设定好的数据性进行作业排序调整作业次序触发执行,并删除监听到的文件 。整个触发执行过程都会进入日志信进行留痕 。
4.4 新方式迎接数据挑战
4.4.1 批量数据交换
在进行数据交换时往往遇到的情况是要将整个库中所有的表进行迁移或同步,这些迁移或同步的大体逻辑往往相同,但库中的表非常多,传统的数据交换中是一张源表对一张目标表进行作业任务开发,造成开发人员巨大的工作量,表中的字段和和类型在进行配置时容易出错,效率低下 。
数据交换过程详解

文章插图
 
批量数据交换采用作业模板作为业务规格定义,结合资源目录能够通过简单地可视化操作批量数据源,对数据源进行批量的数据交换处理 。批量数据交换有以下特性:
  1. 基于作业模板实现业务能力定义
  2. 可批量进行整库的数据交换
  3. 自动控制数据交换中的各种数据转换
  4. 自动进行数据分批次交换传输
  5. 对交换的数据可配置数据脱敏
通过批量数据交换加强了大数据量的交换能力 。配置、部署、运维简单,能够有效提升开发人员的开发效率和质量 。
4.4.2 跨区域数据交换
跨域的数据交换在实际应用中,每个单位或部门从安全的角度考虑,都会设置前置机和防火墙,以及根据需求双方商定通讯方式编制相应的交换策略 。因此,实施难度会加大,实施进度也会拉长 。
数据交换过程详解

文章插图
 
以前遇到跨区域数据同步往往是先将数据转换为文件,然后通过p2p文件传输将文件发送到目标节点,最后目标节点拿到文件再将文件通过转换导入到目标数据源中 。
新的模式对下面几个因素都要考虑周全 。
  1. 简单 。交互的设计要简单,这对调用双方都有好处 。
  2. 安全性 。如何保证数据在交互过程中出现各种异常的情况下,数据不出错、不丢失 。
  3. 性能 。在选择的时候,要考虑数据量的大小,以决定一种合适的交换方式(比如:一次调用请求的数据量,请求调用的频率) 。
在新的交换模式下通过对节点的管理和注册,结合了文件传输高效、安全、稳定的特性,在进行跨区域数据同步时只需要配置源和目标的数据库信息按照既定的业务逻辑就能够完成跨节点的数据交换,文件传输的过程自动交由数据交换平台完成,减轻了跨域数据同步的复杂度 。


推荐阅读