【发布时间】:2021-03-28 16:36:38
【问题描述】:
我正在尝试使用 redshift 创建一个临时表
CREATE TABLE tmp_users (LIKE users);
这工作了一段时间。但最近我在生产中遇到了如下故障。
org.postgresql.util.PSQLException: ERROR: Invalid syntax: Create table sortkey auto with initial sortkeys.
在 CREATE TABLE 查询执行期间,我的源表没有提供排序键。因此,根据 redshift 文档,它们将具有默认的 AUTO SORTKEY。来自 SVV_TABLE_INFO
table | diststyle | sortkey1
--------------------------------------
users | AUTO(ALL) | AUTO(SORTKEY)
对上述源表架构执行 LIKE 查询不会导致任何问题。
但我在生产表中看到 sortkey1 更改为 users 表 AUTO(SORTKEY(c1)) 的列之一并在此架构上执行 LIKE 会导致上述异常。
我的问题是
- 作为自动性能调整的一部分,redshift 是否更改了排序键?
- 为什么 LIKE 在这种情况下会失败?如果是预期的.. 我该如何创建表格副本?
我提到了问题nvalid syntax: Create table sortkey auto with initial sortkeys,但在我的情况下,建议的删除排序键的解决方案是不可能的,因为表有数百万条记录。
【问题讨论】:
标签: java amazon-redshift upsert