我们打电话给Greenplum,Redshift MPP或者什么都不分享。 但我真的不明白为什么? 如果它意味着在多级联接查询期间,一个主机一直在计算,没有主机互相交换数据?,没有洗牌? 和/或其他情况。 什么是"什么都不分享"?
答案 0 :(得分:1)
无共享意味着没有两台服务器共享相同的数据(除了镜像以实现高可用性)。一个简单的例子是双节点集群,其中数据由gender_code分发。 Node1将拥有所有的男性,而node2拥有所有的女性。
在现实世界中,您拥有的节点数量不仅仅是两个,因此您可以通过ID列等方式分发数据。这使您可以跨所有节点均匀分布数据。
正如您可能猜到的,优化器必须非常智能,以减少执行查询所需的数据移动量。它还需要将查询切分为多个部分,以便它可以一次执行查询的多个切片。 Greenplum已存在超过10年,并且拥有成熟的优化器,可以很好地执行各种查询。
答案 1 :(得分:1)
"没有共享"描述了并行运行的进程之间共享的资源。因此,您可能拥有在单个主机上运行的共享内存方法,多个主机之间的共享存储或具有自己的处理,RAM和存储的自包含系统。基于这些自包含系统中的一些的部署将被描述为"没有共享"。
在无共享系统中,每个节点都将存储数据的子集。这些系统中的查询规划器尝试在存储数据的同一主机上尽可能多地完成工作,并尽可能少地移动或随机移动(在Greenplum系统上,查询计划中的这些步骤称为运动)。
答案 2 :(得分:0)
我们称之为MPP'无共享'作为一种将Greenplum与“共享的一切”进行比较的方法。像Oracle RAC这样的体系结构,它在集群中也有多个服务器,但它们都连接回同一组数据文件。