注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

obsolete

wanna go

 
 
 

日志

 
 

国内MongoDB领域的先驱——采访资深数据库专家“cd红丸  

2012-08-08 14:02:14|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
电子版地址:MongoDB权威指南 中文版


个人简介:资深数据库专家,《mongoDB开发与精要》作者, 国内MongoDB领域的先驱之一,积累了丰富的实战经验。精通MySQL、SQL Server和DB2等大中型数据库的运维和管理,还擅长Java和C#等技术。此外,他对Redis和分布式计算技术也有一定的研究。

欢迎大家跟帖提问,我们对于跟帖提问的网友给予30积分的奖励。更多访谈请关注ChinaUnix访谈录:http://star.chinaunix.net/

ChinaUnix社区:

      王兄,非常高兴能采访到你,之前看到你一直活跃在博客,最近在社区也经常看到你的分享,呵呵,先给CU的网友打声招呼,简单的向大家介绍下自己嘛。

cd红丸:
      大家好,我是“红丸”。最初是在大学时看了“淹死的鱼”写的一本《风往南吹》一书才使我对IT这个行业充满幻想,所以科班出身的我毕业后也如期的找到了 一份Java工程师的工作。后来干着干着就转到了数据库这个方向,玩过DB2、MySQL、SQL Server,就是没碰过Oracle。

ChinaUnix社区:
      我知道王兄之前写过一本书《mongoDB开发与精要》,作为国内mongoDB的先驱者之一,能否给大家介绍下mongoDB的发展以及适用领域?

cd红丸:
      关于发展现状:MongoDB是被国内最早认识的NoSQL产品,也是目前国内关注度最高的NoSQL产品。10gen公司于2011年举办了一次技术 交流会后,再次于2012年发起“Mongo北京开发者聚会”,我虽没时间参加,但听朋友说场面非常火,而且演讲的不仅有10gen的工程师,还有国内的 一些MongoDB的早期应用人员。同时,国内发起的一些活动也吸引了大量的爱好者,例如人民邮电出社图灵社区也定期组织MongoDB专题交流会,给大 家研究MongoDB创造了优越的条件。最后,也是最实际的。国内可熟练使用MongoDB的DBA非常少,所以找一个合格的MongoDB工程师,薪水 也比一般的高级DBA要高一些,因为缺口太大。
     关于应用领域:我本人觉得它最适合做互联网应用的存储方案,因为它的处理效率非常高,同时它还适用于对架构的高伸性要求很高的场景,因为它本身包含了对MapReduce的支持,可以方便的扩展到几十台,甚至几百台的服务器集群环境

ChinaUnix社区:
      mongoDB与其他Nosql数据库的比较,包括优势与不足?

cd红丸:
      这个问题,不太好回答,因为NoSQL产品,可以分为文档型,键值型,图片型等等。不同的分类决定了产品适用的场景,例如MongoDB属文档型,这就 决定了它在文档型数据处理方面的绝对优势,同时它又是无模式的,所以就特别适合于无结构或者结构复杂的数据存储业务场景。例如报表数据本身就非常复杂,而 中国式报表就更是极度复杂,但正因为报表的无规律无结构的特点,它的数据就特别适合于用MongoDB来存储。这些都是它相对于共它NoSQL产品的优 势。
      当然跟其它NoSQL产品相比较,它也有不足的地方。例如在32位系统上,不支持大数据;sharding环境中的数据分布不均匀;MS架构在网络良好 的情况下有时会有一定的延迟;数据由于预分配的,所以占用磁盘空间较大;安全性方面较弱,没有更多的可选配置;

ChinaUnix社区:
      能否跟大家分享一些mongoDB数据库与其他数据库的结合运用案例?

