SnowConvert for Redshift: 변환 사양¶
SnowConvert 는 현재 TABLES 및 VIEWS 에 대한 평가 및 변환 기능을 제공하는 미리 보기 버전으로 제공되고 있습니다. SnowConvert 는 다른 문 유형도 인식할 수 있지만, 완전한 지원은 아직 개발 중입니다.
이 문서는 SnowConvert 를 사용하여 Redshift SQL 을 Snowflake 로 마이그레이션하기 위한 변환 사양을 간략하게 설명하며, 다양한 요소가 어떻게 변환되는지 자세히 설명하고 명확성을 위해 예제를 제공합니다.
변수 선언
변수 재할당을 방지하는 Redshift의
CONSTANT
키워드는 Snowflake가 지원하지 않으므로 변환 중에 제거됩니다.NOT NULL
제약 조건도 제거되지만, 기능을 유지하기 위해 기본값은 유지됩니다.
트랜잭션
TRUNCATE
,ROLLBACK
,COMMIT
문은 Redshift의 동작과 Snowflake의 잠재적 문제를 구체적으로 고려하여 처리됩니다.COMMIT
또는ROLLBACK
으로 중첩된 프로시저 호출은 Snowflake의 트랜잭션 모델로 인해 함수 차이가 발생할 수 있습니다.
커서
DECLARECURSOR
,OPENCURSOR
,FETCHCURSOR
,CLOSECURSOR
는 Snowflake에서 완벽하게 지원됩니다.
데이터 타입
대부분의 기본 SQL 데이터 타입은 몇 가지 제한 사항이 있지만 지원됩니다.
숫자, 문자, 이진, 날짜/시간 및 기타 데이터 타입이 잠재적인 문제에 대한 자세한 메모와 함께 매핑됩니다.
INTERVAL
데이터 타입은 현재 Snowflake의 제한으로 인해VARCHAR
로 변환됩니다.
숫자 형식 모델
다양한 숫자 형식 모델이 Snowflake에서 등가 형식으로 지원됩니다.
CC
,PR
,RN
,TH
와 같은 일부 형식은 직접적으로 동등한 기능이 없으며 수동 조정이 필요할 수 있습니다.
SQL 문 및 함수
CREATE MATERIALIZED VIEW
: 특정 매개 변수를 사용하여 Snowflake 동적 테이블로 변환합니다.CREATE EXTERNAL TABLE
: 현재 일반 테이블로 변환되어 데이터 전송이 필요합니다.CREATE VIEW
: 일반적으로 직접 변환되지만,WITH NO SCHEMA BINDING
절에 문제가 발생할 수 있습니다.CREATE DATABASE
: 다양한 절은 Snowflake의 아키텍처를 특별히 고려하여 처리됩니다.SELECTINTO
,WITH
,HAVING
,WHERE
,TOP
,JOIN
,GROUPBY
,DISTINCT
,UNION
,INTERSECT
,EXCEPT
및 여러 DDL 및 DML 문은 일반적으로 잠재적인 뉘앙스와 함께 지원됩니다.수학 및 문자열 함수는 대부분 직접 변환되지만 일부 예외와 잠재적인 동작 차이가 있습니다.
RANK
,DENSE_RANK
,ROW_NUMBER
같은 윈도우 함수는 완벽하게 지원됩니다.LOWER
,SUBSTRING
,REPLACE
,SPLIT_PART
등 시스템 함수는 일반적으로 잠재적인 문제에 대한 메모와 함께 변환됩니다.IF
: SnowConvert 는 조건에 괄호를 추가하고, Redshift가 조건에 괄호를 요구하지 않으며ELSIF
가 키워드이기 때문에ELSEIF
키워드를ELSIF
로 변경합니다.SELECT INTO
: Redshift는 또한 문이 저장 프로시저 내에서 실행될 때 SELECT INTO 변수를 허용하지만, Snowflake는 SELECT INTO 에 대해서는 이 문법을 지원하지 않으며, 식은 INTO 의 왼쪽으로 이동합니다.`` (https://docs.aws.amazon.com/redshift/latest/dg/c_ PLpgSQL -statements.html#r_ PLpgSQL -cursors) Snowflake는
REFCURSOR
데이터 타입을 지원하지 않으므로REFCURSOR
변수를RESULTSET
타입으로 변환하여 해당 기능을 복제합니다.RAISE:
Snowflake에서 이 기능은 지정된 레벨에 따라 콘솔을 호출하는 사용자 정의 함수(UDF)를 사용하여 에뮬레이션할 수 있습니다.Open Cursor:
커서 인자는 각각의 용도에 따라 바인딩되어야 하며, SnowConvert 는 바인딩을 생성하고, 필요에 따라 OPEN 문에 전달된 값을 다시 정렬하고 반복하여 바인딩을 충족합니다.RETURN:
반환 문을 Amazon Redshift에서 Snowflake로 변환하는 것은 간단하며, Snowflake의 반환 문에NULL
을 추가하는 것만 고려하면 됩니다.
주요 고려 사항
이 문서는 진행 중인 작업이며, 모든 Redshift 요소에 대한 완전한 지원은 아직 개발 중입니다.
변환된 코드를 철저히 테스트하여 정확성을 보장하고 함수상의 차이를 해결하십시오.
성능 영향을 고려하고 변환 후 쿼리를 최적화하십시오.
이 변환 사양은 SnowConvert 가 Redshift SQL dmf Snowflake로 마이그레이션하는 방법을 종합적으로 설명합니다. 이러한 변화를 이해하는 것은 성공적인 마이그레이션을 위해 매우 중요하며, 마이그레이션 과정에서 발생할 수 있는 문제를 예측하고 해결하는 데 도움이 될 수 있습니다.