SnowConvert:CREATE TABLE 的 Redshift SQL 语句

CREATE TABLE

描述

在当前数据库中创建新表。您可以定义列的列表,每列都包含不同类型的数据。该表的所有者是 CREATE TABLE 命令的发布者。

有关更多信息,请参阅 CREATE TABLE (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 文档。

语法

 CREATE [ [LOCAL ] { TEMPORARY | TEMP } ] TABLE
[ IF NOT EXISTS ] table_name
( { column_name data_type [column_attributes] [ column_constraints ]
  | table_constraints
  | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] }
  [, ... ]  )
[ BACKUP { YES | NO } ]
[table_attributes]

where column_attributes are:
  [ DEFAULT default_expr ]
  [ IDENTITY ( seed, step ) ]
  [ GENERATED BY DEFAULT AS IDENTITY ( seed, step ) ]
  [ ENCODE encoding ]
  [ DISTKEY ]
  [ SORTKEY ]
  [ COLLATE CASE_SENSITIVE | COLLATE CASE_INSENSITIVE  ]

and column_constraints are:
  [ { NOT NULL | NULL } ]
  [ { UNIQUE  |  PRIMARY KEY } ]
  [ REFERENCES reftable [ ( refcolumn ) ] ]

and table_constraints  are:
  [ UNIQUE ( column_name [, ... ] ) ]
  [ PRIMARY KEY ( column_name [, ... ] )  ]
  [ FOREIGN KEY (column_name [, ... ] ) REFERENCES reftable [ ( refcolumn ) ]


and table_attributes are:
  [ DISTSTYLE { AUTO | EVEN | KEY | ALL } ]
  [ DISTKEY ( column_name ) ]
  [ [COMPOUND | INTERLEAVED ] SORTKEY ( column_name [,...]) |  [ SORTKEY AUTO ] ]
  [ ENCODE AUTO ]
         
Copy

表起始标记

BACKUP

描述

使 Amazon Redshift 能够自动调整表中所有列的编码类型以优化查询性能。在 Snowflake 中,如其他数据库中所示的“BACKUP”概念并不直接适用。Snowflake 通过其 Time Travel 和故障安全等内置功能自动处理数据备份和恢复,无需手动备份操作。因此,在转换过程中删除了语句 BACKUP

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 BACKUP { YES | NO }
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
BACKUP YES;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

IF NOT EXISTS

描述

在 Amazon Redshift 中,IF NOT EXISTS 用于表创建命令,以避免在表已经存在时出错。如果添加了此语法,则可确保仅在表不存在时才创建该表,从而防止 SQL 脚本中出现重复和错误。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 IF NOT EXISTS
Copy

示例源模式

输入代码:

 CREATE TABLE IF NOT EXISTS table1 (
    col1 INTEGER
);
Copy
输出代码:
 CREATE TABLE IF NOT EXISTS table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

没有已知问题。

LOCAL

描述

在 Amazon Redshift 中,LOCAL TEMPORARYTEMP 用于创建仅在会话期间存在的临时表。这些表是特定于会话的,会在会话结束时自动删除。它们可用于在不影响永久数据库架构的情况下存储中间结果或工作数据。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 LOCAL { TEMPORARY | TEMP }
Copy

示例源模式

输入代码:

 CREATE LOCAL TEMPORARY TABLE table1 (
    col1 INTEGER
);
Copy
输出代码:
 CREATE LOCAL TEMPORARY TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

没有已知问题。

表约束条件

FOREIGN KEY

描述

指定外键约束的约束条件,它要求新表的一组(一个或多个)列包含的值必须与引用表的某行的引用列(一列或多列)中的值相匹配。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

警告

外键的转换将在未来实现。

语法

 FOREIGN KEY (column_name [, ... ] ) REFERENCES reftable [ ( refcolumn )
Copy

示例源模式

输入代码:

 CREATE TABLE table15 (
    col1 INTEGER,
    FOREIGN KEY (col1) REFERENCES table_test (col1)
);
Copy
输出代码:
 CREATE TABLE table15 (
    col1 INTEGER
--                ,
--    --** SSC-FDM-RS0003 - THE TRANSLATION FOR FOREIGN KEY IS NOT AVAILABLE, IT WILL BE PROVIDED IN THE FUTURE. **
--    FOREIGN KEY (col1) REFERENCES table_test (col1)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/26/2024" }}';
Copy

相关的 EWIs

PRIMARY KEY

描述

指定表的一列或多列只能包含唯一的非空值

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。

语法

 PRIMARY KEY ( column_name [, ... ] )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER, 
    col2 INTEGER,
    PRIMARY KEY (col1)
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER,
    col2 INTEGER,
    PRIMARY KEY (col1)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

UNIQUE

描述

指定表的一组(一个或多个)列只能包含唯一值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。

语法

 UNIQUE ( column_name [, ... ] )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER, 
    col2 INTEGER,
    UNIQUE ( col1, col2 )
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER,
    col2 INTEGER,
    UNIQUE ( col1, col2 )
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

列约束

NOT NULL | NULL

描述

NOT NULL 指定该列不允许包含 null 值。而 NULL(默认值)则指定该列可以接受 null 值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 NOT NULL | NULL
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER NOT NULL, 
    col2 INTEGER NULL
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER NOT NULL,
    col2 INTEGER NULL
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

REFERENCES

描述

指定外键约束,这意味着该列必须仅包含与引用表某行的引用列中的值相匹配的值

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 REFERENCES reftable [ ( refcolumn ) ]
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER REFERENCES table_test (col1)
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER REFERENCES table_test (col1)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

UNIQUE | PRIMARY KEY

描述

指定该列只能包含唯一值。在 Snowflake 中,UNIQUE 和 PRIMARY KEY 都用于记录和结构化数据,但从某种意义上说,它们不具有您在存储级别强制执行这些限制的其他数据库系统中所期望的活跃数据验证功能。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。

语法

 UNIQUE | PRIMARY KEY
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER PRIMARY KEY,
    col2 INTEGER UNIQUE
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER PRIMARY KEY,
    col2 INTEGER UNIQUE
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

列属性

COLLATE

描述

指定列上的字符串搜索或比较是 CASE_SENSITIVE 还是 CASE_INSENSITIVE。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

默认排序规则语言是英语。如果您的数据库使用的是其他语言,请更新“en-”前缀以匹配您的数据库语言。有关更多信息,请参阅此 链接

语法

 COLLATE CASE_SENSITIVE | COLLATE CASE_INSENSITIVE
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 TEXT COLLATE CASE_SENSITIVE,
    col2 TEXT COLLATE CASE_INSENSITIVE
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 TEXT COLLATE 'en-cs',
    col2 TEXT COLLATE 'en-ci'
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

已知问题

没有已知问题。

DEFAULT

描述

为列分配默认数据值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#create-table-default) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DEFAULT default_expr
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER DEFAULT 1
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER DEFAULT 1
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

DISTKEY

描述

在 Amazon Redshift 中,DISTKEY 用于在集群节点之间分配数据以优化查询性能。但是,Snowflake 无需明确的分布键即可自动处理数据分布和存储。由于架构和数据管理方法的差异,Snowflake 没有与 Redshift 的 DISTKEY 直接等效的项。因此,在转换过程中删除了语句 DISTKEY

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DISTKEY
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER DISTKEY
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

ENCODE

描述

列的压缩编码。在 Snowflake 中,不必定义 ENCODE,因为它会自动处理数据压缩,这与 Redshift 不同,后者需要手动编码设置。因此,在迁移过程中删除了 ENCODE 语句。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#create-table-encode) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 ENCODE encoding
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER ENCODE DELTA
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

GENERATED BY DEFAULT AS IDENTITY

描述

指定列为默认 IDENTITY 列,并允许您自动为该列分配唯一值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#identity-generated-bydefault-clause) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 GENERATED BY DEFAULT AS IDENTITY ( seed, step )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER GENERATED BY DEFAULT AS IDENTITY(1,1)
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER IDENTITY(1,1) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

IDENTITY

描述

指定列为 IDENTITY 列的子句。(RedShift SQL 语言参考“Identity” (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#identity-clause))。

语法

 IDENTITY ( seed, step )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    doc INTEGER,
    id1 INTEGER IDENTITY(1,1),
    id2 INTEGER  DEFAULT "identity"(674435, 0, ('5,3'::character varying)::text),
    id3 INTEGER  DEFAULT default_identity(963861, 1, '1,2'::text),
    id4 INTEGER  DEFAULT "default_identity"(963861, 1, '1,6'::text)
);

INSERT INTO table1 (doc) VALUES (1),(2),(3);

SELECT * FROM table1;
Copy

DOC

ID1

ID2

ID3

ID4

1

1

5

1

1

2

2

8

3

7

3

3

11

5

13

输出代码:
 CREATE TABLE table1 (
    doc INTEGER,
    id1 INTEGER IDENTITY(1,1) ORDER,
    id2 INTEGER IDENTITY(5,3) ORDER,
    id3 INTEGER IDENTITY(1,2) ORDER,
    id4 INTEGER IDENTITY(1,6) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "12/04/2024",  "domain": "test" }}';

INSERT INTO table1 (doc) VALUES (1),(2),(3);

SELECT * FROM
 table1;
Copy

DOC

ID1

ID2

ID3

ID4

1

1

5

1

1

2

2

8

3

7

3

3

11

5

13

已知问题

未发现任何问题。

相关的 EWIs

没有已知问题。

SORTKEY

描述

该关键字用于指定该列是表的排序键。在 Snowflake 中,SORTKEY 可以从 Redshift 迁移到 CLUSTER BY,因为两者都优化了数据存储以提高查询性能。CLUSTER BY 在 Snowflake 中组织指定列上的数据,类似于 SORTKEY 在 Redshift 中对数据进行排序的方式。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Sorting_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 SORTKEY
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER SORTKEY
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
--** SSC-FDM-RS0002 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF SORTKEY **
CLUSTER BY (col1)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

已知问题

  1. SSC-FDM-RS0002:与 Sortkey 或 Distkey 的性能相比,CLUSTERBY 的性能可能会有所不同。

Tabla 属性

DISTKEY

描述

在 Amazon Redshift 中,DISTKEY 用于在集群节点之间分配数据以优化查询性能。但是,Snowflake 无需明确的分布键即可自动处理数据分布和存储。由于架构和数据管理方法的差异,Snowflake 没有与 Redshift 的 DISTKEY 直接等效的项。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DISTKEY ( column_name )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
DISTKEY (col1);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTKEY OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTKEY (col1)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "03/03/2025",  "domain": "test" }}';
Copy

相关的 EWIs

  1. SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。

DISTSTYLE

描述

该关键字用于定义整表的数据分布方式。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DISTSTYLE { AUTO | EVEN | KEY | ALL }
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
DISTSTYLE AUTO;

CREATE TABLE table2 (
    col1 INTEGER
)
DISTSTYLE EVEN;

CREATE TABLE table3 (
    col1 INTEGER
)
DISTSTYLE KEY
DISTKEY (col1);

CREATE TABLE table4 (
    col1 INTEGER
)
DISTSTYLE ALL;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE AUTO OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE AUTO
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';

CREATE TABLE table2 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE EVEN OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE EVEN
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';

CREATE TABLE table3 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE KEY OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE KEY
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;

CREATE TABLE table4 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE ALL OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE ALL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

  1. SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。

ENCODE

描述

在 Snowflake 中,不必定义 ENCODE,因为它会自动处理数据压缩,这与 Redshift 不同,后者需要手动编码设置。因此,在迁移过程中删除了 ENCODE 语句。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 ENCODE AUTO
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
ENCODE AUTO;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

SORTKEY

描述

该关键字用于指定该列是表的排序键。在 Snowflake 中,SORTKEY 可以从 Redshift 迁移到 CLUSTER BY,因为两者都优化了数据存储以提高查询性能。CLUSTER BY 在 Snowflake 中组织指定列上的数据,类似于 SORTKEY 在 Redshift 中对数据进行排序的方式。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 [COMPOUND | INTERLEAVED ] SORTKEY ( column_name [,...]) | [ SORTKEY AUTO ]
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER,
    col2 VARCHAR,
    col3 INTEGER,
    col4 INTEGER
)
COMPOUND SORTKEY (col1, col3);

