mongo 的 MR 可以将结果写入另一个分片集合吗?
Posted
技术标签:
【中文标题】mongo 的 MR 可以将结果写入另一个分片集合吗?【英文标题】:Can mongo's MR write the result to another sharded collection? 【发布时间】:2012-05-07 21:07:06 【问题描述】:根据 Mongo MR 文档 (http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-ShardedEnvironments),分片数据上的 MR 作业的输出可以将结果写入另一个分片集合,但是只有 _ID 可以用作分片键。
有没有办法发出或设置将分配给结果文档的_ID?说使用 UserID 或 CustomerNo 本身用作分片键?
【问题讨论】:
【参考方案1】:Map-Reduce 生成的文档中的_id
与您在映射阶段在emit(...)
中使用的键相同。它可以是任何类型,包括(子)文档,但在最终文档中始终以_id
字段的形式出现。
如果您的目标(分片)集合使用 ObjectId
以外的某个自定义值作为 _id
的值,则可以使用分片 map-reduce 并将输出输出到该集合。
sharded map-reduce 也有一些限制,特别是 map-reduce 不会触发拆分或迁移,并且不支持 limit
选项。
【讨论】:
以上是关于mongo 的 MR 可以将结果写入另一个分片集合吗?的主要内容,如果未能解决你的问题,请参考以下文章