有一个表格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"是独一无二的
感谢。
答案 0 :(得分:0)
不,你不能,但我不会那么担心。当您将这两个表连接在一起时,是否过滤了表b或a?如果是这样,Greenplum将使用它来仅移动完成数据所需的数据。
其次,如果你担心它,你可以通过添加表b中的列来对表格a进行去规范化。