CREATE TABLE table2 (
    col1 INTEGER
)
INTERLEAVED SORTKEY (col1);

CREATE TABLE table3 (
    col1 INTEGER
)
SORTKEY AUTO;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER,
    col2 VARCHAR,
    col3 INTEGER,
    col4 INTEGER
)
--** SSC-FDM-RS0002 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF SORTKEY **
CLUSTER BY (col1, col3)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;

CREATE TABLE table2 (
    col1 INTEGER
)
--** SSC-FDM-RS0002 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF SORTKEY **
CLUSTER BY (col1)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;

CREATE TABLE table3 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - SORTKEY AUTO OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--SORTKEY AUTO
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

  1. SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。

  2. SSC-FDM-RS0002:与 Sortkey 的性能相比,CLUSTER BY 的性能可能会有所不同。

CREATE TABLE

描述

在当前数据库中创建新表。您可以定义列的列表,每列都包含不同类型的数据。该表的所有者是 CREATE TABLE 命令的发布者。

有关更多信息,请参阅 CREATE TABLE (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 文档。

语法

 CREATE [ [LOCAL ] { TEMPORARY | TEMP } ] TABLE
[ IF NOT EXISTS ] table_name
( { column_name data_type [column_attributes] [ column_constraints ]
  | table_constraints
  | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] }
  [, ... ]  )
