MongoDB大中华区首席架构师唐建法:关系型数据库到MongoDB的战略迁移

【编者按】数据库作为最关键的基础设施,渗透技术领域的方方面面。随着互联网时代的信息高速膨胀,传统关系型数据库因其高门槛、高成本以及扩展性差等原因导致的局限性逐渐浮出水面,如今更是面临诸多问题和挑战,在这一大环境下,NoSQL的进一步发展已成必由之势。面对现状,有的企业选择在关系型数据库领域寻求突破,大胆尝试以创造机遇。也有用户选择了数据库迁移这一策略,然这一过程也将面临颇多难题。据悉,MongoDB大中华区首席架构师唐建法将在SDCC 2017·上海站之数据库核心技术与应用实战峰会带来题为《NoSQL之王:一分钟从关系型迁移到MongoDB》的分享。

以下为专访正文:

MongoDB大中华区首席架构师,MongDB中文社区mongoing.com发起人。

CSDN:请先和大家介绍下自己和您目前所从事的工作,以及关注哪些技术领域?

唐建法:我目前在MongoDB官方担任的是负责MongoDB相关解决方案架构师。关注的领域是新一代数据处理的相关技术以及更多的是如何与现代软件架构相结合提供完整的IT解决方案。

CSDN:是什么样的契机让您接触到MongoDB,并最终选择它作为自己的研究方向?MongoDB吸引您的特性有哪些?

唐建法:我是一个多年的开源软件受惠者和贡献者。第一次接触纯属偶然,那是在2011年,彼时我还在旧金山和几个朋友创业。有一天无意中走进了MongoDB主办的一个技术大会,抱着试一试的心态,我把代码迁移到Mongo上来解决困扰我们许久的MySQL性能问题。性能问题确实解决了,但是真正打动我的却是使用JSON格式来管理数据这一焕然一新的概念和非常直观的持久化API。数据还可以这么玩!

CSDN:能否以MongoDB为例,对比分析NoSQL与关系型数据库,简要谈一谈其各有什么优缺点及适用场景?

唐建法:这里有一张图可以帮助大家从3万尺高空来理解两者的大致区别。

图左侧是关系型数据库的一些共性。Oracle、SQLServer、MySQL诸如此类的关系型数据库的优势就是他们使用的SQL查询语句功能非常强大,表达力很丰富。无论多复杂的问题,基本上都能够用一个或几个SQL语句完成。关系型数据库的ACID事务性,虽然各个数据库支持力度不同,但是总体来说都有不错的能力和应用程序服务器配合为程序员提供较好的事务模型,保证数据库内数据及规则的一致性。而以MongoDB领头的NoSQL数据库阵营中,则以动态数据模式和横向扩展能力为主打利器,是针对于现代的数据问题提出的解决方案。动态或者可变模式是处理新一代多变多态数据的最重要能力,否则技术团队将沦陷于无休止的关系型模式设计、迭代、数据迁移的繁琐工作中。横向扩展能力则是百度云、京东、360等大型互联网公司从MySQL集群迁移到MongoDB的主要诱因:MongoDB的分片技术,借助于数据相对独立,容易分布的JSON文档模型,在处理海量数据能力上具有更可靠的的水平扩展能力和易管理性。

从技术应用场景来说,我认为MongoDB特别适合数据量较大(亿级以上)、数据结构复杂多变,以及绝大部分的现代Mobile和Web应用。对使用Microservices架构的同学,更可以大胆考虑MongoD,B因为在微服务架构下对强事务的需求相对会少很多。

CSDN:请您结合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的复杂数据平台逐渐过渡到以数据即服务的一个平台,利用新一代数据库的海量处理能力和模式的灵活性,进行大规模的整合去重。目前已经迁移了十多个应用、数十个关系型数据库到新的平台。

CSDN:数据库安全一直是备受用户以及开发者关注的话题,在MongoDB安全性问题方面您有什么相应的措施建议吗?

