RedShift建表指定DISTKEY与SORTKEY报错,请求语法排查
Redshift建表DISTKEY/SORTKEY语法错误解决方法
你的建表语句触发语法错误,核心问题是关键字使用错误,以及语法解析时的位置误判:
- 错误使用了
SORTKEYS关键字,Redshift中不存在这个写法,多列排序键应该用SORTKEY(默认是复合排序键),或者根据需求明确指定COMPOUND SORTKEY(复合排序)或INTERLEAVED SORTKEY(交错排序)。 - 报错提示的
DISTSTYLE位置错误,实际是解析器处理无效的SORTKEYS时,误判了语法节点导致的偏差。
修正后的正确建表语句如下:
CREATE TABLE IF NOT EXISTS dev.sch.tbl ( date DATE NOT NULL, cid VARCHAR(32) NOT NULL, cc VARCHAR(8) NOT NULL ) ENCODE AUTO DISTKEY (cid) SORTKEY (date, cc);
如果需要显式声明分布样式(指定DISTKEY时默认DISTSTYLE为KEY,此步骤可选),可以写成:
CREATE TABLE IF NOT EXISTS dev.sch.tbl ( date DATE NOT NULL, cid VARCHAR(32) NOT NULL, cc VARCHAR(8) NOT NULL ) ENCODE AUTO DISTSTYLE KEY DISTKEY (cid) SORTKEY (date, cc);
内容的提问来源于stack exchange,提问作者GettingItDone
相关产品推荐
相关产品推荐

