SnowConvert: CREATE TABLE 에 대한 Redshift SQL 문¶
CREATE TABLE¶
설명¶
현재 데이터베이스에 새 테이블을 생성합니다. 각각 고유한 데이터 타입의 데이터를 보관하는 열 목록을 정의합니다. 테이블의 소유자는 CREATE TABLE 명령의 발급자입니다.
자세한 내용은 CREATE TABLE
설명서를 참조하십시오.
문법 구문¶
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 및 Fail-safe와 같은 기본 제공 기능을 통해 데이터 백업 및 복구를 자동으로 처리하므로 수동 백업 작업이 필요하지 않습니다. 이러한 이유로 변환 프로세스 중에 BACKUP
문이 제거됩니다
여기 를 클릭하여 이 구문에 대한 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 스크립트의 중복 및 오류를 방지합니다.
여기를 클릭하여 이 구문에 대한 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
은 세션 기간 동안만 존재하는 임시 테이블을 만드는 데 사용됩니다. 이러한 테이블은 세션별로 다르며 세션이 종료되면 자동으로 삭제됩니다. 영구 데이터베이스 스키마에 영향을 주지 않고 중간 결과 또는 작업 데이터를 저장하는 데 유용합니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
새 테이블의 1개 이상의 열 그룹에 참조된 열 또는 참조된 테이블의 일부 행의 열에 있는 값과 일치하는 값만 포함해야 하는 외래 키 제약 조건을 지정하는 제약 조건입니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
테이블의 열 또는 여러 열에 null이 아닌 고유 값만 포함할 수 있도록 지정합니다
여기를 클릭하여 이 구문에 대한 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¶
설명¶
테이블의 1개 이상의 열 그룹에 고유한 값만 포함할 수 있도록 지정합니다.
여기를 클릭하여 이 구문에 대한 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 값을 허용하도록 지정됩니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
참조된 테이블의 일부 행의 참조된 열에 있는 값과 일치하는 값만 열에 포함해야 한다는 의미의 외래 키 제약 조건을 지정합니다
여기를 클릭하여 이 구문에 대한 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 는 모두 데이터를 설명하고 구조화하는 데 사용되지만, 저장소 수준에서 이러한 제한을 적용하는 다른 데이터베이스 시스템에서 기대할 수 있는 의미에서 적극적인 데이터 유효성 검사 기능은 없습니다.
여기를 클릭하여 이 구문에 대한 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 인지 여부를 지정합니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
열의 기본 데이터 값을 할당합니다.
여기를 클릭하여 이 구문에 대한 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
문이 제거됩니다
여기 를 클릭하여 이 구문에 대한 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에서는 수동 인코딩 설정이 필요한 Redshift와 달리 데이터 압축을 자동으로 처리하므로 ENCODE
를 정의할 필요가 없습니다. 따라서 마이그레이션 중에는 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 열로 지정하고 열에 고유 값을 자동으로 할당할 수 있도록 합니다.
여기를 클릭하여 이 구문에 대한 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 Language Reference ID).
문법 구문¶
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에서 Redshift의 SORTKEY
를 CLUSTERBY
로 마이그레이션할 수 있습니다. CLUSTERBY
는 Redshift의 SORTKEY
에서 데이터를 주문하는 방식과 유사하게 지정된 열에 대해 데이터를 조직화합니다.
여기 를 클릭하여 이 구문에 대한 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: CLUSTER BY 의 성능은 Sortkey 또는 Distkey의 성능과 다를 수 있습니다.
테이블 특성¶
DISTKEY¶
설명¶
Amazon Redshift에서는 DISTKEY
를 사용하여 클러스터 노드 간에 데이터를 분산하여 쿼리 성능을 최적화합니다. 하지만 Snowflake는 명시적 배포 키 없이도 데이터 배포와 저장소를 자동으로 처리합니다. 아키텍처와 데이터 관리 접근법의 차이로 인해, Snowflake는 Redshift의 DISTKEY
와 직접적으로 동등한 기능을 가지고 있지 않습니다.
여기 를 클릭하여 이 구문에 대한 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¶
설명¶
전체 테이블의 데이터 배포 스타일을 정의하는 키워드입니다.
여기 를 클릭하여 이 구문에 대한 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에서는 수동 인코딩 설정이 필요한 Redshift와 달리 데이터 압축을 자동으로 처리하므로 ENCODE
를 정의할 필요가 없습니다. 따라서 마이그레이션 중에는 ENCODE 문이 제거됩니다.
여기를 클릭하여 이 구문에 대한 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에서 Redshift의 SORTKEY
를 CLUSTERBY
로 마이그레이션할 수 있습니다. CLUSTERBY
는 Redshift의 SORTKEY
에서 데이터를 주문하는 방식과 유사하게 지정된 열에 대해 데이터를 조직화합니다.
여기 를 클릭하여 이 구문에 대한 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: CLUSTER BY 의 성능은 Sortkey의 성능과 다를 수 있습니다.
CREATE TABLE¶
설명¶
현재 데이터베이스에 새 테이블을 생성합니다. 각각 고유한 데이터 타입의 데이터를 보관하는 열 목록을 정의합니다. 테이블의 소유자는 CREATE TABLE 명령의 발급자입니다.
자세한 내용은 CREATE TABLE
설명서를 참조하십시오.
문법 구문¶
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 및 Fail-safe와 같은 기본 제공 기능을 통해 데이터 백업 및 복구를 자동으로 처리하므로 수동 백업 작업이 필요하지 않습니다. 이러한 이유로 변환 프로세스 중에 BACKUP
문이 제거됩니다
여기 를 클릭하여 이 구문에 대한 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 스크립트의 중복 및 오류를 방지합니다.
여기를 클릭하여 이 구문에 대한 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
은 세션 기간 동안만 존재하는 임시 테이블을 만드는 데 사용됩니다. 이러한 테이블은 세션별로 다르며 세션이 종료되면 자동으로 삭제됩니다. 영구 데이터베이스 스키마에 영향을 주지 않고 중간 결과 또는 작업 데이터를 저장하는 데 유용합니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
새 테이블의 1개 이상의 열 그룹에 참조된 열 또는 참조된 테이블의 일부 행의 열에 있는 값과 일치하는 값만 포함해야 하는 외래 키 제약 조건을 지정하는 제약 조건입니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
테이블의 열 또는 여러 열에 null이 아닌 고유 값만 포함할 수 있도록 지정합니다
여기를 클릭하여 이 구문에 대한 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¶
설명¶
테이블의 1개 이상의 열 그룹에 고유한 값만 포함할 수 있도록 지정합니다.
여기를 클릭하여 이 구문에 대한 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 값을 허용하도록 지정됩니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
참조된 테이블의 일부 행의 참조된 열에 있는 값과 일치하는 값만 열에 포함해야 한다는 의미의 외래 키 제약 조건을 지정합니다
여기를 클릭하여 이 구문에 대한 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 는 모두 데이터를 설명하고 구조화하는 데 사용되지만, 저장소 수준에서 이러한 제한을 적용하는 다른 데이터베이스 시스템에서 기대할 수 있는 의미에서 적극적인 데이터 유효성 검사 기능은 없습니다.
여기를 클릭하여 이 구문에 대한 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 인지 여부를 지정합니다.
여기를 클릭하여 이 구문에 대한 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¶
설명¶
열의 기본 데이터 값을 할당합니다.
여기를 클릭하여 이 구문에 대한 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
문이 제거됩니다
여기 를 클릭하여 이 구문에 대한 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에서는 수동 인코딩 설정이 필요한 Redshift와 달리 데이터 압축을 자동으로 처리하므로 ENCODE
를 정의할 필요가 없습니다. 따라서 마이그레이션 중에는 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 열로 지정하고 열에 고유 값을 자동으로 할당할 수 있도록 합니다.
여기를 클릭하여 이 구문에 대한 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 Language Reference ID).
문법 구문¶
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에서 Redshift의 SORTKEY
를 CLUSTERBY
로 마이그레이션할 수 있습니다. CLUSTERBY
는 Redshift의 SORTKEY
에서 데이터를 주문하는 방식과 유사하게 지정된 열에 대해 데이터를 조직화합니다.
여기 를 클릭하여 이 구문에 대한 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: CLUSTER BY 의 성능은 Sortkey 또는 Distkey의 성능과 다를 수 있습니다.
테이블 특성¶
DISTKEY¶
설명¶
Amazon Redshift에서는 DISTKEY
를 사용하여 클러스터 노드 간에 데이터를 분산하여 쿼리 성능을 최적화합니다. 하지만 Snowflake는 명시적 배포 키 없이도 데이터 배포와 저장소를 자동으로 처리합니다. 아키텍처와 데이터 관리 접근법의 차이로 인해, Snowflake는 Redshift의 DISTKEY
와 직접적으로 동등한 기능을 가지고 있지 않습니다.
여기 를 클릭하여 이 구문에 대한 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¶
설명¶
전체 테이블의 데이터 배포 스타일을 정의하는 키워드입니다.
여기 를 클릭하여 이 구문에 대한 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에서는 수동 인코딩 설정이 필요한 Redshift와 달리 데이터 압축을 자동으로 처리하므로 ENCODE
를 정의할 필요가 없습니다. 따라서 마이그레이션 중에는 ENCODE 문이 제거됩니다.
여기를 클릭하여 이 구문에 대한 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에서 Redshift의 SORTKEY
를 CLUSTERBY
로 마이그레이션할 수 있습니다. CLUSTERBY
는 Redshift의 SORTKEY
에서 데이터를 주문하는 방식과 유사하게 지정된 열에 대해 데이터를 조직화합니다.
여기 를 클릭하여 이 구문에 대한 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: CLUSTER BY 의 성능은 Sortkey의 성능과 다를 수 있습니다.