唐建法:前一段的赎金事件把MongoDB推到风口浪尖。最主要的原因当然是用户没有一丁一点的安全意识,把生产数据库放在公有云上不设密码,不开防火墙进行裸奔。官方明确建议上线前:

  • 开启鉴权,开启鉴权,开启鉴权!

  • 开启防火墙!

  • 使用白名单

  • 使用专用的账号来连接数据库

  • 只给用户最小可用的权限

  • 有必要的话启用TLS/SSL

MongoDB会在后续版本中进一步加强安全体系,默认就会开启鉴权,最大程度上防止由用户错误造成的损失。

CSDN:能否请您结合多年实践经验,谈谈对MongoDB,乃至整个数据库市场未来发展趋势以及潜在挑战的看法?

唐建法:数据库市场是软件行业中最大的市场,因为没有哪一个应用场景可以离得开它。Oracle(数据库)的发展早就已经停滞并在萎缩。全球各大企业的CIO都在企业数字化的过程中积极探索新一代的数据解决方案。NoSQL数据库由于其对非结构化、半结构化数据的支持,以及高并发、海量数据的横向扩展能力支持,已经被行业所认可并成为现代数据库布局不可缺少的一个部分。很多大型企业,类似于巴克莱、花旗、汇丰,甚至于全球最大最出名的手机公司都在建立基于MongoDB的新一代数据库标准,用于补足传统数据库标准的不足。

CSDN:在您看来,优秀的技术人应该具备哪些素质,您有什么经验想要和大家分享?

唐建法:(大致总结下列三条)

  • 好奇心:对新事物不要自动就排斥,有好奇心才会去学习;

  • 多分享:分享一个内容前,你自然会对它进行彻底的研究,使你在这个题目上有话语权;

  • 多浏览:多读英文文章,多看StackOverFlow等国外技术论坛。

CSDN:在本次SDCC 2016·北京站上,您将分享什么样的话题,同时期待看到哪些内容?

唐建法:我分享的题目是关系型到MongoDB的数据迁移。这些年来我和MongoDB用户交流的时候遇见最多的问题之一就是如何把数据从关系型数据库里迁移到MongoDB里来。常见的迁移工具如Informatica、GoldenGate等并不能对MongoDB很好支持。在这个讲座里我会给大家介绍迁移需要知道的一些步骤,文档模型设计的一些规则,以及给大家演示一个实时的关系型到MongoDB的同步兼模型转换工具。