[ BACKUP { YES | NO } ]
[table_attributes]

where column_attributes are:
  [ DEFAULT default_expr ]
  [ IDENTITY ( seed, step ) ]
  [ GENERATED BY DEFAULT AS IDENTITY ( seed, step ) ]
  [ ENCODE encoding ]
  [ DISTKEY ]
  [ SORTKEY ]
  [ COLLATE CASE_SENSITIVE | COLLATE CASE_INSENSITIVE  ]

and column_constraints are:
  [ { NOT NULL | NULL } ]
  [ { UNIQUE  |  PRIMARY KEY } ]
  [ REFERENCES reftable [ ( refcolumn ) ] ]

and table_constraints  are:
  [ UNIQUE ( column_name [, ... ] ) ]
  [ PRIMARY KEY ( column_name [, ... ] )  ]
  [ FOREIGN KEY (column_name [, ... ] ) REFERENCES reftable [ ( refcolumn ) ]


and table_attributes are:
  [ DISTSTYLE { AUTO | EVEN | KEY | ALL } ]
  [ DISTKEY ( column_name ) ]
  [ [COMPOUND | INTERLEAVED ] SORTKEY ( column_name [,...]) |  [ SORTKEY AUTO ] ]
  [ ENCODE AUTO ]
         
Copy

表起始标记

BACKUP

描述

使 Amazon Redshift 能够自动调整表中所有列的编码类型以优化查询性能。在 Snowflake 中,如其他数据库中所示的“BACKUP”概念并不直接适用。Snowflake 通过其 Time Travel 和故障安全等内置功能自动处理数据备份和恢复,无需手动备份操作。因此,在转换过程中删除了语句 BACKUP

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 BACKUP { YES | NO }
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
BACKUP YES;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

IF NOT EXISTS

描述

在 Amazon Redshift 中,IF NOT EXISTS 用于表创建命令,以避免在表已经存在时出错。如果添加了此语法,则可确保仅在表不存在时才创建该表,从而防止 SQL 脚本中出现重复和错误。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 IF NOT EXISTS
Copy

示例源模式

输入代码:

 CREATE TABLE IF NOT EXISTS table1 (
    col1 INTEGER
);
Copy
输出代码:
 CREATE TABLE IF NOT EXISTS table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

没有已知问题。

LOCAL

描述

在 Amazon Redshift 中,LOCAL TEMPORARYTEMP 用于创建仅在会话期间存在的临时表。这些表是特定于会话的,会在会话结束时自动删除。它们可用于在不影响永久数据库架构的情况下存储中间结果或工作数据。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 LOCAL { TEMPORARY | TEMP }
Copy

示例源模式

输入代码:

 CREATE LOCAL TEMPORARY TABLE table1 (
    col1 INTEGER
);
Copy
输出代码:
 CREATE LOCAL TEMPORARY TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

没有已知问题。

表约束条件

FOREIGN KEY

描述

指定外键约束的约束条件,它要求新表的一组(一个或多个)列包含的值必须与引用表的某行的引用列(一列或多列)中的值相匹配。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

警告

外键的转换将在未来实现。

语法

 FOREIGN KEY (column_name [, ... ] ) REFERENCES reftable [ ( refcolumn )
Copy

示例源模式

输入代码:

 CREATE TABLE table15 (
    col1 INTEGER,
    FOREIGN KEY (col1) REFERENCES table_test (col1)
);
Copy
输出代码:
 CREATE TABLE table15 (
    col1 INTEGER
--                ,
--    --** SSC-FDM-RS0003 - THE TRANSLATION FOR FOREIGN KEY IS NOT AVAILABLE, IT WILL BE PROVIDED IN THE FUTURE. **
--    FOREIGN KEY (col1) REFERENCES table_test (col1)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/26/2024" }}';
Copy

相关的 EWIs

PRIMARY KEY

描述

指定表的一列或多列只能包含唯一的非空值

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。

语法

 PRIMARY KEY ( column_name [, ... ] )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER, 
    col2 INTEGER,
    PRIMARY KEY (col1)
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER,
    col2 INTEGER,
    PRIMARY KEY (col1)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

UNIQUE

描述

指定表的一组(一个或多个)列只能包含唯一值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。

语法

 UNIQUE ( column_name [, ... ] )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER, 
    col2 INTEGER,
    UNIQUE ( col1, col2 )
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER,
    col2 INTEGER,
    UNIQUE ( col1, col2 )
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

列约束

NOT NULL | NULL

描述

NOT NULL 指定该列不允许包含 null 值。而 NULL(默认值)则指定该列可以接受 null 值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 NOT NULL | NULL
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER NOT NULL, 
    col2 INTEGER NULL
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER NOT NULL,
    col2 INTEGER NULL
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

REFERENCES

描述

指定外键约束,这意味着该列必须仅包含与引用表某行的引用列中的值相匹配的值

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 REFERENCES reftable [ ( refcolumn ) ]
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER REFERENCES table_test (col1)
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER REFERENCES table_test (col1)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

UNIQUE | PRIMARY KEY

描述

指定该列只能包含唯一值。在 Snowflake 中,UNIQUE 和 PRIMARY KEY 都用于记录和结构化数据,但从某种意义上说,它们不具有您在存储级别强制执行这些限制的其他数据库系统中所期望的活跃数据验证功能。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。

语法

 UNIQUE | PRIMARY KEY
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER PRIMARY KEY,
    col2 INTEGER UNIQUE
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER PRIMARY KEY,
    col2 INTEGER UNIQUE
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

列属性

COLLATE

描述

指定列上的字符串搜索或比较是 CASE_SENSITIVE 还是 CASE_INSENSITIVE。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

备注

默认排序规则语言是英语。如果您的数据库使用的是其他语言,请更新“en-”前缀以匹配您的数据库语言。有关更多信息,请参阅此 链接

语法

 COLLATE CASE_SENSITIVE | COLLATE CASE_INSENSITIVE
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 TEXT COLLATE CASE_SENSITIVE,
    col2 TEXT COLLATE CASE_INSENSITIVE
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 TEXT COLLATE 'en-cs',
    col2 TEXT COLLATE 'en-ci'
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

已知问题

没有已知问题。

DEFAULT

描述

为列分配默认数据值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#create-table-default) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DEFAULT default_expr
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER DEFAULT 1
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER DEFAULT 1
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

DISTKEY

描述

在 Amazon Redshift 中,DISTKEY 用于在集群节点之间分配数据以优化查询性能。但是,Snowflake 无需明确的分布键即可自动处理数据分布和存储。由于架构和数据管理方法的差异,Snowflake 没有与 Redshift 的 DISTKEY 直接等效的项。因此,在转换过程中删除了语句 DISTKEY

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DISTKEY
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER DISTKEY
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

ENCODE

描述

列的压缩编码。在 Snowflake 中,不必定义 ENCODE,因为它会自动处理数据压缩,这与 Redshift 不同,后者需要手动编码设置。因此,在迁移过程中删除了 ENCODE 语句。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#create-table-encode) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 ENCODE encoding
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER ENCODE DELTA
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

GENERATED BY DEFAULT AS IDENTITY

描述

指定列为默认 IDENTITY 列,并允许您自动为该列分配唯一值。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#identity-generated-bydefault-clause) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 GENERATED BY DEFAULT AS IDENTITY ( seed, step )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER GENERATED BY DEFAULT AS IDENTITY(1,1)
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER IDENTITY(1,1) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

IDENTITY

描述

指定列为 IDENTITY 列的子句。(RedShift SQL 语言参考“Identity” (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#identity-clause))。

语法

 IDENTITY ( seed, step )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    doc INTEGER,
    id1 INTEGER IDENTITY(1,1),
    id2 INTEGER  DEFAULT "identity"(674435, 0, ('5,3'::character varying)::text),
    id3 INTEGER  DEFAULT default_identity(963861, 1, '1,2'::text),
    id4 INTEGER  DEFAULT "default_identity"(963861, 1, '1,6'::text)
);

INSERT INTO table1 (doc) VALUES (1),(2),(3);

SELECT * FROM table1;
Copy

DOC

ID1

ID2

ID3

ID4

1

1

5

1

1

2

2

8

3

7

3

3

11

5

13

输出代码:
 CREATE TABLE table1 (
    doc INTEGER,
    id1 INTEGER IDENTITY(1,1) ORDER,
    id2 INTEGER IDENTITY(5,3) ORDER,
    id3 INTEGER IDENTITY(1,2) ORDER,
    id4 INTEGER IDENTITY(1,6) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "12/04/2024",  "domain": "test" }}';

INSERT INTO table1 (doc) VALUES (1),(2),(3);

SELECT * FROM
 table1;
Copy

DOC

ID1

ID2

ID3

ID4

1

1

5

1

1

2

2

8

3

7

3

3

11

5

13

已知问题

未发现任何问题。

相关的 EWIs

没有已知问题。

SORTKEY

描述

该关键字用于指定该列是表的排序键。在 Snowflake 中,SORTKEY 可以从 Redshift 迁移到 CLUSTER BY,因为两者都优化了数据存储以提高查询性能。CLUSTER BY 在 Snowflake 中组织指定列上的数据,类似于 SORTKEY 在 Redshift 中对数据进行排序的方式。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Sorting_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 SORTKEY
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER SORTKEY
);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
--** SSC-FDM-RS0002 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF SORTKEY **
CLUSTER BY (col1)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

已知问题

  1. SSC-FDM-RS0002:与 Sortkey 或 Distkey 的性能相比,CLUSTERBY 的性能可能会有所不同。

Tabla 属性

DISTKEY

描述

在 Amazon Redshift 中,DISTKEY 用于在集群节点之间分配数据以优化查询性能。但是,Snowflake 无需明确的分布键即可自动处理数据分布和存储。由于架构和数据管理方法的差异,Snowflake 没有与 Redshift 的 DISTKEY 直接等效的项。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DISTKEY ( column_name )
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
DISTKEY (col1);
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTKEY OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTKEY (col1)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "03/03/2025",  "domain": "test" }}';
Copy

