기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 Snowflake 데이터 웨어하우스에 연결 AWS Schema Conversion Tool
AWS SCT 를 사용하여 스키마, 코드 객체 및 애플리케이션 코드를 Snowflake에서 Amazon Redshift로 변환할 수 있습니다.
Snowflake를 소스 데이터베이스로 사용할 수 있는 권한
권한이 있는 역할을 생성하고 SECURITYADMIN
역할 및 SECURITYADMIN
세션 컨텍스트를 사용하여 이 역할에 사용자 이름을 부여할 수 있습니다.
다음 예제에서는 최소 권한을 생성하여 min_privs
사용자에게 부여합니다.
create role
role_name
; grant rolerole_name
to role sysadmin; grant usage on databasedb_name
to rolerole_name
; grant usage on schemadb_name
.schema_name
to rolerole_name
; grant usage on warehousedatawarehouse_name
to rolerole_name
; grant monitor on databasedb_name
to rolerole_name
; grant monitor on warehousedatawarehouse_name
to rolerole_name
; grant select on all tables in schemadb_name
.schema_name
to rolerole_name
; grant select on future tables in schemadb_name
.schema_name
to rolerole_name
; grant select on all views in schemadb_name
.schema_name
to rolerole_name
; grant select on future views in schemadb_name
.schema_name
to rolerole_name
; grant select on all external tables in schemadb_name
.schema_name
to rolerole_name
; grant select on future external tables in schemadb_name
.schema_name
to rolerole_name
; grant usage on all sequences in schemadb_name
.schema_name
to rolerole_name
; grant usage on future sequences in schemadb_name
.schema_name
to rolerole_name
; grant usage on all functions in schemadb_name
.schema_name
to rolerole_name
; grant usage on future functions in schemadb_name
.schema_name
to rolerole_name
; grant usage on all procedures in schemadb_name
.schema_name
to rolerole_name
; grant usage on future procedures in schemadb_name
.schema_name
to rolerole_name
; create user min_privs password='real_user_password
' DEFAULT_ROLE =role_name
DEFAULT_WAREHOUSE = 'datawarehouse_name
'; grant rolerole_name
to usermin_privs
;
이전 예제에서 다음과 같이 자리 표시자를 바꿉니다.
-
을 읽기 전용 권한이 있는 역할의 이름으로 바꿉니다.role_name
-
을 소스 데이터베이스의 이름으로 바꿉니다.db_name
-
을 소스 스키마의 이름으로 바꿉니다.schema_name
-
을 필수 데이터 웨어하우스의 이름으로 바꿉니다.datawarehousename
-
최소 권한을 가진 사용자 이름으로
를 바꿉니다.min_privs
DEFAULT_ROLE
및 DEFAULT_WAREHOUSE
파라미터는 키를 구분합니다.
Amazon S3에 대한 보안 액세스 구성
Amazon S3 버킷의 보안 및 액세스 관리 정책을 통해 Snowflake는 S3 버킷에 액세스하고, S3 버킷에서 데이터를 읽고, S3 버킷에 데이터를 쓸 수 있습니다. Snowflake STORAGE INTEGRATION
객체 유형을 사용하여 프라이빗 Amazon S3 버킷에 대한 보안 액세스를 구성할 수 있습니다. Snowflake 스토리지 통합 객체는 Snowflake ID 및 액세스 관리 엔터티에 인증 책임을 위임합니다.
자세한 내용은 Snowflake 설명서에서 Amazon S3에 액세스하기 위한 Snowflake 스토리지 통합 구성
Snowflake에 소스로 연결
다음 절차에 따라 AWS Schema Conversion Tool을 사용하여 소스 데이터베이스에 연결합니다.
Snowflake 소스 데이터베이스에 연결하려면
-
에서 소스 추가를 AWS Schema Conversion Tool선택합니다.
-
Snowflake를 선택한 후 다음을 선택합니다.
소스 추가 대화 상자가 나타납니다.
-
연결 이름에 데이터베이스의 이름을 입력합니다. AWS SCT 는 왼쪽 패널의 트리에 이 이름을 표시합니다.
-
에서 데이터베이스 자격 증명을 사용하거나 수동으로 AWS Secrets Manager 입력합니다.
-
Secrets Manager의 데이터베이스 보안 인증 정보를 사용하려면 다음 지침을 따릅니다.
-
AWS Secret에서 보안 암호의 이름을 선택합니다.
-
Populate를 선택하여 Secrets Manager에서 데이터베이스 연결 대화 상자에 있는 모든 값을 자동으로 채웁니다.
Secrets Manager의 데이터베이스 보안 인증 사용에 대한 자세한 내용은 AWS Secrets Manager 에서 구성 AWS Schema Conversion Tool 섹션을 참조하세요.
-
-
Snowflake 소스 데이터 웨어하우스 연결 정보를 수동으로 입력하려면 다음 지침을 사용합니다.
파라미터 작업 [서버 이름] 소스 데이터베이스 서버의 도메인 이름 시스템(DNS) 이름 또는 IP 주소를 입력합니다.
[Server port] 소스 데이터베이스 서버에 연결하는 데 사용되는 포트를 입력합니다.
데이터베이스 Snowflake 데이터베이스의 이름을 입력합니다.
User name 및 Password 소스 데이터베이스 서버에 연결하는 데 필요한 데이터베이스 보안 인증 정보를 입력합니다.
AWS SCT 는 사용자가 명시적으로 요청하는 경우에만 암호를 암호화된 형식으로 저장합니다.
Use SSL(SSL 사용) SSL(Secure Sockets Layer)을 사용하여 데이터베이스에 연결하려면 이 옵션을 선택합니다. SSL 탭에서 다음 추가 정보를 적절히 제공합니다.
-
프라이빗 키 경로: 프라이빗 키의 위치입니다.
-
Passphrase: 프라이빗 키의 암호입니다.
Snowflake의 SSL 지원에 대한 자세한 내용은 연결을 위한 보안 옵션 구성을 참조하세요.
Store password AWS SCT 는 SSL 인증서와 데이터베이스 암호를 저장하는 보안 볼트를 생성합니다. 이 옵션을 설정하면 데이터베이스 암호를 저장할 수 있습니다. 이렇게 하면 암호를 입력하지 않고도 데이터베이스에 빠르게 연결할 수 있습니다.
Snowflake driver path 소스 데이터베이스에 연결할 때 사용할 드라이버의 경로를 입력합니다. 자세한 내용은 용 JDBC 드라이버 설치 AWS Schema Conversion Tool 단원을 참조하십시오.
드라이버 경로를 전역 프로젝트 설정에 저장할 경우 드라이버 경로가 연결 대화 상자에 표시되지 않습니다. 자세한 내용은 전역 설정에 드라이버 경로 저장 단원을 참조하십시오.
-
-
-
연결 테스트를 선택하여가 소스 데이터베이스에 연결할 AWS SCT 수 있는지 확인합니다.
-
연결을 선택하여 소스 데이터베이스에 연결합니다.
Snowflake를 소스로 사용 시 적용되는 제한 사항
다음은 Snowflake를 소스로 사용할 때의 제한 사항입니다 AWS SCT.
-
객체 식별자는 객체 유형과 상위 객체의 컨텍스트 내에서 고유해야 합니다.
- 데이터베이스
-
스키마 식별자는 데이터베이스 내에서 고유해야 합니다.
- 스키마
-
테이블 및 보기와 같은 객체 식별자는 스키마 내에서 고유해야 합니다.
- 테이블/보기
-
열 식별자는 테이블 내에서 고유해야 합니다.
-
대형(large) 및 배수(xlarge) 클러스터 노드 유형에 대한 최대 테이블 수는 9,900개입니다. 8xlarge 클러스터 노드 유형에 대한 최대 테이블 수는 100,000개입니다. 이 제한에는 임시 테이블이 포함되며, 모두 쿼리 처리 또는 시스템 유지 관리 중에 Amazon Redshift에서 사용자 정의하거나 생성할 수 있습니다. 자세한 내용은 Amazon Redshift 클러스터 관리 안내서의 Amazon Redshift 할당량 섹션을 참조하세요.
-
저장 프로시저의 경우 입력 및 출력 인수의 최대 개수는 32개입니다.
Snowflake의 소스 데이터 형식
아래에서를 사용할 때 지원되는 Snowflake 소스 데이터 유형 AWS SCT 과 Amazon Redshift 대상에 대한 기본 매핑을 확인할 수 있습니다.
Snowflake 데이터 형식 | Amazon Redshift 데이터 형식 |
---|---|
NUMBER |
NUMERIC(38) |
NUMBER(p) |
If p is =< 4, then SMALLINT If p is => 5 and =< 9, then INTEGER If p is => 10 and =< 18, then BIGINT If p is => 19 then NUMERIC(p) |
NUMBER(p, 0) |
If p is =< 4, then SMALLINT If p is => 5 and =< 9, then INTEGER If p is => 10 and =< 18, then BIGINT If p is => 19 then: NUMERIC(p,0) |
NUMBER(p, s) |
If p is => 1 and =< 38, and if s is => 1 and =< 37, then NUMERIC(p,s) |
FLOAT |
FLOAT |
TEXT 최대 16,777,216바이트의 유니코드 문자, 문자당 최대 4바이트 |
VARCHAR(MAX) |
TEXT(p) 최대 65,535바이트의 유니코드 문자, 문자당 최대 4바이트 |
If p is =< 65,535 then, VARCHAR(p) |
TEXT(p) 최대 16,777,216바이트의 유니코드 문자, 문자당 최대 4바이트 |
If p is => 65,535 and =< 16,777,216 then, VARCHAR(MAX) |
BINARY 최대 8,388,608바이트의 싱글 바이트 문자, 문자당 1바이트 |
VARCHAR(MAX) |
BINARY(p) 최대 65,535바이트의 싱글 바이트 문자, 문자당 1바이트 |
VARCHAR(p) |
BINARY(p) 최대 8,388,608바이트의 싱글 바이트 문자, 문자당 1바이트 |
VARCHAR(MAX) |
BOOLEAN |
BOOLEAN |
날짜 |
날짜 |
TIME 00:00:00에서 23:59:59.999999999 사이의 시간 값 |
VARCHAR(18) |
TIME(f) 00:00:00에서 23:59:59.9(f) 사이의 시간 값 |
VARCHAR(n) – 9 + dt-attr-1 |
TIMESTAMP_NTZ |
TIMESTAMP |
TIMESTAMP_TZ |
TIMESTAMPTZ |
Snowflake에서 Amazon Redshift로의 변환 설정
Snowflake에서 Amazon Redshift로의 변환 설정을 편집하려면에서 설정을 선택한 AWS SCT다음 변환 설정을 선택합니다. 상단 목록에서 Snowflake를 선택한 다음 Snowflake – Amazon Redshift를 선택합니다.는 Snowflake에서 Amazon Redshift로의 변환에 사용할 수 있는 모든 설정을 AWS SCT 표시합니다.
의 Snowflake에서 Amazon Redshift로의 변환 설정에는 다음에 대한 옵션이 AWS SCT 포함됩니다.
-
변환된 코드에서 작업 항목이 포함된 설명의 수를 제한합니다.
선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석 추가에서 작업 항목의 심각도를 선택합니다.는 선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석을 AWS SCT 추가합니다.
예를 들어, 변환된 코드의 설명 수를 최소화하려면 오류만을 선택합니다. 변환된 코드의 모든 작업 항목에 대한 설명을 포함하려면 모든 메시지를 선택합니다.
-
대상 Amazon Redshift 클러스터에 적용할 AWS SCT 수 있는 최대 테이블 수를 설정합니다.
대상 Amazon Redshift 클러스터의 최대 테이블 수에서 Amazon Redshift 클러스터에 적용할 AWS SCT 수 있는 테이블 수를 선택합니다.
Amazon Redshift에는 여러 클러스터 노드 유형에 사용하는 테이블을 제한하는 할당량이 있습니다. 자동을 선택하면가 노드 유형에 따라 대상 Amazon Redshift 클러스터에 적용할 테이블 수를 AWS SCT 결정합니다. 값을 수동으로 선택할 수도 있습니다. 자세한 내용은 Amazon Redshift 관리 가이드의 Amazon Redshift의 할당량 및 제한 섹션을 참조하세요.
AWS SCT 는 Amazon Redshift 클러스터가 저장할 수 있는 것보다 많더라도 모든 소스 테이블을 변환합니다.는 변환된 코드를 프로젝트에 AWS SCT 저장하고 대상 데이터베이스에 적용하지 않습니다. 변환된 코드를 적용할 때 테이블의 Amazon Redshift 클러스터 할당량에 도달하면 AWS SCT 에서 경고 메시지가 표시됩니다. 또한 테이블 수가 한도에 도달할 때까지 대상 Amazon Redshift 클러스터에 테이블을 AWS SCT 적용합니다.
-
Amazon Redshift 테이블 열에 압축을 적용합니다. 이렇게 하려면 Use compression encoding을 선택합니다.
AWS SCT 는 기본 Amazon Redshift 알고리즘을 사용하여 열에 압축 인코딩을 자동으로 할당합니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 압축 인코딩을 참조하세요.
기본적으로 Amazon Redshift는 정렬 및 배포 키로 정의된 열에 압축을 적용하지 않습니다. 이 동작을 변경하여 이러한 열에 압축을 적용할 수 있습니다. 이렇게 하려면 Use compression encoding for KEY columns를 선택합니다. Use compression encoding 옵션을 선택한 경우에만 이 옵션을 선택할 수 있습니다.
Snowflake에서 Amazon Redshift로의 변환 최적화 설정
Snowflake에서 Amazon Redshift로의 변환 최적화 설정을 편집하려면에서 설정을 선택한 AWS SCT다음 변환 설정을 선택합니다. 상단 목록에서 Snowflake를 선택한 다음 Snowflake – Amazon Redshift를 선택합니다. 왼쪽 창에서 최적화 전략을 선택합니다.는 Snowflake에서 Amazon Redshift로의 변환에 대한 변환 최적화 설정을 AWS SCT 표시합니다.
의 Snowflake에서 Amazon Redshift로의 변환 최적화 설정에는 다음과 같은 옵션이 AWS SCT 포함됩니다.
-
자동 테이블 최적화 작업을 수행합니다. 이 작업을 수행하려면 Use Amazon Redshift automatic table tuning을 선택합니다.
자동 테이블 최적화는 테이블 디자인을 자동으로 최적화하는 Amazon Redshift의 자체 조정 프로세스입니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 자동 테이블 최적화 작업을 참조하세요.
자동 테이블 최적화만 사용하려면 Initial key selection strategy에서 없음을 선택합니다.
-
전략을 사용하여 정렬 및 배포 키를 선택합니다.
Amazon Redshift 메타데이터, 통계 정보 또는 두 옵션을 모두 사용하여 정렬 및 배포 키를 선택할 수 있습니다. Optimization strategies 탭의 Initial key selection strategy에서 다음 옵션 중 하나를 선택합니다.
메타데이터 사용, 통계 정보 무시
메타데이터 무시, 통계 정보 사용
메타데이터 및 통계 정보 사용
선택한 옵션에 따라 최적화 전략을 선택할 수 있습니다. 그런 다음 각 전략에 대해 값(0~100)을 입력합니다. 이러한 값은 각 전략의 가중치를 정의합니다. AWS SCT 는 이러한 가중치 값을 사용하여 각 규칙이 배포 및 정렬 키 선택에 미치는 영향을 정의합니다. 기본값은 AWS 마이그레이션 모범 사례를 기반으로 합니다.
Find small tables 전략에서 작은 테이블의 크기를 정의할 수 있습니다. 최소 테이블 행 수 및 최대 테이블 행 수에 테이블의 최소 및 최대 행 수를 입력하여 작은 테이블로 정의합니다.는 작은 테이블에
ALL
배포 스타일을 AWS SCT 적용합니다. 이 경우 전체 테이블의 사본이 모든 노드에 배포됩니다. -
전략 세부 정보를 구성합니다.
각 최적화 전략의 가중치를 정의하는 것 외에 최적화 설정도 구성할 수 있습니다. 이 작업을 수행하려면 Conversion optimization을 선택합니다.
Sort key columns limit에 정렬 키의 최대 열 수를 입력합니다.
스큐된 임계값에 열에 대해 스큐된 값의 백분율(0~100)을 입력합니다.는 배포 키의 후보 목록에서 스큐 값이 임계값보다 큰 열을 AWS SCT 제외합니다.는 열에 대해 스큐된 값을 가장 일반적인 값의 발생 횟수와 총 레코드 수의 백분율 비율로 AWS SCT 정의합니다.
Top N queries from the query history table에 분석할 가장 자주 사용되는 쿼리의 수(1~100)를 입력합니다.
Select statistics user에서 쿼리 통계를 분석하려는 데이터베이스 사용자를 선택합니다.
또한 Optimization strategies 탭에서 Find small tables 전략을 위한 작은 테이블의 크기를 정의할 수 있습니다. 최소 테이블 행 수와 최대 테이블 행 수에 테이블의 최소 및 최대 행 수를 입력하여 작은 테이블로 간주합니다.는 작은 테이블에
ALL
배포 스타일을 AWS SCT 적용합니다. 이 경우 전체 테이블의 사본이 모든 노드에 배포됩니다.