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

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

以下为专访正文:


图片描述

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

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

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

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

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

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

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

图片描述

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

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

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

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

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

  • 开启鉴权,开启鉴权,开启鉴权!
  • 开启防火墙!
  • 使用白名单
  • 使用专用的账号来连接数据库
  • 只给用户最小可用的权限
  • 有必要的话启用TLS/SSL

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

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

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

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

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

  • 好奇心:对新事物不要自动就排斥,有好奇心才会去学习;
  • 多分享:分享一个内容前,你自然会对它进行彻底的研究,使你在这个题目上有话语权;
  • 多浏览:多读英文文章,多看StackOverFlow等国外技术论坛。

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

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


SDCC 2017•上海站将于2017年3月17-19日登陆申城,三大技术峰会和24位嘉宾,汇聚国内知名的互联网公司CTO、架构师、技术总监,畅谈运维、数据库和架构的热门话题和技术热点,遇见精益运维发起人&优维科技CEO王津银、MongoDB大中华区首席架构师唐建法等大牛,五人团购报名立减1500元,详情点击注册参会

图片描述

海康威视4G摄像头直连实战:不用萤石云,手把手教你用ISUP SDK搞定跨网段视频流 本文详细介绍了如何通过海康威视ISUP SDK实现4G摄像头的直连通信,提供了一套零平台费、自主可控的技术方案。文章涵盖技术选型、设备端配置、服务器端开发及高级应用场景,特别适合中小型安防项目,帮助开发者解决跨网段视频流传输难题,降低长期运营成本。 阅读详情

相关推荐

2019美亚杯团体赛刷题 部分题解(1-42、106-116)

文章目录写在前面使用工具刷题1.在黑客路由器里,有一台设备的MAC地址为00:11:6B:47:4D:55,请问它的IP地址是什么?2.在黑客路由器里,发现一设备的IP地址为192.168.0.103,请问该设备为如下哪一个:3.警方已经查证所有连接此router的设备都归黑客所有,根據黑客路由器的訊息,下列哪组(设备---ip)是错误的:4.Hacker现场检获的Windows主机硬盘已成功取证并制作成镜像Win1.E01,下列哪个是其硬盘证据文件的MD5哈希值。5.MD5hash算法会产生一个什么大小的

7ruth0hn的博客 7544

MongoDB——全面剖析MongoDB高可用架构

本文介绍了 3 种 MongoDB 的高可用架构,Master-Slave 模式,Replica Set 模式,Sharding 模式,这也是常见的架构演进的过程;MongdbDB Master-Slave 已经不推荐,甚至新版已经不支持这种冗余模式;Replica Set 通过数据多副本,组件冗余提高了可靠性,并且通过分布式自动选主算法,减少了停服时间窗,提高了可用性;Sharding 模式通过横向扩容的方式,为用户提供了近乎无限的空间;5、

zhanglongfei1016的专栏 1456

保姆级避坑指南:在Ubuntu 18.04上搞定速腾Helios雷达驱动与fast-LIO2的完整配置流程

本文提供了一份详细的速腾Helios雷达与fast-LIO2在Ubuntu 18.04上的配置避坑指南,涵盖驱动安装、数据格式转换到建图全流程。特别针对常见编译错误和数据转换问题提供了解决方案,帮助开发者高效完成环境搭建与建图任务。

weixin_27252001的博客 113

MongoDB 发展历史及各主要版本新特性概述

作者 | JiekeXu来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)如需转载请联系授权 |(个人微信 ID:JiekeXu_DBA)大家好,我是 JiekeXu,江湖人称“强哥”,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCT...

JiekeXu的博客 3386

CAN接受和发送失败的原因有哪些---之前调试MCP2515驱动时,数据一直发不出去,三个发送邮箱都被占满.至今未解决,读寄存器-总线错误

0.CAN总线错误分析与解决–讲的最精辟的放在最前面 我们知道CAN总线上的每个节点往总线上发送数据的同时会同时读取总线上的数据,并与自己发送的数据作对比。—CAN仲裁??? CAN总线错误分别有发送和接收错误计数,计数达到一定的累计以后就会产生CAN BUS OFF, 这说明CAN总线上出现了严重的错误。如下图CAN总线产生错误后的状态转换机制 如果出现了BUS OFF,总线上的节点需要做一些动作,例如重启CAN控制器或是重新上电,但是这些都只是一些补救措施,最根本的还是需要找到引起BUS OFF的根源

dianqicyuyan的博客 2万+

RK3568笔记五十四:SORT实时目标追踪

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。

788

MongoDB在银行海量历史订单交易数据查询中的应用(Spring boot + Bee)

MongoDB在银行海量历史订单交易数据查询中的应用(Spring boot + Bee)近年来,随着各种便捷支付方式的普及,银行账户交易数据呈现爆炸式增长,同时数据模型也在不断变化,传统关系型数据库已难以满足这种海量的、模式灵活、高可用、高性能的数据存储和查询需求。通过对银行历史交易数据查询业务特点的分析,本文提出一种基于MongoDB数据库的银行海量历史订单交易数据查询解决方案,方案包括系统架构、数据模型、索引设计和分片键策略。实验表明,MongoDB能够实现海量的交易数据的存储和快速查询能力。

abckingaa的博客 1211

电源防反接保护电路全攻略实战A04

本文深入剖析了硬件设计中电源保护电路的关键技术与实战经验。文章指出,保护电路虽小但至关重要,通过对比分析二极管与MOSFET防反接方案,揭示了MOSFET在效率、温控方面的优势。针对过压保护,重点讲解了TVS二极管选型要点,强调钳位电压而非击穿电压才是保护核心。文章结合工业案例(如48V通信模块烧毁、5V系统MOSFET过热等),详细阐述了PCB布局规范、热设计路径等工程细节,并提供了USB接口ESD防护的完整选型方案。最后强调硬件设计必须考虑最坏工况,在成本与性能间找到平衡点,避免因小失大。

启芯硬件的博客 776

没有一个技术天生完美,MongoDB十年发展全纪录

2007年,MongoDB公司的前身10gen正式成立,2009年2月开源数据库MongoDB 1.0正式面世,以开源的方式进入市场接受考验。时至今日,MongoDB已经从一个在数据库领域籍籍无名的“小透明”,变成了话题度和热度都很高的“流量”数据库。2009年2月,MongoDB数据库首次在数据库领域亮相,打破了关系型数据库一统天下的局面;2014年12月, MongoDB 收购了WiredTi...

cpongo011702 772

科研绘图系列:R语言circos图(circos plot)

科研绘图系列:R语言circos图(circos plot)

专注生信领域 3431

【Agent实战】Agent Skills 深度解析:从原理到落地的完整指南

本文深入解析了Agent Skills的概念及其在AI协作中的实际应用。Skill是一种可被AI按需发现和加载的任务执行说明书,它将团队经验、规则和步骤固化为结构化文档,如SKILL.md。文章阐明了Skill与Prompt、MCP、Function Calling的关系,强调Skill专注于"怎么做"而非底层能力。重点介绍了SKILL.md的编写规范,包括元数据命名规则、描述技巧和正文内容优化,旨在帮助开发者高效构建可复用的知识资产,提升Agent的任务执行稳定性与专业性。通过清晰的示例和对比,为AI架构

少说,多做 115

【关系型数据库同步数据到MongoDB】——前言

最近做项目的时候,前期调研发现源数据库是关系型数据库,而我们需要使用MongoDB这样的非关系型数据库作为计算库,因为MongoDB在一定数据范围内,效率比关系型数据库高的多。因此,我们需要将关系型数据库的数据增量同步到MongoDB中。 我们的源数据库有两个,一个是Oracle,另一个是sqlserver,在调研Oracle的时候,我们实验了OGG,发现OGG虽然可以帮我们同步到MongoDB...

qq_23418043的博客 1452

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

常年“盘踞”数据库前五的 MongoDB,在中国有哪些新动向?

整理 | 夕颜受访者 |MongoDB首席客户官Richard KreuterMongoDB北亚区副总裁苏玉龙出品 | 优快云(ID:优快云news) 作为一个通用性的开源分布式文档型数据库,MongoDB自2007年推出后就很受欢迎。如今,这个数据库在全球100多个国家和地区有了20200余家客户,核心数据库产品下载次数超过1.25亿次,MongoDB大学也有了150多万名注册学生。 DB-Engines排名常年在前五 作为一家“老牌”数据库服务,MongoDB受欢迎的程度可以从D...

优快云高校俱乐部官方博客 757

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MongoDB入门介绍与案例分析

一、MongoDB 数据库定位 首先我们来看一下 MongoDB 是什么样的数据库。数据库分两大类: OLTP(Online Transaction Processing)联机事务处理。 OLAP(On-Line Analytical Processing)联机分析处理。 OLTP 指手机应用、网页应用,有交互式的。需求数据库能够提供毫秒级的响应。 OLAP 指可以在晚上跑一个批,做分析处理...

