Greenplum分配密钥取决于其他密钥的分配

时间:2016-02-02 15:26:59

标签: greenplum

有一个表格A按列x分发;

CREATE table A (x integer, y integer) distributed by (x);

还有另一张表B,其中有一列" y"但不是" x"。

CREATE TABLE B (y integer);

我们有什么方法可以根据" y"的分布来分发B.在桌子A?所以我们可以使用列" y"来加入两个表。无需在段之间重新分配数据?基本上意味着列的分布" y"在表A上驱动表B的分布。

SELECT 
*
FROM A 
JOIN B using (y);

问题是表A经常连接到由" x"分发的其他表。这就是为什么我们不想改变表格A的分布。

专栏" y"是独一无二的

感谢。

1 个答案:

答案 0 :(得分:0)

不,你不能,但我不会那么担心。当您将这两个表连接在一起时,是否过滤了表b或a?如果是这样,Greenplum将使用它来仅移动完成数据所需的数据。

其次,如果你担心它,你可以通过添加表b中的列来对表格a进行去规范化。