在redshift中改变现有表中的diststyle。可能吗?

时间:2014-04-17 13:00:53

标签: amazon-redshift

而不是删除一个表并将其重新创建为diststyle我希望改变表格diststyle,这可能吗?

谢谢!

3 个答案:

答案 0 :(得分:9)

我发现的最简单方法是使用以下内容:

BEGIN;

CREATE TABLE mytable_tmp
DISTSTYLE ALL -- You can also use DISTKEY(some_column) or DISTSTYLE EVEN
AS SELECT * FROM mytable;

DROP TABLE mytable;
ALTER TABLE mytable_tmp RENAME TO mytable;

COMMIT;

这使您可以轻松修改表的distkey或diststyle,甚至不知道该表中的列。您只需要知道表格的名称。

答案 1 :(得分:1)

似乎没有可能。更容易重新创建从旧表填充的表。

答案 2 :(得分:1)

现在您可以使用ALTER TABLE table_name ALTER DISTSTYLE KEY DISTKEY column_name,后面应该跟着VACUUM SORT ONLY table_name

see docs for more details。该表将重新分配到群集上:

  

指定DISTSTYLE KEY时,数据将按DISTKEY列中的值进行分配。有关DISTSTYLE的更多信息,请参阅...