论文部分内容阅读
随着互联网技术的发展、智能终端设备的普及,网络上产生的数据在不断的激增。计算机存储技术伴随着数据时代的到来也在迅猛的发展,硬件方面,数据存储介质在继续改进和出新;软件方面,基于各种设计思想、架构方案的存储系统在陆续的出现。在这样一个数据驱动的时代,数据的价值也在不断的突显。然而在实际发展过程中,我们对数据的需求和应用并不是一成不变的,数据产品在设计初期的架构也不一定是绝对完美的。例如,产品底层数据架构是用于存储用户交互的数据,但是随着数据的增加和业务的发展,这些数据将会用于某些业务场景下的决策分析或可视化展示,此时,原有产品的底层数据架构,就不足以完全支持新有的业务,因此,可能需要引入新的存储系统来进行改善。在这种场景下,异构数据源之间的数据同步和迁移的需求就逐渐的显现出来。目前,现有的一些工具大多数只为完成与某种固定的数据存储系统进行数据同步和迁移而存在,在多种异构数据源的支持上并不是很完善;其他一些针对异构数据源之间进行数据同步的工具并不支持分布式运行,导致在海量数据同步的场景下存在单机性能瓶颈的问题。本文从数据同步需求入手,对各种应用场景进行深入研究和分析,提出了一种针对各种异构数据源之间进行数据同步的技术解决方案,该方案汲取了现有的一些数据同步工具的优秀设计思想,通过采用分布式、服务化等方式,使得在解决单机性能瓶颈、实时数据同步以及定时同步等业务场景的时候能有更好的支持。针对提出的技术解决方案,本文实现了基于它的数据同步框架。在使用方式上,该框架以一个中心化服务来运行,服务由多个服务器节点构成的集群来提供。整个服务框架一旦开启,就会一直运行,等待具体同步任务的上传。使用者通过框架提供的SDK来对具体的同步任务进行Job开发,而后将Job提交至服务集群,集群在接受到Job后,经解析、验证等复杂预处理操作以后便会进行相关数据源之间的数据同步工作。最后,本文对所实现的框架在不同数据集上进行了性能测试,并将测试过程中所收集的各方面数据进行了汇总和梳理。通过对这些实验数据的分析,同时结合框架的工作原理,本文对在测试过程中发现的问题进行了解释和说明,同时为后续框架的继续优化指明了方向。