MongoDB简介.

Slides:



Advertisements
Similar presentations
分布式系统 Distributed Systems 第 13 讲 NoSQL Lecture 13 NoSQL
Advertisements

電子商務:數位時代商機‧梁定澎總編輯‧前程文化 出版
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
MongoDB技术交流 主讲:刘天斯.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
58同城从MongoDB到MySQL迁移之路
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
第5章 NoSQL数据库 (PPT版本号:2017年2月版本)
NoSQL分布式数据库.
盛大网络 NOSQL七种武器之长生剑 MongoDB的使用介绍 DBA
单元目标 1.什么是NO-SQL? 2.认识MongoDB数据库 3. MongoDB的下载与安装 4. MongoDB的体系结构
Mongodb初中级实战教程 讲师:涂宗勋 讲师的CSDN博客地址
Hadoop I/O By ShiChaojie.
MariaDB Spider分库分表引擎调研
XinyiZhou 11/ PPTV LB日志实时分析平台 XinyiZhou 11/
Microsoft SQL Server 2000 李金双.
第二讲 搭建Java Web开发环境 主讲人:孙娜
Chinese Virtual Observatory
存储系统.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
网络常用常用命令 课件制作人:谢希仁.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
SPARQL若干问题的解释 刘颖颖
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
科研信息管理工具 Endnote X4 王辉.
第17章 网站发布.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
——网鸟老兵系列课程之10天掌握MongoDB
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
基于大数据平台数据管理研究 何家乐 2013年7月 中国科学院高能物理研究所.
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
C语言程序设计 主讲教师:陆幼利.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
实验讲评
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
教育部 财政部 网络教育数字化学习资源中心平台系统 安装与配置
Web安全基础教程
ES 索引入门
解决“最后1公里”问题.
第4章 Excel电子表格制作软件 4.4 函数(一).
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Visual Basic程序设计 第13章 访问数据库
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
Google的云计算 分布式锁服务Chubby.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
第四章 UNIX文件系统.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
入侵检测技术 大连理工大学软件学院 毕玲.
JUDDI安装手册.
Presentation transcript:

MongoDB简介

2 mongoDB 1 NoSql 3 基本语法 4 关系结构 5 C#开发 2

什么是NoSQL NoSQL( Not Only SQL )是一种与关系型数据库管理系统截然不同的数据库管理系统,它的数据存储格式可以是松散的、通常不支持Join操作 为什么使用NoSQL: 对数据库高并发读写。High performance 对海量数据的高效率存储和访问。Huge Storage 对数据库的高可扩展性和高可用性。High Scalability && High Availability 弱点: 数据库事务一致性需求 数据库的写实时性和读实时性需求 对复杂的SQL查询,特别是多表关联查询的需求

NoSQL四大类 1.Key-Value存储 2.列式数据库 3.文档型数据库 4.图结构数据库

Key-Value存储类型 Examples Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 典型应用场景 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 数据模型 Key 指向 Value 的键值对,通常用hash table来实现 强项 查找速度快 弱项 数据无结构化,通常只被当作字符串或者二进制数据

列式数据库 Examples Cassandra, HBase, Riak 典型应用场景 分布式的文件系统 数据模型 以列簇式存储,将同一列数据存在一起 强项 查找速度快,可扩展性强,更容易进行分布式扩展 弱项 功能相对局限

文档型数据库 Examples CouchDB, MongoDB 典型应用场景 Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) 数据模型 Key-Value对应的键值对,Value为结构化数据 强项 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 弱项 查询性能不高,而且缺乏统一的查询语法。

图结构数据库 Examples Neo4J, InfoGrid, Infinite Graph 典型应用场景 社交网络,推荐系统等。专注于构建关系图谱 数据模型 图结构 强项 利用图结构相关算法。比如最短路径寻址,N度关系查找等 弱项 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

MongoDB简介 MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling. A record in MongoDB is a document, which is a data structure composed of field and value pairs. MongoDB documents are similar to JSON objects. MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。

MySQL term Mongo term/concept database table collection index row BSON document column BSON field join embedding and linking primary key _id field group by aggregation Stored Procedure Stored JavaScript

特点 高性能、易部署、易使用,存储数据非常方便。 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。 自动处理碎片,以支持云计算层次的扩展性 支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序, 社区中也提供了对Erlang 及.NET等平台的驱动程序。 文件存储格式为BSON(一种JSON的扩展) 可通过网络访问

