MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 快速学习 MongoDB 快速入门-MongoDB 最佳实践(二)

开发者学堂课程【MongoDB 快速入门:MongoDB 最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/49/detail/1006


MongoDB 快速入门-MongoDB 最佳实践(二)


二、阿里云 MongoDB 产品特性及服务

1、阿里云 MongoDB 介绍

(1)阿里云 MongoDB 云数据库特性主要有:

image.png

开箱即⽤(免除运维烦恼) 、弹性伸缩 (快速应对业务变化) 、⾼可⽤ (业务持续、数据可靠) 、持续备份 (任意时间点备份恢复) 、安全加固 (SSL + TDE 加密) 、审计⽇志 (访问记录、有据可查)、秒级监控 (性能数据、⼀⽬了然) 、CloudDBA (⾃动诊断、智能优化)

(2)阿里云 MongoDB 云数据库技术优势:

image.png

⾼性价⽐:对于短链接场景进行优化,短链鉴权性能提升 10 倍

运维效率:支持对⾼危命令审计、快速定位问题,默认后台建索引、避免影响在线业务, 支持物理热备份+单库恢复、备份恢复时间缩短⼀半。  

⽣态⼯具:开源 Mongo-Shake 同步⼯具、⽀持异地多活,阿⾥云⽣态打通 Dataworks、XPack Spark 等服务。

原⼚战略合作:可以在全球范围内领先使用 MongoDB 最新版本,同时与原厂进行了研发产品合作。

需求定制:可以针对大客户的合理需求进行定制开发,满足客户需要。

专家服务:由业内顶尖的数据库专家提供服务,结合业务场景,提供行业解决方案,业务优化建议等等。

阿里云&MongoDB 公司战略合作:

image.png

阿里云与 MongoDB 公司在 2019 年下半年达成战略合作,

阿里云荣膺 MongoDB 公司『2019 全球最佳 ISV 合作伙伴』奖。

基于合作,阿里云可以在全球领先使用最新版本,比如目前的 4.4、4.2、4.0 的最新版本,并且阿里云第一时间合入官方优化和 Bug Fix。同时不定期与原厂进行产品技术交流。

在研发合作方面,最近发布的 MongoDB 4.4 版本中我们与 MongoDB 公司合作共建 Hidden Indexes 特性。

2、阿里云 MongoDB 产品特性

image.png

要使用云服务,首先要解决上云的问题,将自建服务搬到云上,另外在混合云里也可能需要对多个环境的数据进行同步,或者是在不同架构形态之间进行转换。

针对这些需求,阿里云自研并开源了 MongoShake ⼯具以支持不同架构形态的转换、数据迁移、数据同步。另外也可以使用阿里云 DTS来解决这些问题。

MongoDB 4.x 版本新增特性:

image.png

从 MongoDB 4.0 版本以来,新增了数十项功能特性。

比如 4.0 版本,增加了副本集事务,更快的 shard 间数据迁移、这个提升了 40% 以上。

MongoDB 4.2 版本,增加跨 Shard 分布式事务、字段级加密、全局按时间点读、通配符索引、支持 10 倍的快速降级、存储节点的 watchdog 检测,比如检测 I/O Hang 的 场景物化视图、可重试的读写等。

MongoDB 4.4 版本,我们与官方合作共建了 Hidden Index 特性,可以临时禁用索引,不需要删除、避免产生过大消耗影响业务。对冲读功能(向多个节点发送请求,把最快的响应发送给客户端)。4.4 也支持了复合 Hash Shard Key,另外还支持可恢复的全量同步、并发建索 引等。

image.png

阿⾥云 MongoDB 产品形态及选型

阿里云 MongoDB 产品主要有四种形态:On ECS 云盘、本地盘、Serverless、单节点,在生产环境上主要采用 On ECS 云盘、本地盘两种形态。

在刚刚发布的阿里云 MongoDB 4.4 版本,存储是基于云盘的,支持云盘快照备份,直接基于快照时间点进行增量同步,扩容升规格的数据同步时间大大缩减,解决了本地盘升规格数据同步时间长的痛点。

MongoDB 全量备份⽅法

image.png

作为数据库系统,数据可靠性很重要。

阿里云 MongoDB 支持 3 种数据备份方式:

逻辑备份:通过遍历所有集合,把文档逐个读出。比如 MongoDump 就是通过逻辑备份的方式进行备份。  

物理备份:直接拷贝物理数据文件进行备份。  

快照备份:依赖于 IAAS 层提供的云盘快照能力进行数据备份。

MongoDB 全量逻辑备份 VS 物理备份 VS 快照备份的区别:

image.png

逻辑备份 :相对于物理备份和快照备份,不管是备份效率、成功率、还是恢复效率都比较低。更重要的是备份期间还会直接与业务争抢资源,所以阿里云 MongoDB 本地盘形态默认采用的是物理备份的方式。  

物理备份:

社区版 MongoDB 物理备份刷盘是需要对 FsyncLock 加全局写锁,不是『热』备份。

其他物理热备份方案:Percona MongoDB

备份过程磁盘空间增长迅猛。

阿里云 MongoDB 物理备份

热备份:基于 WiredTiger 原生热备份方法进行改进,备份过程无需加锁,同时解决磁盘空间增长问题;

单库恢复:极大减少恢复所需下载数据量, 从而缩短恢复时间。

image.png

分片集群备份:

分片集群备份难点  

外部一致性:当多个 Shard 上同时有写入时,如何在每个 Shard 上确定一个全局一致的备份点,使得备份出来的数据满足逻辑时钟上的先后顺序。

