业务系统产生大量数据,需要工具来管理它。了解用于实时数据库和基于流的复制的开源工具。
在过去的几年中,业务系统一直在生成大量数据,并且需要工具来管理数据。业务需求之一是将主要数据复制到辅助数据库。市场上有几种流行的工具可以将数据从主数据库复制到辅助数据库。本文将讨论用于实时数据库复制和基于流的复制的各种开源工具。
复制是在多个地方共享/存储信息以确保可靠性、容错性和可访问性的过程。复制选项描述如下:
主动/主动复制主动/被动复制
许多RDBMS(关系数据库管理系统)支持数据库复制,以将数据从主数据库系统复制到辅助数据库系统。数据库复制对于主动/主动复制来说很复杂,尤其是对于使用水平扩展功能的系统。数据库复制如图1所示,其中Web/企业应用程序的写入和读取操作是不同的。复制系统将始终与主数据库同步。在数据库复制过程中将考虑CAP(一致性、可用性和分区容错性)以避免数据复制问题。
图1:为Web/企业应用程序的单独读取操作复制数据
数据复制对于企业系统在整个网络中维护多个节点中的数据以实现数据可用性至关重要。关键方面包括以下内容:
多个地方的数据可用性节点间数据的可靠性数据冗余数据损坏或丢失时的数据恢复
开源数据复制工具
许多组织更喜欢基于其业务需求的数据迁移开源工具。有多种商业和开源工具可用于数据迁移。本文讨论了过去几年在开源市场上流行的四种工具。
副本数据库
这是最流行的开源数据复制工具,用于将批量数据从关系数据库传输到关系/NoSQL数据库。它卸载ETL活动。目前,支持的数据库有:
OraclePostgresSQLServerMySQLMariaDBDenodoCSVonlocalfilesorAmazonSKafka
ReplicaDB是一个命令行工具,可以支持任何平台。来自Kafka等系统的流数据不支持ReplicaDB。
图2:图像源-GitHub上的ReplicaDB
对称DS
这种用于数据库的开源复制工具支持过滤同步、多主复制和转换功能等功能。它可以与许多数据库进行压缩,并跨不同平台复制数据。使用SymmetricDS,以异构方式从数据库同步到数据库。表和列级同步配置可用。数据迁移是单向/多向的。高级架构如图所示。
图:使用SymmetricDS从Oracle到MySQL的数据复制
其他功能包括事务感知功能,其中记录和回放更改。在多主复制中,会自动检测并解决冲突。通信使用推/拉。
Talend
使用Talend的开源复制工具将数据源集成到干净和完整的位置。超过多个连接器可用于连接云中或本地的任何数据源。通过拖放功能使用GUI界面轻松开发数据管道。内部使用Spark平台,支持无时间线的海量数据复制。Talend与包括Amazon、Azure和Google在内的主要供应商合作提供数据复制解决方案。Talend被评为年Gartner数据集成工具魔力象限。商业版本也可用于数据复制。
使用Kafka进行复制
目前,大多数应用程序正在向使用Kafka的实时处理架构发展。出于这个原因,数据驻留在流媒体平台中,需要将数据从流媒体平台复制到DB/NoSQL/其他系统。使用ApacheKafka和Kafka连接器框架将数据从源数据库复制到目标/目标数据库。图4提供了高级架构。
图4:ApacheKafka和KafkaConnector之间的数据复制
高级流程步骤如下:
在源数据库表上启用更改数据捕获(CDC)以进行复制KafkaDB连接器从源数据库读取CDC并将数据推送到Kafka主题JDBC接收器连接器:从源/目标数据库的Kafka主题中推/拉数据(按表配置)
结论
希望您在结束本文时了解数据复制和用于数据复制的开源工具。应用程序使用可以根据商业或开源数据复制的业务需求做出决策。除了这些工具,我们还描述了使用流平台以及接收连接器在不同数据库之间进行数据复制的数据库复制。