【MongoDB训练营】第七课:MongoDB最佳实践 答疑汇总【内含前6天课程答疑链接】

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
简介: 【MongoDB训练营】第七课:MongoDB最佳实践 答疑汇总 【内含前6天课程答疑链接】

1.请问关于MongoDB 5分片环境,每个分片的架构是主从arbiter(交叉部署), 把其中的部分片的一个副本节点迁移到新机器上,现在每个分片加入一个数据节点,以4个节点的方式运行(主从从arbiter), 变更当天,再切换剔除其中一个节点,这样的方案可行吗?变更当天需要登录mongos更新分片信息吗?期待老师的答复
A:可以的,添加新节点之后会自动进行数据同步,待数据同步完成,将老机器上的节点通过rs.remove()移除就可以了。为分片增加节点不需要更新mongos信息,这个不涉及到分片路由信息的变动。

2.单个分片的副本集以4节点运行可以吗
A: 如果本身已经有三个数据节点了(一个primary和两个secondary),不建议再加一个arbiter,保持投票节点为奇数个,防止脑裂场景

3.mongodb和es应用场景有何区别
MongoDB的适用场景TJ老师视频中也讲到了,ES的主要场景是全文检索、搜索、时序/日志分析等,还是有很多区别的

4.mongodb的周边生态建设太缓慢,比如sharding的一致性备份之类的,好像到目前还没有特别完善的方案。您怎么看mingodb的周边生态工具建设
A: 在MongoDB周边生态工具上,阿里云提供了DMS(可视化管理工具)、DBS(数据库备份)、DAS(数据库自治)、DTS(数据迁移)等服务,有兴趣可以关注。阿里云MongoDB提供了sharding的一致性备份方案,并且支持恢复到任意时间点,这个基于开源产品的话目前应该确实并没有比较好的方案,存在一些技术难点。

5.实时数据分析,有个场景,用oracle做的,sql比较能支持复杂条件语句查询分析,但是累计下来数据量越来越大,只能做结转,现在想迁移到用mongo做,但是感觉mongodb貌似不太支持复杂条件的sql查询,有什么好的处理办法吗?谢谢老师
A:这个要结合数据模型和业务查询需求来综合看,如果主要的查询分析请求需要涉及多表数据的关联查询,不建议用,除此之外,MongoDB是能满足很多复杂查询的,这个通过MongoDB提供aggregate的各种操作符,可以实现很强大的查询分析能力。

6.在mongodb内存放图片与视频,能讲一下实际的使用情况吗?
A: 这个可能需要看一下具体的case来看

7.这么大量的数据,memory 要求是不是特别高呢
A:MongoDB的分片扩展能力很好,对于大量数据,首先是可以通过sharding集群架构来解决数据分布问题,数据分摊到多个节点/机器来存储。通常来说,MongoDB使用的WiredTiger引擎的cache size与每个shard节点的磁盘数据量是有一个比例关系的。

8.mongo只用来记录api层的业务数据,提供业务单据的详情查询,后期的报表用es或者关系型数据库做为数据源,这种场景下,mongo是否需要做分片?从mongo将业务数据转成es需要的统计数据,这段处理可以用哪些方法实现呢?
A:MongoDB是否要做分片,主要还是当前数据量已经未来业务的增长情况,如果预估数据量会比较大、数据增长较快,则优先使用分片。将数据从MongoDB同步到ES,也有很多的方案,比如mongodb-connector、ES提供的插件都可以做。

【内含前6天课程答疑汇总】
Day1 走进MongoDB
https://developer.aliyun.com/article/780279

Day2 MongoDB聚合框架

https://developer.aliyun.com/article/780474

Day3 复制集使用及原理介绍
https://developer.aliyun.com/article/780482

Day4 分片集群的使用及原理介绍
https://developer.aliyun.com/article/780552

Day5 ChangeStream使用及原理介绍
https://developer.aliyun.com/article/780590

Day6 事务功能使用及原理介绍
https://developer.aliyun.com/article/780594

相关实践学习
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
目录
相关文章
|
NoSQL Oracle MongoDB
【最佳实践】MongoDB导出导入数据
【最佳实践】MongoDB导出导入数据
500 2
|
运维 NoSQL 安全
【最佳实践】高可用mongodb集群(1分片+3副本):规划及部署
结合我们的生产需求,本次详细整理了最新版本 MonogoDB 7.0 集群的规划及部署过程,具有较大的参考价值,基本可照搬使用。 适应数据规模为T级的场景,由于设计了分片支撑,后续如有大数据量需求,可分片横向扩展。
1145 1
|
存储 JSON NoSQL
数据库系列课程(22)-MongoDB 常用命令
数据库系列课程(22)-MongoDB 常用命令
287 0
|
存储 NoSQL 关系型数据库
数据库系列课程(21)-MongoDB应用场景
数据库系列课程(21)-MongoDB应用场景
218 0
|
NoSQL MongoDB 索引
【最佳实践】MongoDB导入数据时重建索引
【最佳实践】MongoDB导入数据时重建索引
269 0
|
3月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
68 2
|
6月前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 分片策略与最佳实践
【5月更文挑战第10天】MongoDB 分片是应对大数据量的扩展策略,涉及哈希和范围分片两种策略。分片架构包含分片服务器、配置服务器和路由服务器。最佳实践包括选择合适分片键、监控调整、避免热点数据等。注意数据分布不均和跨分片查询的挑战。通过实例展示了如何在电商场景中应用分片。文章旨在帮助理解并优化 MongoDB 分片使用。
249 3
【MongoDB 专栏】MongoDB 分片策略与最佳实践
|
4月前
|
存储 NoSQL Java
使用MongoDB实现NoSQL数据库的最佳实践
使用MongoDB实现NoSQL数据库的最佳实践
|
5月前
|
NoSQL 安全 MongoDB
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
184 0
|
5月前
|
存储 NoSQL 数据管理
MongoDB关系处理:优化数据管理、提升性能的最佳实践
MongoDB关系处理:优化数据管理、提升性能的最佳实践

相关产品

  • 云数据库 MongoDB 版