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 ]
表起始标记¶
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 }
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER
)
BACKUP YES;
输出代码:¶
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" }}'
;
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
示例源模式¶
输入代码:¶
CREATE TABLE IF NOT EXISTS table1 (
col1 INTEGER
);
输出代码:¶
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" }}';
相关的 EWIs¶
没有已知问题。
LOCAL¶
描述¶
在 Amazon Redshift 中,LOCAL TEMPORARY
或 TEMP
用于创建仅在会话期间存在的临时表。这些表是特定于会话的,会在会话结束时自动删除。它们可用于在不影响永久数据库架构的情况下存储中间结果或工作数据。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
LOCAL { TEMPORARY | TEMP }
示例源模式¶
输入代码:¶
CREATE LOCAL TEMPORARY TABLE table1 (
col1 INTEGER
);
输出代码:¶
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" }}';
相关的 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 )
示例源模式¶
输入代码:¶
CREATE TABLE table15 (
col1 INTEGER,
FOREIGN KEY (col1) REFERENCES table_test (col1)
);
输出代码:¶
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" }}';
相关的 EWIs¶
SSC-FDM-RSOOO3:未来将支持外键转换。
PRIMARY KEY¶
描述¶
指定表的一列或多列只能包含唯一的非空值
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
备注
在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。
语法¶
PRIMARY KEY ( column_name [, ... ] )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER,
col2 INTEGER,
PRIMARY KEY (col1)
);
输出代码:¶
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" }}'
;
相关的 EWIs¶
没有已知问题。
UNIQUE¶
描述¶
指定表的一组(一个或多个)列只能包含唯一值。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
备注
在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。
语法¶
UNIQUE ( column_name [, ... ] )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER,
col2 INTEGER,
UNIQUE ( col1, col2 )
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER NOT NULL,
col2 INTEGER NULL
);
输出代码:¶
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" }}'
;
相关的 EWIs¶
没有已知问题。
REFERENCES¶
描述¶
指定外键约束,这意味着该列必须仅包含与引用表某行的引用列中的值相匹配的值
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
REFERENCES reftable [ ( refcolumn ) ]
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER REFERENCES table_test (col1)
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER PRIMARY KEY,
col2 INTEGER UNIQUE
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 TEXT COLLATE CASE_SENSITIVE,
col2 TEXT COLLATE CASE_INSENSITIVE
);
输出代码:¶
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" }}'
;
已知问题¶
没有已知问题。
DEFAULT¶
描述¶
为列分配默认数据值。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#create-table-default) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
DEFAULT default_expr
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER DEFAULT 1
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER DISTKEY
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER ENCODE DELTA
);
输出代码:¶
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" }}'
;
相关的 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 )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER GENERATED BY DEFAULT AS IDENTITY(1,1)
);
输出代码:¶
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" }}'
;
相关的 EWIs¶
没有已知问题。
IDENTITY¶
描述¶
指定列为 IDENTITY 列的子句。(RedShift SQL 语言参考“Identity” (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#identity-clause))。
语法¶
IDENTITY ( seed, step )
示例源模式¶
输入代码:¶
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;
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;
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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER SORTKEY
);
输出代码:¶
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" }}';
已知问题¶
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 )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER
)
DISTKEY (col1);
输出代码:¶
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" }}';
相关的 EWIs¶
SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。
DISTSTYLE¶
描述¶
该关键字用于定义整表的数据分布方式。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
DISTSTYLE { AUTO | EVEN | KEY | ALL }
示例源模式¶
输入代码:¶
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;
输出代码:¶
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" }}';
相关的 EWIs¶
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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER
)
ENCODE AUTO;
输出代码:¶
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" }}'
;
相关的 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 ]
示例源模式¶
输入代码:¶
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;
输出代码:¶
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" }}';
相关的 EWIs¶
SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。
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 ]
表起始标记¶
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 }
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER
)
BACKUP YES;
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE IF NOT EXISTS table1 (
col1 INTEGER
);
输出代码:¶
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" }}';
相关的 EWIs¶
没有已知问题。
LOCAL¶
描述¶
在 Amazon Redshift 中,LOCAL TEMPORARY
或 TEMP
用于创建仅在会话期间存在的临时表。这些表是特定于会话的,会在会话结束时自动删除。它们可用于在不影响永久数据库架构的情况下存储中间结果或工作数据。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
LOCAL { TEMPORARY | TEMP }
示例源模式¶
输入代码:¶
CREATE LOCAL TEMPORARY TABLE table1 (
col1 INTEGER
);
输出代码:¶
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" }}';
相关的 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 )
示例源模式¶
输入代码:¶
CREATE TABLE table15 (
col1 INTEGER,
FOREIGN KEY (col1) REFERENCES table_test (col1)
);
输出代码:¶
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" }}';
相关的 EWIs¶
SSC-FDM-RSOOO3:未来将支持外键转换。
PRIMARY KEY¶
描述¶
指定表的一列或多列只能包含唯一的非空值
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
备注
在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。
语法¶
PRIMARY KEY ( column_name [, ... ] )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER,
col2 INTEGER,
PRIMARY KEY (col1)
);
输出代码:¶
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" }}'
;
相关的 EWIs¶
没有已知问题。
UNIQUE¶
描述¶
指定表的一组(一个或多个)列只能包含唯一值。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
备注
在 Snowflake 中,唯一键、主键和外键用于文档,不强制约束条件或唯一性。它们有助于描述表关系,但不影响数据完整性或性能。
语法¶
UNIQUE ( column_name [, ... ] )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER,
col2 INTEGER,
UNIQUE ( col1, col2 )
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER NOT NULL,
col2 INTEGER NULL
);
输出代码:¶
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" }}'
;
相关的 EWIs¶
没有已知问题。
REFERENCES¶
描述¶
指定外键约束,这意味着该列必须仅包含与引用表某行的引用列中的值相匹配的值
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
REFERENCES reftable [ ( refcolumn ) ]
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER REFERENCES table_test (col1)
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER PRIMARY KEY,
col2 INTEGER UNIQUE
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 TEXT COLLATE CASE_SENSITIVE,
col2 TEXT COLLATE CASE_INSENSITIVE
);
输出代码:¶
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" }}'
;
已知问题¶
没有已知问题。
DEFAULT¶
描述¶
为列分配默认数据值。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#create-table-default) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
DEFAULT default_expr
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER DEFAULT 1
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER DISTKEY
);
输出代码:¶
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" }}'
;
相关的 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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER ENCODE DELTA
);
输出代码:¶
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" }}'
;
相关的 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 )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER GENERATED BY DEFAULT AS IDENTITY(1,1)
);
输出代码:¶
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" }}'
;
相关的 EWIs¶
没有已知问题。
IDENTITY¶
描述¶
指定列为 IDENTITY 列的子句。(RedShift SQL 语言参考“Identity” (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html#identity-clause))。
语法¶
IDENTITY ( seed, step )
示例源模式¶
输入代码:¶
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;
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;
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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER SORTKEY
);
输出代码:¶
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" }}';
已知问题¶
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 )
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER
)
DISTKEY (col1);
输出代码:¶
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" }}';
相关的 EWIs¶
SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。
DISTSTYLE¶
描述¶
该关键字用于定义整表的数据分布方式。
点击 此处 (https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html) 以导航到 Amazon Redshift 文档页面查看此语法。
语法¶
DISTSTYLE { AUTO | EVEN | KEY | ALL }
示例源模式¶
输入代码:¶
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;
输出代码:¶
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" }}';
相关的 EWIs¶
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
示例源模式¶
输入代码:¶
CREATE TABLE table1 (
col1 INTEGER
)
ENCODE AUTO;
输出代码:¶
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" }}'
;
相关的 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 ]
示例源模式¶
输入代码:¶
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;
输出代码:¶
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" }}';
相关的 EWIs¶
SSC-FDM-RS0001:不支持该选项。数据存储由 Snowflake 自动处理。
SSC-FDM-RS0002:与 Sortkey 的性能相比,CLUSTER BY 的性能可能会有所不同。