cd红丸:
      从国内来说,也许是国人不太愿意分享或者是没养成分享的习惯,所以国内我敢肯定已经有很多公司在使用了,但公开的信息显示1-2年来却还是那几个。
      例如,“视觉中国”对MongoDB的应用应该是在国内相对较早的,由于数据量过大,用户活跃度过高,导致MySQL无法应对业务需求,才将全部的业务 向MongoDB做了一个大规则模的迁移;盛大云产品中也包含了MongoDB的影子,MongoIC(MongoDB云托管服务),可以完成一键申请, 定期备份,七天内任意恢复数据等,本来郭理靖给我了个帐号可以试一下这个服务的,后来由于没时间就没有试,大家有时间的话可以试一下这个服务;淘宝网虽然 在自已研发NoSQL产品,但也有应用MongoDB的业务,例如它用MongoDB来存储系统产生的日志信息。大众点评网用MongoDB来存储用户行 为数据并进行分析,以挖掘更多的盈利点。
      国外,大家非常熟悉的代码托管网站SourceForge的90%的数据请求是通过MongoDB来处理的;SAP公司也将MongoDB做为他们 PaaS平台中企业内容管理部分的持久化解决方案;著名的福布斯杂志,采用MongoDB来存储历年世界各地的重大财经新闻和各家公司的公开数据,将来也 会将更多的核心数据迁往MongoDB;
我所在的公司本来也是准备小规模应用的,但后来由于种种原因没有上,很遗憾。

ChinaUnix社区:
      mongoDB数据库的日常管理,有没有好的监控工具以及如何优化monogDB?

cd红丸:
      MongoDB的监控工具其实有很多,象专业一点儿的工具,如10gen的MMS,MongoWatch,MongoSpy;通用一点儿的工具,如Zabbix,Cacti等做一些自定义开发后,都可以对MongoDB进行监控。
     但我本人的经验是不管什么样的工具,都是要依赖于最基础的命令,所以我推荐用最基本的mongostat,profiler,db.stat(),db.serverStatus(),db.currentOp()命令或工具来定制适合自已业务需求的监控模型。
      优化是一个老生常谈的话题,不管是什么样的技术什么样的产品,最终一定要面对这个问题。其实遇到过性能问题的朋友都会有一个共识,解决性能问题最快的办 法就是加大硬件层面的投入,因为现在硬件的发展明显跟不上软件的发展,所以才有了NoSQL才有了Hadoop。
      那么具体来说,首先选择scale-up,即提升硬件单体性能。然后再scale-out,即横向扩展硬件单体数量。其实这2个方法就足以解决大部分的 性能问题了。如果硬件的预算有限的话,那么可以在有限的范围内不停的拆表,来达到提升性能的目的。上面几种方法就是最通用、最高效、最简单、最粗暴的办法 了。
      最后,如果这些都无法满足,那么就需要微调。例如,用简单查询替换复杂查询,使用索引,sharding数据等等。不要觉得优化有什么神密的,其实也真的没有什么神密的。

ChinaUnix社区:
当下Nosql技术在国内很火热,作为一个企业决策者,或者一个合格的DBA,应该如何选择传统的关系型数据库和非关系型数据库?

cd红丸:
      这个问题真的很现实,讲一堆什么哗众取宠的大道理都没用,决策才是最重要的。对于企业来说,不是一定要应用最新最好的技术才能带来最大的效益。技术人员 往往为了展示自已技术有多牛,非常容易走极端,总是以技术来驱动业务,希望公司采用最新的技术来做新的项目,这也是我以前总犯的错误。但老板的思维是用最 少的投入换来最大的收益,站在老板角色度他希望的是业务来驱动技术。例如NoSQL的产生,也是因为企业遇到了海量数据的问题,才有一批人去想怎么解决, 所以才有了NoSQL这个东西。
      对于企业来说是选择关系型数据库还是选择非关系型数据库,不要脑子一热必须要用新产品。举几个例子吧,如果你的企业数据量不是很大,MySQL足已应 付,那根本没什么必要去用MongoDB。如果你的企业一定要用MongoDB的话,也需要仔细考虑一下DBA和开发人员的成本问题,因为要想找到对 MongoDB了解的工程师,就目前国内来说也很困难。
总之就是一句话,没逼到那份儿上或者没必要上MongoDB的话,不要冒太大的风险去使用MongoDB,不要因为要用MongoDB而用 MongoDB。当然如果对一些重要性级别较低一些的应用,那么可以采用MongoDB来培训人员和积累经验,说白了就是练兵,这也是很重要的。如果没有 前期的经验积累,冒然上MongoDB可能会得不偿失。
  评论这张
 
阅读(1006)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018