相关的 EWIs

  1. SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。

DISTSTYLE

描述

该关键字用于定义整表的数据分布方式。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 DISTSTYLE { AUTO | EVEN | KEY | ALL }
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
DISTSTYLE AUTO;

CREATE TABLE table2 (
    col1 INTEGER
)
DISTSTYLE EVEN;

CREATE TABLE table3 (
    col1 INTEGER
)
DISTSTYLE KEY
DISTKEY (col1);

CREATE TABLE table4 (
    col1 INTEGER
)
DISTSTYLE ALL;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE AUTO OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE AUTO
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';

CREATE TABLE table2 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE EVEN OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE EVEN
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';

CREATE TABLE table3 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE KEY OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE KEY
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;

CREATE TABLE table4 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - DISTSTYLE ALL OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--DISTSTYLE ALL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

  1. SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。

ENCODE

描述

在 Snowflake 中,不必定义 ENCODE,因为它会自动处理数据压缩,这与 Redshift 不同,后者需要手动编码设置。因此,在迁移过程中删除了 ENCODE 语句。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 ENCODE AUTO
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER
)
ENCODE AUTO;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;
Copy

相关的 EWIs

没有已知问题。

SORTKEY

描述

该关键字用于指定该列是表的排序键。在 Snowflake 中,SORTKEY 可以从 Redshift 迁移到 CLUSTER BY,因为两者都优化了数据存储以提高查询性能。CLUSTER BY 在 Snowflake 中组织指定列上的数据,类似于 SORTKEY 在 Redshift 中对数据进行排序的方式。