内部一致性:比如,将数据从一个 shard 迁移到另一个 shard ,且备份存在先后顺序。如何确保备份不会丢失?、

里云 MongoDB 分片集群备份,能够保证各个 shard 之间数据恢复到同一个时间点,另外通过分析审计日志,避免将数据恢复到存在数据迁移的时间段,从而避免出现数据缺少备份的情况。

阿里云 MongoDB秒级监控:

image.png

在实例监控中,阿里云 MongoDB 支持将监控采集力度设置为秒级,能够更加精准的、准确的反映出数据库的性能、峰值、业务访问的变化情况以及资源的使用情况,为业务提供参考。

阿⾥云 MongoDB CloudDBA:会话管理:

image.png

另外,阿里云 MongoDB 还有 ClouDBA 的附加功能模块, ClouDBA 可以管理 MongoDB 会话,对执行时间长的 mysql 语句、没走索引的情况,以及全表扫描等操作,可以通过会话管理主动进行终止,避免 mysql 语句长时间执行,影响业务。  

阿⾥云 MongoDB CloudDBA:索引推荐

image.png

ClouDBA 还提供了基于代价评估的索引推荐功能。代价评估指的是根据实际执行操作的统计信息以及成本模型、代价模型。

如: CPO 与 IO 代价的换算,根据它们计算每个执行计划的成本,从中挑选出成本最小的执行计划。基于规则评估,更多的是依据经验和设定好的规则去选择执行计划,通常是比较简单的,但并不是最优的执行计划。

所以基于代价评估通常会比基于规则评估更加准确。 而 ClouDBA 的自动生产索引推荐也在阿里巴巴内部经过了三年以上的生产环境验证,推荐成功率达98%以上。

阿⾥云 MongoDB 全链路安全能力:

阿⾥云 MongoDB 的安全image.png也是受关注的一个话题。

阿里云 MongoDB 提供了完整的全链路安全能力,从先后顺序上可以分为事前、事中、事后三个方面。

事前,即对数据库进行操作之前,有专有网络隔离、白名单控制、账号密码鉴权、安全环境免密措施保证。

事中,即对数据库进行读写操作时,可以通过访问链路加密,如 SSL 访问链路加密; TDE 数据落盘加密、备份文件加密等措施保证。

事后,即对数据库操作完成之后,可以通过分析审计日志,知道谁在什么时间点执行什么操作。

3. MongoDB 行业应用案例

image.png

MongoDB 典型的行业应用案例

以游戏行业举例说明,游戏业务的特点是迭代效率快;高性能;易于部署;数据模型经常变更;业务规模变化快,需要快速扩展。

MongoDB 广泛应用于游戏行业,以网易游戏为例,海外游戏中,网易游戏10个 region 里超过45个项目使用了 MongoDB ;集群部署超过60个,分片超过120个。

游戏行业一站式解决方案

image.png

针对游戏行业提出了一站式解决方案,比如:游戏多变的业务需求、数据模型变更、与MongoDB 的 schema free (自由 schema )和文档模型是完美匹配。

针对游戏回档需求,支持将数据恢复到任意时间点,同时支持单库恢复,进一步减少数据恢复需要的时间。

针对游戏的运营分析,可以采用 MongoDB 的聚合管道以及 Spark Connector 去满足业务的分析性需求。

MongoDB ⼴泛应⽤于汽⻋行业

image.png

在应用的汽车行业中,主要特性有数据量大;数据结构灵活;分析能力强;高性能。

常见的应用场景包括:车联网数据存储、车辆监控与预测、车辆状态的仿真。

这是某大型车企通过 MongoDB 解决高并发、大量数据实时访问的一个案例。

image.png

车联网数据通过终端传回数据中心之后,需要进行实时简析和使用的场景。

数据量每秒达到约五万,年累计两千亿左右。该案例主要的难点在于不仅要实现在亿级记录中,灵活查询和支持毫秒级返回,还需要实现每秒2万行记录写入,每5秒20万行记录的随机删除能力。经过验证, MongoDB 充分胜任。

除此之外, MongoDB 在互联网在线教育、金融行业广泛应用,也有对应的解决方案和案例。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
79 2
|
7月前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 分片策略与最佳实践
【5月更文挑战第10天】MongoDB 分片是应对大数据量的扩展策略,涉及哈希和范围分片两种策略。分片架构包含分片服务器、配置服务器和路由服务器。最佳实践包括选择合适分片键、监控调整、避免热点数据等。注意数据分布不均和跨分片查询的挑战。通过实例展示了如何在电商场景中应用分片。文章旨在帮助理解并优化 MongoDB 分片使用。
270 3
【MongoDB 专栏】MongoDB 分片策略与最佳实践
|
5月前
|
存储 NoSQL Java
使用MongoDB实现NoSQL数据库的最佳实践
使用MongoDB实现NoSQL数据库的最佳实践
|
6月前
|
NoSQL 安全 MongoDB
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
218 0
|
6月前
|
存储 NoSQL 数据管理
MongoDB关系处理:优化数据管理、提升性能的最佳实践
MongoDB关系处理:优化数据管理、提升性能的最佳实践
|
6月前
|
存储 NoSQL MongoDB
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
102 0
|
6月前
|
监控 NoSQL MongoDB
深入MongoDB监控:全面解析命令、实用示例与最佳实践
深入MongoDB监控:全面解析命令、实用示例与最佳实践
180 0
|
7月前
|
监控 NoSQL 测试技术
MongoDB性能最佳实践:如何制定更有效的基准测试?
感谢你与我们一起走过这段MongoDB性能最佳实践之旅,希望你能从中获取一些有用的信息
1952 3
|
7月前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
7月前
|
存储 缓存 NoSQL