假设我们在MongoDB中有5个碎片具有数据收集,并且我必须编写一个聚合逻辑,它应该在集群中的5个碎片上工作,并从这些碎片中收集数据。应该在应用程序开发方面加以注意吗?就像通过切分键连接到每个碎片分离器并获取数据一样,或者一旦我编写了聚合逻辑并将jar部署到这个集群中,它将处理我的MongoDB本身,以便从这些碎片数据上读取这些碎片和工作聚合逻辑。
就像在Cassandra MapReduce中,它将由作业跟踪器处理,以将作业发送到适当的节点。
发布于 2015-05-08 14:33:31
您不需要连接到MongoDB数据库中的特定碎片。相反,您可以连接到一个为您处理路由的mongos实例。
在您的示例中,您通常会通过在终端中键入mongos或通过特定于语言的客户端来连接到mongo实例。您将聚合操作发送到mongos实例,它将将操作分发到每个碎片,并在最后组合结果。
在许多方面,切分对用户来说是透明的(尽管对数据库架构师来说肯定不是透明的):许多在非切分mongod实例上运行的查询将以相同的方式在mongos实例上运行。
https://dba.stackexchange.com/questions/100993
复制相似问题