牛奔的博客 1125

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

何时弃用 MongoDB?| 技术头条

即使位列数据库排行榜的 Top 5,MangoDB 的日子也并不好过。自去年 10 月,MangoDB 宣布将开源许可协议从 GNU AGPLv3 切换至 Server ...

优快云资讯 3305

全面剖析 MongoDB 高可用架构

MongoDB高可用架构

cbmljs的博客 2943

如何从MongoDB迁移到MySQL?这有现成经验!

作者:小码哥 最近的一个多月时间都在做数据库的迁移工作,我目前在开发的项目在上古时代是使用 MySQL 作为主要数据库的,后来由于一些业务上的原因从 MySQL 迁移到了 MongoDB,使用了几个月的时间后,由于数据库服务非常不稳定,再加上无人看管,同时 MongoDB 本身就是无 Schema 的数据库,最后导致数据库的脏数据问题非常严重。目前团队的成员没有较为丰富的 Rails 开发经验,

36大数据 2055

我为什么放弃MySQL?选择了MongoDB

最近有个项目的功能模块,为了处理方便,需要操作集合类型的数据以及其他原因。考虑再三最终决定放弃使用MySQL,而选择MongoDB。 两个数据库,大家应该都不陌生。他们最大的区别就是MySQL为关系型数据库,而MongoDB为非关系型数据库。常见的关系型数据库有:MySQL、Oracle、DB2、SQL Server、Postgre SQL等,非关系型数据库有MongoDB、...

ba76191777的博客 2764

我所理解的Mongodb 的优势

更高的写负载 默认情况下,对比事务安全,MongoDB更关注高的插入速度。如果你需要加载大量低价值的业务数据,比如日志收集,那么MongoDB将很适合你的用例,但是必须避免在要求高事务安全的情景下使用MongoDB,比如一个1000万美元的交易。 处理很大的规模的单表: 数据库扩展是非常有挑战性的,当单表格大小达到5-10GB时,MySQL表格性能会毫无疑问的降低。如果你需要分片...

weixin_30832351的博客 811

关于选择MySQL还是MongoDB

MySQL比MongoDB好的优点,在于Complex Transactions(复杂事务),这是什么意思呢?

ybdesire的专栏 1万+

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

MongoDB可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,...

mengyidan的专栏 807

惨遭红帽弃用,MongoDB要凉凉了吗?

MongoDB是一款广受欢迎的开源NoSQL数据库。不同于一般开源软件,MongoDB创始人一开始就决定使用GNU AGPLv3协议来代替Apache授权。这个协议要求采用它的人也要照样开源相关源代码。这就限制了很多云厂商不能直接使用开源的MongoDB,而MongoDB自己提供的云服务也因此挣得金钱满钵。\n但AGPL依然挡不住某些云厂商使用MongoDB。去年十月,MongoDB 宣布其开源许...

测试0901-1 856

以MongoDB为例与关系型数据库比较

声明:本文属于探讨性话题,肯定存在很多疏漏和错误,不要盲目相信,大家发现什么错误或者有什么想法请求务必告知 在比较之前,先介绍一个重要的概念:数据库事务 作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子

manongpengzai的博客 2944

mysql数据迁移mongodb

mysql数据迁移mongodb  最近写mongodb的数据库操作,写得差不多了,不了解的可以看回spring MongoDB 集成crud操作(简单封装),现在准备把mysql数据迁移到mongodb,上网搜索了一些资料,上了mongodb的官网看了,在window下有一个mongodb客户端工具,可以直接把数据迁移到mongodb,并且非常简单工具名..MongoVUE..

zzjjiandan的专栏 1万+

SQL数据导入mongodb

SQLServer数据导入mongodb 最近终于用上了mongodb,在面对数据如何导入的问题上,很是麻烦,主要是数据类型的不同 本文采用的是Navicat(主要是用mongoVUE免费版的去导SQL失败)。首先安装Navicat. 1、打开Navicat ,点击连接 顺便命名连接名,然后输入SQLServer所在的Ip及需要登录的用户名及密码 2、点击连接测试,测试成功后,确

tang_jin2015的专栏 8865
上一篇: SDCC 2017·上海站后援团:大牛视角下的中国软件开发者大会
下一篇: 万人协同规模下的代码管理架构演进
仲培艺
博客等级 码龄10年 750粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值