网站定制开发优点,网站建设模板报价,徐闻网站建设公司,wordpress 文章字体颜色1.背景 目前#xff0c;文档型数据库由于灵活的schema和接近关系型数据库的访问特点#xff0c;被广泛应用#xff0c;尤其是游戏、互联网金融等行业的客户使用MongoDB构建了大量应用程序#xff0c;比如游戏客户用来处理玩家的属性信息#xff1b;又如股票APP用来存储与时…1.背景 目前文档型数据库由于灵活的schema和接近关系型数据库的访问特点被广泛应用尤其是游戏、互联网金融等行业的客户使用MongoDB构建了大量应用程序比如游戏客户用来处理玩家的属性信息又如股票APP用来存储与时间线相关的行情数据。随着时间的推移和业务的发展MongoDB库越来越大大库治理是必须面临的问题。 一般来讲大库治理有如下几种方案。一是做冷热数据隔离将数据根据使用频率分为热、温、冷、冻级别超过一定时间的冷数据转储到另一个冷库或低成本存储的数据库热库只保留近期访问频繁的数据二是做垂直拆分比如大系统有多个集合按照模块进行垂直划分把不同模块对应的集合拆分到不同库实现数据量和访问量的垂直分离三是做水平拆分比如选择userid的哈希值将大的集合水平拆分到多个库实现整体存储和计算能力的扩展。第四也有部分业务它的历史数据的使命完成走完生命周期可以直接删除。这4种方案各有利弊且需要根据实际业务场景进行选型。而很多场景下客户会选择水平sharding主要原因如下 很多业务需要经常查询历史数据水平sharding不需要删除或分离历史数据 长远来看水平sharding的扩展性更好可以支撑更大的业务规模。 DocumentDB Elastic Cluster是亚马逊云科技提供的一个很好的支持水平sharding的云数据库服务。本文主要针对客户从MongoDB副本集架构迁移到DocumentDB Elastic Cluster的过程中如何进行海量数据迁移的问题进行研究并提供最佳实践。 2.可选迁移方案 众所周知含有大数据量的数据库的迁移是比较有挑战性的问题。数据库在不断的读写不仅需要在目标库完成当前全量数据的初始化也需要把初始化期间的数据变化同步到新库。以下是迁移方案示意图 MongoDB记录文档变化的方式有两种oplog和change stream。由于oplog或change stream的存储空间是有限的因此全量初始化阶段的迁移速度是必须要考虑的因素。另外增量同步阶段的速度也必须大于源数据库的变化速度这样才能实现新旧数据库的数据一致。这两个阶段我们都需要依赖稳定、高效的工具来完成。尤其在大型数据库的迁移时甚至要配合一定的数据迁移策略比如并行、压缩冷、热数据分别迁移不同集合分别迁移等。 亚马逊云科技有3种可行的迁移方案 AWS DMS全量增量迁移 Mongoshake全量增量迁移 Mongodump/mongorestoreDMS增量迁 方案1AWS DMS全量增量 DMS是亚马逊云科技的一项云服务允许迁移关系数据库、MongoDB数据库和其他类型的数据存储。可以使用DMS执行一次性迁移或复制源库正在进行的更改以保持源和目标同步。DMS在全量迁移阶段提供了Auto segmentation和Range segmentation的方式来并行加速迁移在CDC增量阶段3.5 bet版也支持并发方式写入DocumentDB。
方案2Mongoshake全量增量 开源的Mongoshake也支持迁移写入DocumentDB。由于它属于开源产品优势是社区活跃遇到问题可以定制开发解决迁移速度较快劣势是遇到问题可以获得的技术支持力度较低用户需要自己定位或求助社区。
方案3Mongodump/mongorestoreDMS增量 mongodump是MongoDB官方提供的备份工具它可以从MongoDB数据库读取数据并生成BSON文件然后通过mongorestore工具恢复到MongoDB。它也同样支持从DocuemntDB备份数据。而mongodb-database-tools的6.1版本也支持恢复到DocumentDB Elastic Cluster。这种方案的优势是稳定快速缺点是增量同步能力不足。但是可以借助DMS的增量同步能力。重点是需要选择好增量同步的起始位点防止数据丢失。 以上三种方案各有优缺点如下表。 使用DMS托管服务用户配置迁移任务最方便整个迁移过程日志清晰、速度直观可观测性较好。Mongoshake在增量写入DocumentDB环节速度略慢在TPS较高的场景不适用而mongodump和mongorestore在MongoDB大数据库迁移场景上速度比DMS full load更快。大库迁移是否成功的一个非常重要因素是迁移速度。 原标题大型MongoDB数据库迁移到DocumentDB Elastic Cluster的最佳实践
原链接https://aws.amazon.com/cn/blogs/china/best-practices-for-migrating-large-mongodb-databases-to-documentdb-elastic-cluster/