Greenplum 分发密钥,依赖于其他密钥的分发
Posted
技术标签:
【中文标题】Greenplum 分发密钥,依赖于其他密钥的分发【英文标题】:Greenplum distribution key that depends on the distribution of other key 【发布时间】: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”列是唯一的
谢谢。
【问题讨论】:
【参考方案1】:不,你不能,但我不会那么担心。当您将这两个表连接在一起时,您是否过滤表 b 或 a?如果是这样,Greenplum 将使用它来仅移动完成数据所需的数据。
其次,如果您对此感到担心,可以通过添加表 b 中的列来反规范化表 a。
【讨论】:
我就是这么想的。我想确认没有简单的解决方法或设计策略可以提供帮助(尽管我们对后者没有太大的灵活性)。谢谢。以上是关于Greenplum 分发密钥,依赖于其他密钥的分发的主要内容,如果未能解决你的问题,请参考以下文章