功能 . 面向集合的存储:适合存储对象及JSON 形式的数据 动态查询:MongoDB 支持丰富的查询表达式。查询指令使用JSON 形式的标记, 可轻易查询文档中内嵌的对象及数组。 完整的索引支持:包括文档内嵌对象及数组。MongoDB 的查询优化器会分析查询表 达 式,并生成一个高效的查询计划。 查询监视:MongoDB 包含一系列监视工具用于分析数据库操作的性能。 复制及自动故障转移:MongoDB 数据库支持服务器之间的数据复制,支持主-从模式 及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片) 自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加 额外的机器。

0|1|2|3|4|5|6|7|8|9|10|11 _id:507fbbb2a7b49259f1bf274c mongoDB的最小存储单位就是文档对象,对应于关系型数据库的行,数据在mongo中以BSON(Binary-JSON)文档的格式存储在磁盘上。每一个文档对象, mongo都会为它分配一个唯一的id号,名为“_id”。 { _id : ObjectId( “xxxxxxxx" ) , name : “MongoDB", gender : "M", address : "Beijing" } 如果不显式创建_id,mongo会自动创建并为它分配一个唯一的值,作为该文档对象的唯一标识。 大文件如何存储? _id:507fbbb2a7b49259f1bf274c 0|1|2|3|4|5|6|7|8|9|10|11 时间戳 机器 PID 计数器

跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以它提供了嵌入式的文档结构。

JSON BSON

SQL

MongoDB安装 Windows平台的安装 1.下载解压 2.创建数据存放文件夹 3.启动MongoDB MongoDB is self-contained and does not have any other system dependencies. 1.下载解压 2.创建数据存放文件夹 3.启动MongoDB

MongoDB安装 4.安装为Window 服务 5.客户端连接测试 创建Log\mongo.log日志文件 创建文件mongod.cfg文件,手工创建或者使用以下命令 命令行中:如果命令中有空格要使用双引号 5.客户端连接测试

mongod参数说明 名称 说明 dbpath 数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock 也保存在此目录中 logpath 日志文件 logappend 日志采用追加模式(默认是覆写模式) bind_ip 对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip 上 port 对外服务端口(27017)。Web 管理端口在这个port 的基础上+1000 fork 以后台Daemon 形式运行服务 journal 开启日志功能,通过保存操作日志来降低单机故障的恢复时间 syncdelay 系统同步刷新磁盘的时间,单位为秒,默认是60 秒 directoryperdb 每个db 存放在单独的目录中,建议设置该参数 maxConns 最大连接数 repairpath 执行repair 时的临时目录。在如果没有开启journal,异常down 机后重启,必须执行repair操作 cfg配置文件

客户端GUI工具 .NET平台下

MongoDB操作 MongoDB Shell使用JavaScript 常用命令 help show dbs 显示所有数据的列表 db 显示当前数据库对象或者集合 use 连接到一个指定的数据库

db db.help()

MongoDB - 连接

MongoDB 数据插入

MongoDB 数据修改和删除 remove() 用于删除单个或全部文档,删除后的文档无法恢复。 删除Collection数据

MongoDB查询 简单查询

支持正则表达式 Javascript 查询和$where 查询

排序1,-1 游标

MapReduce MongoDB 的 MapReduce 相当于 Mysql 中的"group by"

存储过程 MongoDB的存储过程是使用JavaScript来写的。 MongoDB 存储过程是存储在 db.system.js 表 function addNumbers( x , y ) { return x + y; } db.system.js.save({_id:"addNumbers", value:function(x, y){ return x + y; }});

索引 MongoDB 提供了多样性的索引支持,索引信息被保存在 system.indexes 中,且默认总是为_id 创建索引,它的索引使用基本和 MySQL 等关系型数据库一样。 基本索引 文档性索引 组合索引 唯一索引 强制使用索引

GridFS GridFS是MongoDB的一个内置功能。使用GridFS可以基于MongoDB来持久存储文件. 并且支持分布式应用(文件分布存储和读取) GridFS的基本原理是将文件保存在两个Collection中(fs.chunks和fs.files),一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。 Mongofiles list db.fs.files.find() Db.chunks.find()

关系结构 MongoDB建模有两种方式,一种是内嵌(Embed),另一种是连接(Link)。 Link:MongoDB References有两种:一种是 手动引用(Manual References),另一种是DBRefs。

关系结构 Embed

MongoDB开发 http://api.mongodb.org/csharp/current/ https://github.com/mongodb

管理工具

MongoDB架构 分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上锁采用的方法。