Redshift创建表Distkey,超过列错误

时间:2018-04-05 22:35:18

标签: sorting indexing database-design amazon-redshift

此语句用于在redshift中创建表:

create table scoresc
distkey (metrics_id, scorefactors_id, tips_id)
compound sortkey (metrics_id, scorefactors_id, tips_id, expor_timestamp)
as select * from scores;

=== 为什么会出错? 执行SQL命令时发生错误:

create table scoresc
distkey (metrics_id, scorefactors_id, tips_id)
compound sortkey (metrics_id, scorefactors_id, tips_id, export_timestamp...

[Amazon](500310) Invalid operation: syntax error at or near "," 
Position: 46;

distkey (metrics_id, scorefactors_id, tips_id)

============= redshift文档不提供DISTKEY多列

的示例

2 个答案:

答案 0 :(得分:0)

不确定您尝试使用该功能,但只能在一个密钥上分发。 distkey的想法是提供一种在群集中的所有节点之间均匀地分割表的方法,多个分发键在这方面不太有意义。

尝试使用一个distkey,而不是在群集中最均匀地划分

答案 1 :(得分:0)

如果您确定需要按所有这些列进行分发,则可以通过将这些列与某些分隔符(例如

)组合来创建其他连接键列。

metrics_id||'-'||scorefactors_id||'-'||tips_id

并将其用作桌子的dist键。