Java大数据:MongoDB数据库入门基础
提起大数据存储,NoSQL数据库一定是不能忽视的重要部分,而在不同场景下,NoSQL数据库也有着不同的选择。比如说MongoDB,就是NoSQL数据库当中的经典产品,也是大数据学习当中必须掌握的。今天我们就来讲讲MongoDB数据库入门基础。
所谓的NoSQL数据库,其实是Not Only SQL,意为“不仅仅是SQL”,其实是与原来的关系型数据库并非对立关系,而是补充关系。进入大数据时代,传统的关系型数据库面临瓶颈,于是NoSQL数据库开始获得更多的发展机会。
MongoDB 简介
根据官方文档定义,MongoDB是一个基于分布式的文件存储数据库,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。
目前,MongoDB 有企业版和社区版,企业版更加专业强大,对于学习者来说,我们通常是从社区版开始入手就够了。对于编程语言的支持,MongoDB支持Java、JavaScript、C++、C#、Python 等,而做大数据开发,通常是以Java语言来实现。
国内外知名互联网公司,使用MongoDB的不少,包括阿里、腾讯、Google、Facebook、eBay 等。
MongoDB 入门
MongoDB 使用C++语言实现,主要满足分布式文件存储的需求。MongoDB将数据存储为一个文档,数据结构由 Key-Value 键值对组成。
MongoDB文档类似于 JSON 对象,字段值可以包含其它文档、数组。其中的Value支持多种数据类型,包括 Double 、String 、Object 、Array 、Date 等。
MongoDB 其实是最像关系型数据库的NoSQL数据库,因为数据结构松散,所以可以存储比较复杂的数据类型。
MongoDB最大的特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB 特点
面向文档存储,操作简易。
支持设置任何属性的索引以实现更快的排序和查询操作。
可以通过本地或者网络创建数据镜像,扩展性极强。
分布式设计,支持增加节点以提升存储空间。
支持丰富的查询表达式,可轻松查询文档中内嵌的对象及数组。
可在服务器端执行任意的Javascript函数。
采用GridFS存储大数据或元数据(不是真正的文件系统)。
支持Ruby、Python 、Java 、C++ 、PHP 、C# 等多种编程语言。
MongoDB适用场景
大数据背景下的NoSQL数据库,本身都是得到非常高的重视的。而MongoDB的特性,使得它本身就比较适合数据规模比较大的场景。在国内,游戏、物流、电商、内容管理、社交、物联网、视频直播等领域,MongoDB都是可以用起来的。
游戏场景,使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新;
物流场景,使用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来;
社交场景,使用MongoDB存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能;
物联网场景,使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析;
视频直播,使用MongoDB存储用户信息、礼物信息等。
关于Java大数据,MongoDB数据库入门基础,以上就为大家做了简单的介绍了。MongoDB作为NoSQL数据库当中的重要代表,市场主流运用颇多,自然也是大数据工程师们的必备技能之一。