MongoDB文档翻译-Map Reduce与分片集合

本文介绍如何在MongoDB的分片集合上执行Map-Reduce操作。包括将分片集合作为输入时mongos如何自动并行分配任务,以及作为输出时如何利用_id字段进行分片,并介绍了块平衡和分割的相关注意事项。

英文原文地址:https://docs.mongodb.com/v3.2/core/map-reduce-sharded-collections/
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。

Map-Reduce与分片集合

Map-reduce支持在分片集合上操作,既可以作为输入,也可以作为输出。该篇文章描述了对分片集合特有的mapReduce行为。

分片集合作为输入

当使用分片集合作为map-reduce的输入时,mongos会自动并行地把map-reduce任务分配给各个分片。并不需要指定特别的选项,mongos会等待所有分片完成任务。

分片集合作为输出

如果mapReduceout字段有分片值,MongoDB会用_id字段作为分片键对输出集合分片。

要输出到一个分片集合:

  • 若分片集合不存在,MongoDB创建该集合,然后在_id字段上对集合分片。
  • 对于新的或者空的分片集合,MongoDB使用map-reduce操作的第一个阶段的结果来创建分布在分片中的初始块。
  • mongos并行地把map-reduce后处理任务分配给拥有该块的每个分片。在后处理中,每个分片将会从其他分片中拉取它这个块的结果,运行最终的reduce,然后把输出集合写入到本地。

注意:

  • 在后面的map-reduce作业中,MongoDB按需分割块
  • 在后处理过程中,对输出集合的块平衡调节自动是阻止的,以避免并发问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值