2022年11月15日 • 作者:
数据库同步软件是指将数据从来源端采集、转换、并加载至目标端的软件系统,可提供不同网络环境下、异构数据节点之间数据移动及同步能力,可为大数据产业中数据采集和加工服务、数据分析服务、数据治理服务、数据交换服务提供支撑。
随着大数据技术的发展,数据库同步软件已经广泛地应用于数据的采集、分发、流通和副本管理等领域。海量数据从生产到发挥价值,需要经过大量的采集、处理、分析等环节,其中数据同步作为大数据生命周期的第一环节,是释放数字价值的前提。数据库同步软件可将海量数据实时传输至大数据平台,或分发至各数据需求部门,为数据仿真、分析、决策、风控等场景提供实时、安全、可靠的数据,是大数据时代的关键基础设施。
目前很重要的一种数据库同步软件同步方式是实时增量同步(日志解析),即解析数据库的变更日志,比如MySQL的Binlog日志,Oracle的归档日志文件。通过读取这些日志信息,收集变化的数据并将其解析到目标存储中即可完成数据的实时同步。这种读操作是在操作系统层面完成的,不需要通过数据库,因此不会给源数据库带来性能上的瓶颈。
数据库日志解析的同步方式可以实现实时与准实时的同步,延迟可以控制在毫秒级别的,其最大的优势就是性能好、效率高,不会对源数据库造成影响,目前,从业务系统到数据仓库中的实时增量同步,广泛采取这种方式。当然,这种方式也会存在一些问题,比如批量补数时造成大量数据更新,日志解析会处理较慢,造成数据延迟。
另一种常见的数据库同步软件同步方式是直连同步,是指通过定义好的规范接口API和基于动态链接库的方式直接连接业务库,比如ODBC/JDBC等规定了统一的标准接口,不同的数据库基于这套标准提供规范的驱动,从而支持完全相同的函数调用和SQL实现。比如经常使用的Sqoop就是采取这种方式进行批量数据同步的。
直连同步的方式配置十分简单,很容易上手操作,比较适合操作型业务系统的数据同步,但是会存在以下问题数据同步效率与性能瓶颈的问题。
1)数据同步时间:随着业务规模的增长,数据同步花费的时间会越来越长,无法满足下游数仓生产的时间要求。
2)性能瓶颈:直连数据库查询数据,对数据库影响非常大,容易造成慢查询,如果业务库没有采取主备策略,则会影响业务线上的正常服务,如果采取了主备策略,虽然可以避免对业务系统的性能影响,但当数据量较大时,性能依然会很差。
根据同步模式不同,数据库同步软件还分为批量同步和实时同步。
批量数据库同步软件主要用于在大数据集群、数据仓库与传统的数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到大数据存储系统中,也可以将集群上的数据导进到关系型数据库中。它可以高效、可控地利用资源,可以通过调整任务数来控制任务的并发度。另外它还可以配置数据库的访问时间等等。它可以自动的完成数据类型映射与转换。我们往往导入的数据是有类型的,它可以自动根据元数据模型来判断数据类型,把数据库中的类型转换到集群上或者数据仓库中对应类型,当然用户也可以自定义它们之间的映射关系。它支持多种数据库,比如,Mysql、Oracle和PostgreSQL等数据库。对于某些NoSQL数据库它也提供了连接器。
实时数据库同步软件是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务。实时数据库同步软件具有高可用、分布式、配置化的能力,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到大数据平台(包括分布式存储系统、分布式数据库系统、数据仓库系统等)。它能够将不同数据源的海量日志数据进行高效收集、聚合、移动、最后存储到一个中心化数据存储系统中,可适应各种方式的日志收集,并支持故障切换和负载均衡。