新数仓系列:MongoDB关键能力和特性梳理
Posted 大数据和云计算技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新数仓系列:MongoDB关键能力和特性梳理相关的知识,希望对你有一定的参考价值。
最近看一本书,铃木敏文的《零售的哲学》,里面提到一个很有意思的观点,711核心使命是提供便利,围绕便利场景,提供一系列食品、ATM服务等,而不是和超市去PK货物品种。
联想到常见的NOSQL数据库和传统关系型数据的区别也有点类似;传统关系型数据库发展了几十年,就像超市一样,功能非常多,非常完善,也是进入到各个行业中去。NOSQL从一出生就是带着解决关系数据中的某些场景的不突出/不擅长的使命。
另外一些新数据库又思考着突破NoSQL的场景的限制,想着同时解决OTLP/OLAP,也有诞生了NewSQL或者HTAP的概念,典型的有TiDB/CockroachDB。
可以说,随着技术的发展,尤其是硬件的更新,新的存储和新的网络,NOSQL数据库有几个趋势:
1、融合和跨界是各个数据库(NOSQL/NEWSQL/SQL)当前选择,所以各个NOSQL数据库相互之间重叠能力很多,但是未来是否有一个大一统的数据库?这个未必。
2、数据库场景化趋势非常明显,围绕核心擅长的场景,去补齐和完善周边生态和能力也显得尤为重要。
讲了这么多NOSQL数据库大的趋势和概念,接下来我会梳理下常见的一些NOSQL数据库关键能力和适合的场景。
本文是第二篇,梳理MongoDB适合的关键能力和适合场景。梳理不全的地方,请大家留言补充!
前面有一些相关文章,大家可以看看:
01
MongoDB简介
MongoDB是一个介于关于数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,语法类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库
面向集合(Collenction-Orented)
意思是数据被分组存储在数据集中被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似于数据库中的表,不同的是它不需要定义任何模式
模式自由(schema-free)
意思是集合里面没有行和列的概念,下面的两个例子是可以存储在同一个集合中:
{“name”:”mongo”}
{“age”:25}
文档型(documents)
意思是我们存储的数据是键值对的集合,键是字符串,值可以是数据类型集合中任意的类型,包括数组文档,每个文档相当于关系型数据库中的一个记录
02
MongoDB特点
MongoDB的特点是高性能、易部署、易使用、存储数据非常方便,主要特性有:
文件存储格式为BSON (一种json的扩展),面向集合存储,易于存储对象类型的数据,模式自由
对嵌套数据模型的支持减少了数据库系统的IO操作;
索引支持更快地查询操作,支持嵌套文档和数组的键索引。
支持动态查询
支持全文搜索,地理位置索引等
使用高效的二进制数据存储,包括大型对象(图片视频等) GridFS
自动处理碎片,以支持云计算层次的扩展性 Map / Reduce
MongoDB的同步机制(称为replica sets,复制集合,即保持了相同数据集合同步的MongoDB服务器集群),提供了自动失效备援(automatic failover)和数据冗余性(data redundancy)支持。
水平伸缩性
自动分片部署数据到机器集群的功能
复制集合(replica sets)能够为低延迟高吞吐量的部署提供最终一致性。 > 以上内容来自MongoDB官网介绍,对于前端工程师来说,MongoDB最大的好处就是,可以使用Javascript的语法来方便的完成数据库的CRUD操作。
03
支持不完善
多表关联: 仅仅支持Left Outer Join
SQL 语句支持: 查询为主,部分支持
多表原子事务: 不支持
多文档原子事务:不支持
16MB 文档大小限制
不支持中文排序
服务端 Javascript 性能欠佳
04
适合场景
持久化缓存层
高效的实时性
用于对象及JSON数据的存储
高伸缩性的场景
大尺寸,低价值的数据存储
05
不适合场景
要求高度事务性的系统
传统的商业智能应用
复杂多表查询
参考文档:when to use mongodb-tj.pdf
梳理不全的地方,请大家留言补充!
猜你喜欢
加入技术讨论群
《大数据和云计算技术》社区群人数已经2500+,欢迎大家加下面助手微信,拉大家进群,自由交流。
喜欢钉钉扫码下面的群:
欢迎大家通过二维码打赏支持技术社区(英雄请留名,社区感谢您,打赏次数超过85+):
以上是关于新数仓系列:MongoDB关键能力和特性梳理的主要内容,如果未能解决你的问题,请参考以下文章