【发布时间】:2014-06-01 18:26:10
【问题描述】:
我希望更改表的diststyle,而不是删除表并将其重新创建为diststyle,这可能吗?
谢谢!
【问题讨论】:
标签: amazon-redshift
我希望更改表的diststyle,而不是删除表并将其重新创建为diststyle,这可能吗?
谢谢!
【问题讨论】:
标签: amazon-redshift
似乎不可能。更容易重新创建从旧表填充的表。
【讨论】:
alter table XXX alter diststyle to all; 会更容易,但这是我的意见。
我发现最简单的方法是使用以下方法:
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,甚至不知道该表中有哪些列。您只需要知道表的名称。
【讨论】:
现在可以使用ALTER TABLE table_name ALTER DISTSTYLE KEY DISTKEY column_name,后面应该是VACUUM SORT ONLY table_name
see docs for more details。该表将在集群上重新分布:
指定 DISTSTYLE KEY 时,数据按 DISTKEY 列中的值分布。有关 DISTSTYLE 的更多信息,请参阅 ...
【讨论】: