为什么MongoDB敢说“做以前你从未能做的事”

大数据文摘作品,欢迎个人转发朋友圈;其他机构、自媒体转载,务必后台留言,申请授权。

作者| Shuvayan Das

翻译| 张龙吟,卞铮 校对| 康欣,土家 编辑| Ivy

小编注:在MongoDB的网站上,它这样自我介绍:做以前你从未能做的事(Do What You Could Never Do Before)。为什么MongoDB敢这样说?它有什么长处与不足?今天我们给大家抛砖引玉。

一、 MongoDB是什么?

“需求是创新之母。” 虽然这是句老话,但现在依然很受用!

过去的十年,我们将数据生成、存储和分析的临界点推上一个全新的高度。这个大跃进是我们向数字化的数据驱动的经济又近了一步;这个大跃进也创造了它自身的需要。而这些问题及其解决方法通常都在大数据的保护伞之下。

想象一下:如今,脸书和谷歌产生了更多的数据,它们加在一起超过了前几年的全球数据总量。伴随数据生成的高速增长,随之而来是存储和规模的问题。看,所有人都希望脸书上的订阅能够被瞬间加载——我们憎恨端着手机和电脑在那儿傻傻等着它加载。可回头想想,什么架构才能使我们有这样快速体验?数百万的用户同时向数据库请求实时信息。再加上非结构化数据和系统需求(让您可以快速添加新功能),这看上去更像是一个不可能完成的任务。

传统的数据库很难应付这种需求,且提升规模所需的成本令人望而却步。本文给大家介绍一个新型的数据存储系统,大家管它叫做MongoDB。它提供了无架构设计、高性能、高可用性和自动规模伸缩,这是当前所需要但传统RDBMS系统无法满足的性质。

维基上这么描述MongoDB

MongoDB(源自huMONGOus一词,意为“堆积如山的”)是一个跨平台的面向文档的NoSQL数据库。MongoDB避开了传统的基于表格的关系型数据库结构,代之以具有动态结构的类JSON文档格式(MongoDB称之为BSON),从而使一些特定类型应用的数据整合更容易、更快。在GNU Affero和Apach许可下发布的MongoDB是一个免费的开源软件。

二、有谁在用MongoDB?

下面只列举其中一部分。实际上,MongoDB在全球已有一千万次以上的下载量,目前有三十万人正在学习MongoDB。

三、对比传统关系型数据库

将关系型数据库和MongoDB进行比较,就好似在比较一只狮子和一只老虎一般。虽然都是食肉动物,但是一个是独自狩猎,另一个则是群体出动。SQL(老虎)有着一个固定的数据模型,其中的数据需要遵循架构的设计,这有助于组织分析例如销售统计类的结构化数据。而另一方,MongoDB(狮子)是一个基于文档的数据库,它以文档的形式存储数据。虽然他们的方法不同,但依据组织化的需求,这两者都需要数据存储并选择数据库类型。

四、使用MongoDB有什么优点?

从上面的附图你可以发现,当服务器上的查询数量增加时,MongoDB就明显是一个胜利者。MongoDB 非常适用于实时分析,它有着低延迟以及针对需求的高可用性。

MongoDB已经进入了前沿领域,因为各类组织需要分析半结构化、非结构化以及地理或空间数据,更因为现今世界原先的结构化数据正在被快速的改变。

传统的关系型数据库系统不能完全应付得了这些需求,因为它们固有的结构不允许它们处理这样的需求。虽然关系型数据库系统也在改变,来迎合数据的大爆发,但最适合处理当今数据的数据库仍是像MongoDB这类文档数据库。

五、MongoDB的局限性是什么?

以下列举了一些MongoDB的限制。

1.最大的文件不能超过16MB

2.最大文件嵌套层级为100(指文件嵌套文件再嵌套文件)

3.索引区不能超过1024字节。

4.每个集合最多为64个索引。

5.创建一个复合索引最多使用31个字段。

6.全文本搜索和地理位置索引是互斥的。

7.在32位机器上,一个固定集合(capped collection)中的文件数量大小是有限制的。但64位机器上则对文件数量大小没有限制。

8.在Windows系统上,MongoDB不能存储超过4TB的数据(去除日志后为8TB)

9.在单个复制集中最多可有12个节点。

10.在单个复制集中最多可有7个投票节点。

11.如要回滚超过300MB的数据,需要进行人工干预。

12.在分片集群(sharded cluster)中无法使用组命令。

