开发者学堂课程【MongoDB 快速入门:MongoDB 最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/49/detail/1006
MongoDB 快速入门-MongoDB 最佳实践(二)
二、阿里云 MongoDB 产品特性及服务
1、阿里云 MongoDB 介绍
(1)阿里云 MongoDB 云数据库特性主要有:
开箱即⽤(免除运维烦恼) 、弹性伸缩 (快速应对业务变化) 、⾼可⽤ (业务持续、数据可靠) 、持续备份 (任意时间点备份恢复) 、安全加固 (SSL + TDE 加密) 、审计⽇志 (访问记录、有据可查)、秒级监控 (性能数据、⼀⽬了然) 、CloudDBA (⾃动诊断、智能优化)
(2)阿里云 MongoDB 云数据库技术优势:
⾼性价⽐:对于短链接场景进行优化,短链鉴权性能提升 10 倍
运维效率:支持对⾼危命令审计、快速定位问题,默认后台建索引、避免影响在线业务, 支持物理热备份+单库恢复、备份恢复时间缩短⼀半。
⽣态⼯具:开源 Mongo-Shake 同步⼯具、⽀持异地多活,阿⾥云⽣态打通 Dataworks、XPack Spark 等服务。
原⼚战略合作:可以在全球范围内领先使用 MongoDB 最新版本,同时与原厂进行了研发产品合作。
需求定制:可以针对大客户的合理需求进行定制开发,满足客户需要。
专家服务:由业内顶尖的数据库专家提供服务,结合业务场景,提供行业解决方案,业务优化建议等等。
阿里云&MongoDB 公司战略合作:
阿里云与 MongoDB 公司在 2019 年下半年达成战略合作,
阿里云荣膺 MongoDB 公司『2019 全球最佳 ISV 合作伙伴』奖。
基于合作,阿里云可以在全球领先使用最新版本,比如目前的 4.4、4.2、4.0 的最新版本,并且阿里云第一时间合入官方优化和 Bug Fix。同时不定期与原厂进行产品技术交流。
在研发合作方面,最近发布的 MongoDB 4.4 版本中我们与 MongoDB 公司合作共建 Hidden Indexes 特性。
2、阿里云 MongoDB 产品特性
要使用云服务,首先要解决上云的问题,将自建服务搬到云上,另外在混合云里也可能需要对多个环境的数据进行同步,或者是在不同架构形态之间进行转换。
针对这些需求,阿里云自研并开源了 MongoShake ⼯具以支持不同架构形态的转换、数据迁移、数据同步。另外也可以使用阿里云 DTS来解决这些问题。
MongoDB 4.x 版本新增特性:
从 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,另外还支持可恢复的全量同步、并发建索 引等。
阿⾥云 MongoDB 产品形态及选型
阿里云 MongoDB 产品主要有四种形态:On ECS 云盘、本地盘、Serverless、单节点,在生产环境上主要采用 On ECS 云盘、本地盘两种形态。
在刚刚发布的阿里云 MongoDB 4.4 版本,存储是基于云盘的,支持云盘快照备份,直接基于快照时间点进行增量同步,扩容升规格的数据同步时间大大缩减,解决了本地盘升规格数据同步时间长的痛点。
MongoDB 全量备份⽅法
作为数据库系统,数据可靠性很重要。
阿里云 MongoDB 支持 3 种数据备份方式:
逻辑备份:通过遍历所有集合,把文档逐个读出。比如 MongoDump 就是通过逻辑备份的方式进行备份。
物理备份:直接拷贝物理数据文件进行备份。
快照备份:依赖于 IAAS 层提供的云盘快照能力进行数据备份。
MongoDB 全量逻辑备份 VS 物理备份 VS 快照备份的区别:
逻辑备份 :相对于物理备份和快照备份,不管是备份效率、成功率、还是恢复效率都比较低。更重要的是备份期间还会直接与业务争抢资源,所以阿里云 MongoDB 本地盘形态默认采用的是物理备份的方式。
物理备份:
社区版 MongoDB 物理备份刷盘是需要对 FsyncLock 加全局写锁,不是『热』备份。
其他物理热备份方案:Percona MongoDB
备份过程磁盘空间增长迅猛。
阿里云 MongoDB 物理备份
热备份:基于 WiredTiger 原生热备份方法进行改进,备份过程无需加锁,同时解决磁盘空间增长问题;
单库恢复:极大减少恢复所需下载数据量, 从而缩短恢复时间。
分片集群备份:
分片集群备份难点
外部一致性:当多个 Shard 上同时有写入时,如何在每个 Shard 上确定一个全局一致的备份点,使得备份出来的数据满足逻辑时钟上的先后顺序。
内部一致性:比如,将数据从一个 shard 迁移到另一个 shard ,且备份存在先后顺序。如何确保备份不会丢失?、
里云 MongoDB 分片集群备份,能够保证各个 shard 之间数据恢复到同一个时间点,另外通过分析审计日志,避免将数据恢复到存在数据迁移的时间段,从而避免出现数据缺少备份的情况。
阿里云 MongoDB秒级监控:
在实例监控中,阿里云 MongoDB 支持将监控采集力度设置为秒级,能够更加精准的、准确的反映出数据库的性能、峰值、业务访问的变化情况以及资源的使用情况,为业务提供参考。
阿⾥云 MongoDB CloudDBA:会话管理:
另外,阿里云 MongoDB 还有 ClouDBA 的附加功能模块, ClouDBA 可以管理 MongoDB 会话,对执行时间长的 mysql 语句、没走索引的情况,以及全表扫描等操作,可以通过会话管理主动进行终止,避免 mysql 语句长时间执行,影响业务。
阿⾥云 MongoDB CloudDBA:索引推荐
ClouDBA 还提供了基于代价评估的索引推荐功能。代价评估指的是根据实际执行操作的统计信息以及成本模型、代价模型。
如: CPO 与 IO 代价的换算,根据它们计算每个执行计划的成本,从中挑选出成本最小的执行计划。基于规则评估,更多的是依据经验和设定好的规则去选择执行计划,通常是比较简单的,但并不是最优的执行计划。
所以基于代价评估通常会比基于规则评估更加准确。 而 ClouDBA 的自动生产索引推荐也在阿里巴巴内部经过了三年以上的生产环境验证,推荐成功率达98%以上。
阿⾥云 MongoDB 全链路安全能力:
阿⾥云 MongoDB 的安全也是受关注的一个话题。
阿里云 MongoDB 提供了完整的全链路安全能力,从先后顺序上可以分为事前、事中、事后三个方面。
事前,即对数据库进行操作之前,有专有网络隔离、白名单控制、账号密码鉴权、安全环境免密措施保证。
事中,即对数据库进行读写操作时,可以通过访问链路加密,如 SSL 访问链路加密; TDE 数据落盘加密、备份文件加密等措施保证。
事后,即对数据库操作完成之后,可以通过分析审计日志,知道谁在什么时间点执行什么操作。
3. MongoDB 行业应用案例
MongoDB 典型的行业应用案例
以游戏行业举例说明,游戏业务的特点是迭代效率快;高性能;易于部署;数据模型经常变更;业务规模变化快,需要快速扩展。
MongoDB 广泛应用于游戏行业,以网易游戏为例,海外游戏中,网易游戏10个 region 里超过45个项目使用了 MongoDB ;集群部署超过60个,分片超过120个。
游戏行业一站式解决方案
针对游戏行业提出了一站式解决方案,比如:游戏多变的业务需求、数据模型变更、与MongoDB 的 schema free (自由 schema )和文档模型是完美匹配。
针对游戏回档需求,支持将数据恢复到任意时间点,同时支持单库恢复,进一步减少数据恢复需要的时间。
针对游戏的运营分析,可以采用 MongoDB 的聚合管道以及 Spark Connector 去满足业务的分析性需求。
MongoDB ⼴泛应⽤于汽⻋行业
在应用的汽车行业中,主要特性有数据量大;数据结构灵活;分析能力强;高性能。
常见的应用场景包括:车联网数据存储、车辆监控与预测、车辆状态的仿真。
这是某大型车企通过 MongoDB 解决高并发、大量数据实时访问的一个案例。
车联网数据通过终端传回数据中心之后,需要进行实时简析和使用的场景。
数据量每秒达到约五万,年累计两千亿左右。该案例主要的难点在于不仅要实现在亿级记录中,灵活查询和支持毫秒级返回,还需要实现每秒2万行记录写入,每5秒20万行记录的随机删除能力。经过验证, MongoDB 充分胜任。
除此之外, MongoDB 在互联网在线教育、金融行业广泛应用,也有对应的解决方案和案例。