【问题标题】:Greenplum distribution key that depends on the distribution of other keyGreenplum 分发密钥,依赖于其他密钥的分发
【发布时间】:2016-02-02 15:26:59
【问题描述】:

有一个表A,按x列分布;

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

还有另一个表 B 有列“y”但没有列“x”。

CREATE TABLE B (y integer);

有什么办法可以根据表 A 上“y”的分布来分配 B 吗?所以我们可以使用列“y”连接两个表,而无需在段之间重新分配数据?基本上意味着表A上“y”列的分布驱动表B的分布。

SELECT 
*
FROM A 
JOIN B using (y);

问题是表 A 经常连接到由“x”分布的其他表,这就是为什么我们不想更改表 A 的分布。

“y”列是唯一的

谢谢。

【问题讨论】:

    标签: greenplum


    【解决方案1】:

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

    其次,如果您对此感到担心,可以通过添加表 b 中的列来反规范化表 a。

    【讨论】:

    • 我就是这么想的。我想确认没有简单的解决方法或设计策略可以提供帮助(尽管我们对后者没有太大的灵活性)。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多