13.在分片集群中无法使用 $isolated, $snapshot, geoSearch。

14.你无法在 $where中涉及到数据库对象。

15.为了分片一个集合,它必须小于256GB。

16.在分片集群中对单条记录(非多条)的更新/移出必须包含分片密钥。同样命令针对多条记录执行时则可以不包含分片密钥。

17.分片密钥最大值为512字节。

18.一旦分片完成,一个集合的分片密钥值将无法改变。

除了这些限制以外,在关系型数据库系统中用约束来防止数据被意外删除的功能在MongoDB或其他NoSQL数据库系统中无法实现。 也可能有其它问题,例如像下面列示的这个,为了存储多层数据而违反了标准范式。

一个用户有许多朋友,并可能其中之一就是他自己。人们可能反复对自身进行点赞、评论或两者皆有的行为动作。这种类型的反复模式使得它更难将一个活动流反规范化(de-normalize)为一份独立的文档

MongoDB也像其它科技一般,非常公平的共享了它的局限性和缺陷,并且随着版本更新,它们将很有希望被解决。

大数据文摘编译者简介

张龙吟

自由会展活动策划人,活动市场营销与会展管理双硕士。现居翡冷翠。关注大数据时事及其在商业、体育等领域的发展。

卞小铮

现供职于国内某大宗电商,之前曾在中资、外资银行工作多年,主要专注于产品设计及项目管理等工作。熟悉银行金融业务,具有经营分析类、数据类以及监管类项目的丰富实施经验。希望通过该《大数据文摘》这个平台,与更多的数据爱好者以及专家进行交流学习。

康小欣

博士,多年从事图像及数据处理和分析、计算机视觉、模式识别、机器学习、增强现实等领域的技术研究和创新应用,现为西门子中国研究院高级研究员。希望借此平台,与大数据分析爱好者以及专家学者交流、合作。

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2015-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏佳爷的后花媛

黑客故事:如何逼小偷把 iPhone 还回来的

看到一哥们太给力了,忍不住分享下.身边有太多朋友手机被偷了,要是get到这个技能.啧啧!!!还愁没有妹子?哈哈哈. 有个问题要问一问:假期有没有丢手机?以下是...

21330
来自专栏程序创造美好世界

“腾讯云 · 开发者实验室“体验

偶然间从腾讯云 · 云+社区的实验室标签点进去,居然就发现了新大陆!

635120
来自专栏進无尽的文章

什么才是优秀的网站用户界面设计

15220
来自专栏罗超频道

WIN10初体验:期待越多,失望越大。

我大多数时候使用MacBook,不过WIN10(预览版)的推送还是让我忍不住升级玩玩——它是微软史上首款真正意义上的免费操作系统,正式版将与中国诸多互联网巨头联...

37970
来自专栏黑白安全

贴吧利用仅有的信息找到对方信息

楔子: 这次的教程很简单,我是想把这个简单的教程告诫大家,作为一位网民一定要保护好自己的个人信息,周围有许许多多的网民都无所谓自己的个人隐私,殊不知已被藏在黑暗...

14150
来自专栏IT派

Node.js与PHP对战:一场关于开发者喜好的史诗级战役

整个故事正如好莱坞大片的经典剧情走向:两位昔日好友如今分道扬镳,甚至被迫陷入了你死我活的斗争当中。刚开始的分歧并不严重,无非是一位老友对于另一位伙伴长久以来占据...

14100
来自专栏CSDN技术头条

MongoDB:逐渐变得无关紧要

Henrique Lobo Weissmann是一位来自于巴西的软件开发者,他是itexto公司的联合创始人,这是一家咨询公司。Henrique在博客上会谈很多...

210100
来自专栏Python与爬虫

从爬虫角度来说下360快视频事件

360快视频事件 最开始好像是东方华灯宴的视频被发现被盗用,然后众用户排查发现大量B站视频被快视频盗用,连用户和评论也大量照搬,并有很多B站用户发现使用B站的用...

390130
来自专栏编程一生

化腐朽为神奇:简明日志规范

上周静儿用一天的时间写了一个日志切面,大家都非常支持配合,内部各个模块都使用起来。

12630
来自专栏华章科技

关于反爬虫,看这一篇就够了

本文来自携程酒店研发部研发经理崔广宇在第三期【携程技术微分享】上的分享,以下为整理的内容概要。墙裂建议点击下方视频,“现场”围观段子手攻城狮大崔,如何高智商&高...

18620

扫码关注云+社区

领取腾讯云代金券