使用 Tapdata 一步搞定关系型数据库到 MongoDB 的战略迁移
摘要:数据库作为最关键的基础设施,随着互联网时代的信息高速增长,关系型数据库因其高门槛、高成本以及扩展性差等原因导致的局限性逐渐浮出水面,如今更是面临诸多问题和挑战,Tapdata 专注新一代实时数据处理技术,为企业提供与现代软件架构相结合的数据服务解决方案( Tapdata 实时数据服务平台)。
数据库作为最关键的基础设施,渗透技术领域的方方面面。随着互联网时代的信息高速增长,关系型数据库因其高门槛、高成本以及扩展性差等原因导致的局限性逐渐浮出水面,如今更是面临诸多问题和挑战,在这一大环境下,NoSQL 的进一步发展已成必由之势。面对现状,有的企业选择在关系型数据库领域寻求突破,大胆尝试以创造机遇。也有用户选择了数据库迁移这一策略,然这一过程也将面临颇多难题。
以 MongoDB 为例,NoSQL 对比关系型数据库,各自优缺点及适用场景
Oracle、SQLServer、MySQL 诸如此类的关系型数据库的优势就是他们使用的 SQL 查询语句功能非常强大,表达力很丰富。无论多复杂的问题,基本上都能够用一个或几个 SQL 语句完成。关系型数据库的 ACID 事务性,虽然各个数据库支持力度不同,但是总体来说都有不错的能力和应用程序服务器配合为程序员提供较好的事务模型,保证数据库内数据及规则的一致性。
而以 MongoDB 领头的 NoSQL 数据库阵营中,则以动态数据模式和横向扩展能力为主打利器,是针对于现代的数据问题提出的解决方案。动态或者可变模式是处理新一代多变多态数据的最重要能力,否则技术团队将沦陷于无休止的关系型模式设计、迭代、数据迁移的繁琐工作中。横向扩展能力则是从 MySQL 集群迁移到 MongoDB 的主要诱因:MongoDB 的分片技术,借助于数据相对独立,容易分布的 JSON 文档模型,在处理海量数据能力上具有更可靠的的水平扩展能力和易管理性。
从技术应用场景来说,MongoDB 特别适合数据量较大(亿级以上)、数据结构复杂多变,以及绝大部分的现代 Mobile 和 Web 应用。对使用 Microservices 架构的,可以大胆考虑 MongoDB,因为在微服务架构下对强事务的需求相对会少很多。
MongoDB 常见的企业应用设计模式或使用场景,DaaS 这一应用模式正在受热捧
MongoDB 常见的企业级应用模式有几种,如 DaaS、Single View、ODS、Mainframe Offloading 等。其实这几种都是 CQRS 设计模式中的某种体现。在这里,DaaS(Data as a Service) 就像 SaaS 模式一样,把数据作为一种功能来提供给客户端,也即应用程序。这些数据通过 API 的方式让应用程序可以完成所有数据的需求,无论是简单 CRUD(通过 REST)还是传统的报表分析(SQL 或 Big Data API),或是基于事件的 Messaging。
这里最关键的中间层:persistence。我们这里需要一个有巨大横向扩展能力,同时又有毫秒级响应能力的联机交易数据库,才可以把我们的数据即服务架构搭起来。苏格兰皇家银行 RBS 早就开始 DaaS 的研究,但是最近才找到合适的存储平台——MongoDB 来进行他们的 IT 革新。他们打算把一万多 SQLserver,数千台 Coherence,数百个 Oracle 的复杂数据平台逐渐过渡到以数据即服务的一个平台,利用新一代数据库的海量处理能力和模式的灵活性,进行大规模的整合去重。目前已经迁移了十多个应用、数十个关系型数据库到新的平台。
整个数据库市场未来发展趋势以及潜在挑战
数据库市场是软件行业中最大的市场,因为没有哪一个应用场景可以离得开它。Oracle(数据库)的发展早就已经停滞并在萎缩。全球各大企业的 CIO 都在企业数字化的过程中积极探索新一代的数据解决方案。NoSQL 数据库由于其对非结构化、半结构化数据的支持,以及高并发、海量数据的横向扩展能力支持,已经被行业所认可并成为现代数据库布局不可缺少的一个部分。很多大型企业,类似于巴克莱、花旗、汇丰,甚至于全球最大最出名的手机公司都在建立基于 MongoDB 的新一代数据库,用于弥补传统数据库的不足。
如何把数据从关系型数据库里迁移到 MongoDB 里来。常见的迁移工具如 Informatica、GoldenGate 等并不能对 MongoDB 很好支持。钛铂数据基于对行业需求的敏感,推出了一个实时的关系型到 MongoDB 的同步兼模型转换工具 Tapdata Replicator。
Tapdata Replicator 包括任务调度设计、监控、告警,模式匹配,故障自动转移、日志管理、断点续传,同步验证等功能。能够从各种数据库,比如 Oracle、MySQL、SQLSever、DB2 等;不同的流数据,比如 Kafka、MQTT、Log、Socket 等;不同的文件,比如 Excel、CSV、XML、Binary 等中采集数据。
![](https://static001.geekbang.org/infoq/bd/bd1fa83227b0aa080f4da02d80117974.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/8f/8fe0e8b80f450763b3890a116cfe9793.png)
进一步了解 Tapdata 实时数据服务平台,更多技术文章可前往 Tapdata 技术博客。Tapdata 自研的异构数据库实时同步工具—— Tapdata Cloud ,现已免费开放给技术开发者使用,目前支持 Oracle、MySQL、PostgreSQL、SQL Server、MongoDB、Elasticsearch 、达梦、Kafka 等主流库之间的数据迁移和同步,即将支持 DB2、Sybase ASE、Redis、GBase、GaussDB 等。
本文为 Tapdata 原创技术文章,原文地址。
评论