点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。

语法

 [COMPOUND | INTERLEAVED ] SORTKEY ( column_name [,...]) | [ SORTKEY AUTO ]
Copy

示例源模式

输入代码:

 CREATE TABLE table1 (
    col1 INTEGER,
    col2 VARCHAR,
    col3 INTEGER,
    col4 INTEGER
)
COMPOUND SORTKEY (col1, col3);

CREATE TABLE table2 (
    col1 INTEGER
)
INTERLEAVED SORTKEY (col1);

CREATE TABLE table3 (
    col1 INTEGER
)
SORTKEY AUTO;
Copy
输出代码:
 CREATE TABLE table1 (
    col1 INTEGER,
    col2 VARCHAR,
    col3 INTEGER,
    col4 INTEGER
)
--** SSC-FDM-RS0002 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF SORTKEY **
CLUSTER BY (col1, col3)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;

CREATE TABLE table2 (
    col1 INTEGER
)
--** SSC-FDM-RS0002 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF SORTKEY **
CLUSTER BY (col1)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}'
;

CREATE TABLE table3 (
    col1 INTEGER
)
----** SSC-FDM-RS0001 - SORTKEY AUTO OPTION NOT SUPPORTED. DATA STORAGE IS AUTOMATICALLY HANDLED BY SNOWFLAKE. **
--SORTKEY AUTO
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "09/17/2024" }}';
Copy

相关的 EWIs

  1. SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。

  2. SSC-FDM-RS0002:与 Sortkey 的性能相比,CLUSTER BY 的性能可能会有所不同。

语言: 中文