MongoDB大中华区首席架构师唐建法:关系型数据库到MongoDB的战略迁移相关推荐

  1. 关系型数据库到MongoDB的战略迁移 - MongoDB大中华区首席架构师唐建法专访

    数据库作为最关键的基础设施,渗透技术领域的方方面面.随着互联网时代的信息高速膨胀,传统关系型数据库因其高门槛.高成本以及扩展性差等原因导致的局限性逐渐浮出水面,如今更是面临诸多问题和挑战,在这一大环境 ...

  2. 【大咖有约】MongoDB 大中华区首席技术顾问唐建法:如何在MongoDB中实现强事务...

    MongoDB 大中华区首席技术顾问唐建法先生将作为DTCC 2016中国数据库技术大会特邀嘉宾出席.并将于5月12日大会分会场2分享题为<如何在MongoDB中实现强事务>的演讲,敬请期 ...

  3. 专访MongoDB官方大中华区首席架构师唐建法:MongoDB将会领导数据处理新趋势 —— 一个操作型的数据平台...

    杭州·云栖大会将于2016年10月13-16日在云栖小镇举办,在这场标签为互联网.创新.创业的云计算盛宴上,众多行业精英都将在这几天里分享超过450个演讲主题. 为了帮助大家进一步了解这场全球前言技术 ...

  4. 知言 MongoDB首席架构师唐建法:20core处理27万混合读写操作实现

    MongoDB可以应用于各种规模的企业.各个行业以及各类应用程序的开源数据库.作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新.与此同时,它也为开发人员 提供 ...

  5. NOSQL MongoDB首席架构师唐建法:20core处理27万混合读写操作实现,并分享企业实现案例...

    MongoDB可以应用于各种规模的企业.各个行业以及各类应用程序的开源数据库.作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新.与此同时,它也为开发人员 提供 ...

  6. 阿里云首席架构师唐洪:拥抱开源的云端更具生命力

    近日, 国际开源界顶级会议LC3(LinuxCon + ContainerCon + CloudOpen)首次在国内举行,阿里云首席架构师唐洪作为特邀嘉宾出席并发表主题演讲.唐洪首先从一组数字开始,回 ...

  7. 【SDCC讲师专访】专访MongoDB唐建法:从关系型数据库到MongoDB的战略迁移

    [编者按]数据库作为最关键的基础设施,渗透技术领域的方方面面.随着互联网时代的信息高速膨胀,传统关系型数据库因其高门槛.高成本以及扩展性差等原因导致的局限性逐渐浮出水面,如今更是面临诸多问题和挑战,在 ...

  8. Tapdata 创始人唐建法:以秒级响应速度,为企业提供实时数据服务 | 阿里云云原生加速器特别报道

    作者:云原生加速器 数字化转型正当时,各行各业都在乘风破浪,加速数字化进程.随着信息化.数字化的不断渗透,企业在经营和业务过程中产生的数据爆发式增长.数据驱动增长的现实条件之下,对数据的获取.处理和应 ...

  9. 阿里云首席架构师解读开源和云端结合的三大优势

    本文讲的是阿里云首席架构师解读开源和云端结合的三大优势[IT168 云计算]6月20日,在LC3(LinuxCon+ContainerCon+CloudOpen)2017中国大会,在阿里云被宣布成为是 ...

最新文章

  1. Linux 常用检测命令
  2. BJUI修改详情页的标题内容
  3. 如何确定python开发环境已经配置好_python学习第一天:window安装python开发环境完整篇...
  4. 加密封装 怎么把_不要再封装各种Util工具类了,这个神级框架值得拥有!
  5. C++将一个数字转化为string的现成方法
  6. 老人机java游戏模拟器_java模拟器_Java手机游戏模拟器
  7. 旋转矩阵是正交矩阵与伴随性质的证明
  8. 信噪比与雷达探测距离之间关系
  9. echarts的全国和全球经纬度数据
  10. Elasticsearch5基于completion suggester实现提示词(类京东淘宝)
  11. 【SPH模型入门】很适合于新手的一篇文章
  12. 【博弈论】纳什定理及其证明
  13. 数据库常见问题汇总Subquery returns more than 1 row
  14. 100%完美解决 mac系统不能使用su命令问题 —— sudo和su的区别
  15. C语言编写一个简单的选择题答题系统
  16. 谭浩强C语身教程第一章---C措辞概述(2)
  17. 考研数学 - 初数基础整理07
  18. 物联网架构和技术:如何实现物物互联和智能化控制
  19. 利用xposed修改微信显示余额
  20. 发送短信验证码倒计时,CountDownTimer;

热门文章

  1. Java开发手册学习与详解-实习第1,2天
  2. Eclipse Theia技术揭秘——自定义布局
  3. CSS实现图片实现正方形的效果
  4. java串口编程-读取称重仪表中净重
  5. 花好月圆时,邀你一起来读诗!
  6. pr制作片尾滚动字幕
  7. 怎么把微信的表情包保存到手机
  8. 算法设计与分析: 6-24 最长距离问题
  9. python如下函数返回两个数的平方和_计算Lis中数字平方和的函数
  10. 南京财经大学计算机科学,南京财经大学计算机科学与技术专业2016年在河南理科高考录取最低分数线...