摘要:数据库作为最关键的基础设施,随着互联网时代的信息高速增长,关系型数据库因其高门槛、高成本以及扩展性差等原因导致的局限性逐渐浮出水面,如今更是面临诸多问题和挑战,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等中采集数据。
 
 
基于Log的数据同步
 
-图形化界面的任务设计,简单而直观
-实时过程监测
-断点续传
可视化编辑器让复杂的模式转换更加简单
 
-基于源数据设计类型自动推荐目标数据模型
-在可视化编辑器内手动微调数据模型
-数据模型预览功能
 
Tapdata Replicator特点
实时同步
-基于数据日志文件,无需代理
-秒级同步DML和DLL操作
 
横向扩展
-单节点每秒10万条数据吞吐量,
-可扩展至多个节点
数据一致
-在源端和目标端自动实施数据验证
 
双向同步
-从关系型数据库到MongoDB,也可以从
MongoDB 到关系型数据库
 
进一步了解Tapdata 实时数据服务平台,更多技术文章可前往 Tapdata 技术博客。Tapdata 自研的异构数据库实时同步工具—— Tapdata Cloud ,现已免费开放给技术开发者使用,目前支持 Oracle、MySQL、PostgreSQL、SQL Server、MongoDB、Elasticsearch 、达梦、Kafka等主流库之间的数据迁移和同步,即将支持 DB2、Sybase ASE、Redis、GBase、GaussDB 等。
 
本文为 Tapdata 原创技术文章,原文地址

使用Tapdata一步搞定关系型数据库到MongoDB的战略迁移的更多相关文章

  1. 轻松八步搞定Cacti配置安装(原创视频)

    轻松八步搞定Cacti配置安装 1.安装web server $sudo apt-get install apache2 验证 http://localhost 2.$sudo apt-get ins ...

  2. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

  3. APP设计师拿到APP产品原型开始,七步搞定APP设计(转)

    任何一款成功的APP都需要以坚实的产品概念作为基础,因为概念决定了产品最终完成的潜力. 一般情况下,交到app设计师手里的都是移动app产品原型图.当然这个是在移动产品经理反复斟酌,并且与大家开会讨论 ...

  4. iOS开发三步搞定百度推送

    iOS开发三步搞定百度推送   百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...

  5. SmaterWeatherApi---签名加密和数据訪问--简单粗暴一步搞定

    -----------------------------------------------------更新-2014-07-09---------------------------------- ...

  6. 破解jar包5步搞定,jira7.9.2操作成功,附github代码库

    1,从要破解的程序中拷贝.jar包文件,运行1_jar.sh将其解压.以jira7.9.2为例: $install_dir\JIRA\atlassian-jira\WEB-INF\lib\atlass ...

  7. Docker 一步搞定 ZooKeeper 集群的搭建

    Docker 一步搞定 ZooKeeper 集群的搭建 背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 ...

  8. NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用

    业精于勤,荒于嬉:行成于思,毁于随. 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用. 前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点 ...

  9. NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具

    业精于勤,荒于嬉:行成于思,毁于随. 我们上次说到NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 这次我们介绍安装  NoSQL Manager for MongoDB 可 ...

随机推荐

  1. Emacs基础使用教程及常见命令整理

    前言:最近使用Emacs,因此整理了官方中文教程中的一些知识点和常用的命令,方便查阅使用. 对于用习惯Windows的人来说,想要入门Emacs不是一件特别容易的事,但好在Emacs提供了官方的教程文 ...

  2. centos下安装ansible自动化工具(超详细,包含基本使用)

    ansible官网:https://www.ansible.com 众所周知,ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef ...

  3. 《图解UE4渲染体系》Part 1 多线程渲染

    上回书<Part 0 引擎基础>说到,我们粗略地知道UE4是以哪些类来管理一个游戏场景里的数据的,但这仅仅是我们开始探索UE4渲染体系的一小步. 本回主要介绍UE4渲染体系中比较宏观顶层的 ...

  4. 通过 SingleFlight 模式学习 Go 并发编程

    最近接触到微服务框架go-zero,翻看了整个框架代码,发现结构清晰.代码简洁,所以决定阅读源码学习下,本次阅读的源码位于core/syncx/singleflight.go. 在go-zero中Si ...

  5. SQL注入绕过总结

    花括号绕过 select{x password}from{database.user} union select 1,{x 2},3 特征字符大小写绕过 UniOn SEleCt 1,2,3 MYSQ ...

  6. 从零开始学YC-Framework之初步

    本文主要内容为如下几个方面? YC-Framework的取名出于什么考虑? YC-Framework的特点有哪些? YC-Framework的模块由哪些组成? 为什么要开发YC-Framework? ...

  7. ucore lab6 调度管理机制 学习笔记

    这节虽叫调度管理机制,整篇下来主要就讲了几个调度算法.兴许是考虑到LAB5难,LAB6就仁慈了一把,难度大跳水.平常讲两节原理做一个实验,这次就上了一节原理.权当大战后的小憩吧. schedule函数 ...

  8. windows下载安装JDK8

    一 .下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 根据自己的电脑安 ...

  9. mybatis两种嵌套查询方式

    1,推荐用第一种 <select id="getTeacher2" resultMap="TeacherStudent"> select s.id ...

  10. 1903021121—刘明伟—Java第四周作业—java分支语句学习

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第四周作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果). 扩展阅 ...