AWS SCT 확장 팩 사용 - AWS Schema Conversion Tool

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SCT 확장 팩 사용

AWS SCT 확장 팩은 객체를 대상 데이터베이스로 변환할 때 필요한 소스 데이터베이스에 있는 함수를 에뮬레이션하는 추가 기능 모듈입니다. AWS SCT 확장 팩을 설치하려면 먼저 데이터베이스 스키마를 변환해야 합니다.

각 AWS SCT 확장 팩에는 다음과 같은 구성 요소가 포함되어 있습니다.

  • DB 스키마 - 특정 온라인 트랜잭션 처리(OLTP) 및 온라인 분석 처리(OLAP) 데이터베이스 객체(예: 시퀀스)를 에뮬레이션하기 위한 SQL 함수, 프로시저 및 테이블을 포함합니다. 또한 원본 built-in-functions 데이터베이스에서 지원되지 않는 것을 에뮬레이션합니다. 이 스키마 이름의 형식은 aws_database_engine_name_ext와 같습니다.

  • AWS Lambda 함수 (특정 OLTP 데이터베이스용) - 작업 예약 및 이메일 전송과 같은 복잡한 데이터베이스 기능을 에뮬레이션하는 AWS Lambda 함수를 포함합니다.

  • OLAP 데이터베이스용 사용자 지정 라이브러리 - Microsoft SQL Server 통합 서비스 (SSIS) 추출, 변환 및 로드 (ETL) 스크립트를 또는 로 마이그레이션하는 데 사용할 수 있는 Java 및 Python 라이브러리 세트를 포함합니다. AWS Glue AWS Glue Studio

    Java 라이브러리에는 다음과 같은 모듈이 포함됩니다.

    • spark-excel_2.11-0.13.1.jar - Excel 소스 및 대상 구성 요소의 기능을 에뮬레이션합니다.

    • spark-xml_2.11-0.9.0.jar, poi-ooxml-schemas-4.1.2.jarxmlbeans-3.1.0.jar - XML 소스 구성 요소의 기능을 에뮬레이션합니다.

    Python 라이브러리에는 다음과 같은 모듈이 포함됩니다.

    • sct_utils.py - 소스 데이터 유형을 에뮬레이션하고 Spark SQL 쿼리를 위한 파라미터를 준비합니다.

    • ssis_datetime.py - 날짜 및 시간 내장 함수를 에뮬레이션합니다.

    • ssis_null.py - ISNULLREPLACENULL 내장 함수를 에뮬레이션합니다.

    • ssis_string.py - 문자열 내장 함수를 에뮬레이션합니다.

    이러한 라이브러리에 대한 자세한 내용은 AWS SCT 확장 팩용 사용자 지정 라이브러리 사용 섹션을 참조하세요.

AWS SCT 확장 팩은 다음 두 가지 방법으로 적용할 수 있습니다.

  • AWS SCT 컨텍스트 메뉴에서 데이터베이스에 적용을 선택하여 대상 데이터베이스 스크립트를 적용할 때 확장 팩을 자동으로 적용할 수 있습니다. AWS SCT 다른 모든 스키마 개체를 적용하기 전에 확장 팩을 적용합니다.

  • 확장 팩을 수동으로 적용하려면 대상 데이터베이스를 선택한 다음 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴에서 Apply extension pack for를 선택합니다. 대부분의 경우 자동 적용 방법으로 충분합니다. 하지만 팩을 실수로 삭제한 경우에는 수동으로 팩을 적용해야 할 수 있습니다.

대상 데이터 저장소에 AWS SCT 확장 팩을 적용할 때마다 구성요소를 덮어쓰고 이에 대한 알림이 AWS SCT 표시됩니다. 이러한 알림을 끄려면 설정, 전역 설정, 알림Hide the extension pack replacement alert를 차례로 선택합니다.

Microsoft SQL Server에서 PostgreSQL로 변환하려면 AWS SCT에서 SQL Server를 PostgreSQL로 변환하는 확장 팩을 사용할 수 있습니다. 이 확장 팩은 SQL Server 에이전트와 SQL Server Database Mail을 에뮬레이션합니다. 자세한 내용은 확장 팩을 사용하여 PostgreSQL에서 SQL Server 에이전트 에뮬레이션확장 팩을 사용하여 PostgreSQL에서 SQL Server Database Mail 에뮬레이션 섹션을 참조하세요.

다음에서 AWS SCT 확장 팩 사용에 대한 자세한 내용을 확인할 수 있습니다.

AWS SCT 확장 팩 사용 권한

Amazon Aurora용 AWS SCT 확장 팩은 함수를 사용하여 메일 전송, 작업 예약, 대기열 및 기타 작업을 에뮬레이션합니다. AWS Lambda 대상 Aurora 데이터베이스에 AWS SCT 확장 팩을 적용하면 새 AWS Identity and Access Management (IAM) 역할과 인라인 IAM 정책이 AWS SCT 생성됩니다. 다음으로, 새 Lambda 함수를 AWS SCT 생성하고 아웃바운드 연결을 위해 Aurora DB 클러스터를 구성합니다. AWS Lambda이러한 작업을 실행하려면 다음과 같은 필수 권한을 IAM 사용자에게 부여해야 합니다.

  • iam:CreateRole— 계정의 새 IAM 역할을 생성합니다. AWS

  • iam:CreatePolicy— 계정에 AWS 대한 새 IAM 정책을 만들려면

  • iam:AttachRolePolicy - 지정된 정책을 IAM 역할에 연결합니다.

  • iam:PutRolePolicy - IAM 역할에 포함된 인라인 정책 문서를 업데이트합니다.

  • iam:PassRole - 지정된 IAM 역할을 규칙 엔진에 전달합니다.

  • iam:TagRole - IAM 역할에 태그를 추가합니다.

  • iam:TagPolicy - IAM 정책에 태그를 추가합니다.

  • lambda:ListFunctions - Lambda 함수 목록을 볼 수 있습니다.

  • lambda:ListTags - Lambda 함수의 태그 목록을 볼 수 있습니다.

  • lambda:CreateFunction – 새 Lambda 함수를 생성합니다.

  • rds:AddRoleToDBCluster – IAM 역할을 Aurora DB 클러스터와 연결합니다.

Amazon Redshift용 AWS SCT 확장 팩은 변환된 객체를 Amazon Redshift에 적용할 때 필요한 소스 데이터 웨어하우스 기반 함수를 에뮬레이션합니다. 변환된 코드를 Amazon Redshift에 적용하기 전에 Amazon Redshift용 확장 팩을 적용해야 합니다. 이렇게 하려면 IAM 정책에 해당 iam:SimulatePrincipalPolicy 작업을 포함시킵니다.

AWS SCT IAM 정책 시뮬레이터를 사용하여 Amazon Redshift 확장 팩 설치에 필요한 권한을 확인합니다. IAM 사용자를 올바르게 구성했더라도 IAM 정책 시뮬레이터에 오류 메시지가 표시될 수 있습니다. 이는 IAM 정책 시뮬레이터의 알려진 문제입니다. 또한 IAM 정책 시뮬레이터는 IAM 정책에 해당 iam:SimulatePrincipalPolicy 작업이 없는 경우 오류 메시지를 표시합니다. 이러한 경우에는 오류 메시지를 무시하고 확장 팩 마법사를 사용하여 확장 팩을 적용할 수 있습니다. 자세한 정보는 확장 팩 적용을 참조하세요.

확장 팩 스키마 사용

데이터베이스 또는 데이터 웨어하우스 스키마를 변환할 때 AWS SCT 가 대상 데이터베이스에 추가 스키마를 추가합니다. 이 스키마는 대상 데이터베이스에 변환된 코드를 쓸 데 필요한 소스 데이터베이스의 SQL 시스템 함수를 구현합니다. 이 추가 스키마를 확장 팩 스키마라고 합니다.

OLTP 데이터베이스의 확장 팩 스키마는 소스 데이터베이스에 따라 다음과 같이 이름이 지정됩니다.

  • Microsoft SQL Server: AWS_SQLSERVER_EXT

  • MySQL: AWS_MYSQL_EXT

  • Oracle: AWS_ORACLE_EXT

  • PostgreSQL: AWS_POSTGRESQL_EXT

OLAP 데이터 웨어하우스 애플리케이션의 확장 팩 스키마는 다음과 같이 소스 데이터 스토어에 따라 이름이 지정됩니다.

  • Greenplum: AWS_GREENPLUM_EXT

  • Microsoft SQL Server: AWS_SQLSERVER_EXT

  • Netezza: AWS_NETEZZA_EXT

  • Oracle: AWS_ORACLE_EXT

  • Teradata: AWS_TERADATA_EXT

  • Vertica: AWS_VERTICA_EXT

AWS SCT 확장 팩용 사용자 지정 라이브러리 사용

원본 데이터베이스 기능을 대상 데이터베이스의 동등한 기능으로 변환할 AWS SCT 수 없는 경우도 있습니다. 관련 AWS SCT 확장 팩에는 대상 데이터베이스의 일부 소스 데이터베이스 기능을 에뮬레이션하는 사용자 지정 라이브러리가 포함되어 있습니다.

트랜잭션 데이터베이스를 변환하는 경우 AWS SCT 확장 팩의 AWS Lambda 함수 사용 섹션을 참조합니다.

확장 팩 적용

AWS SCT 확장 팩 마법사를 사용하거나 변환된 코드를 대상 데이터베이스에 적용할 때 확장 팩을 적용할 수 있습니다.

확장 팩 마법사를 사용하여 확장 팩을 적용하려면
  1. 대상 데이터베이스 트리에서 컨텍스트 (마우스 오른쪽 버튼 클릭) 메뉴를 열고 확장 팩 적용을 선택한 다음 원본 데이터베이스 플랫폼을 선택합니다. AWS Schema Conversion Tool

    
                            확장 팩 적용 컨텍스트 메뉴

    확장 팩 마법사가 표시됩니다.

  2. 시작 페이지를 읽은 후 다음을 선택합니다.

  3. AWS profile settings 페이지에서 다음 작업을 수행합니다.

    • 확장 팩 스키마만 다시 설치하는 경우에는 Skip this step for now를 선택하고 다음을 선택합니다. Skip this step for now 옵션은 온라인 트랜잭션 처리(OLTP) 데이터베이스에만 사용할 수 있습니다.

    • 새 라이브러리를 업로드하는 경우 AWS 계정에 연결하는 데 필요한 보안 인증 정보를 제공합니다. 이 단계는 OLAP 데이터베이스 또는 ETL 스크립트를 변환할 때만 사용합니다. AWS Command Line Interface (AWS CLI) 자격 증명이 AWS CLI 설치되어 있는 경우 해당 자격 증명을 사용할 수 있습니다. 또한 이전에 전역 애플리케이션 설정의 프로필에 저장한 후 프로젝트와 연결한 보안 인증 정보를 사용할 수도 있습니다. 필요한 경우 글로벌 설정으로 이동을 선택하여 다른 프로필을 구성하거나 AWS SCT 프로젝트에 연결할 수 있습니다. 자세한 정보는 AWS SCT에 AWS 서비스 프로필 저장을 참조하세요.

  4. 새 라이브러리를 업로드하는 경우 Library upload 페이지에서 I need to upload a library를 선택합니다. 이 단계는 OLAP 데이터베이스 또는 ETL 스크립트를 변환할 때만 사용합니다. 다음으로 Amazon S3 경로를 입력한 다음 Upload library to S3을 선택합니다.

    라이브러리를 이미 업로드한 경우 Library upload 페이지에서 I already have libraries uploaded, use my existing S3 bucket을 선택합니다. 다음으로, Amazon S3 경로를 입력합니다.

    완료되면 다음을 선택합니다.

  5. Function emulation 페이지에서 Create extension pack을 선택합니다. 확장 팩 작업 상태가 포함된 메시지가 표시됩니다.

    모두 마쳤으면 완료를 선택합니다.

변환된 코드를 적용할 때 확장 팩을 적용하려면
  1. AWS 서비스 프로필에 Amazon S3 버킷을 지정합니다. 이 단계는 OLAP 데이터베이스 또는 ETL 스크립트를 변환할 때만 사용합니다. 자세한 정보는 AWS SCT에 AWS 서비스 프로필 저장을 참조하세요.

    Amazon S3 버킷 정책에는 다음 권한이 포함되어야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:SimulatePrincipalPolicy"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:GetUser"], "Resource": ["arn:aws:iam::111122223333:user/DataExtractionAgentName"] } ] }

    이전 예제에서 DataExtractionAgentName111122223333:user/를 IAM 사용자의 이름으로 바꾸십시오.

  2. 소스 데이터 웨어하우스 스키마를 변환합니다. 자세한 정보는 데이터 웨어하우스 스키마를 Amazon Redshift로 변환을 참조하세요.

  3. 오른쪽 창에서 변환된 스키마를 선택합니다.

  4. 스키마 요소의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 Apply to database를 선택합니다.

  5. AWS SCT 필수 구성 요소가 포함된 확장 팩을 생성하고 대상 트리에 스키마를 추가합니다. aws_database_engine_name_ext 그런 다음 변환된 코드와 확장 팩 스키마를 대상 데이터 웨어하우스에 AWS SCT 적용합니다.

    Amazon AWS Glue Redshift와 대상 데이터베이스 플랫폼을 함께 사용하는 경우 확장 팩에 스키마를 AWS SCT 추가합니다.

AWS SCT 확장 팩의 AWS Lambda 함수 사용

AWS SCT 이메일을 위한 Lambda 함수, 작업 예약 및 Amazon EC2에 호스팅되는 데이터베이스의 기타 기능을 포함하는 확장 팩을 제공합니다.

AWS Lambda 함수를 사용하여 데이터베이스 기능을 에뮬레이션합니다.

데이터베이스 기능을 동등한 Amazon RDS 기능으로 변환할 수 없는 경우도 있습니다. 예를 들어 Oracle은 UTL_SMTP를 사용하는 이메일 호출을 보내고 Microsoft SQL Server는 작업 스케줄러를 사용할 수 있습니다. Amazon EC2에서 데이터베이스를 호스팅하고 자체 관리하는 경우 서비스를 AWS 대체하여 이러한 기능을 에뮬레이션할 수 있습니다.

AWS SCT 확장 팩 마법사는 이메일, 작업 예약 및 기타 기능을 에뮬레이션하도록 Lambda 함수를 설치, 생성 및 구성하는 데 도움을 줍니다.

확장 팩을 적용하여 Lambda 함수 지원

확장 팩 마법사를 사용하거나 변환된 코드를 대상 데이터베이스에 적용할 때 확장 팩을 적용하여 Lambda 함수를 지원할 수 있습니다.

중요

AWS 서비스 에뮬레이션 기능은 Amazon EC2에 설치되고 자체 관리되는 데이터베이스에만 지원됩니다. 대상 데이터베이스가 Amazon RDS DB 인스턴스에 있는 경우에는 서비스 에뮬레이션 기능을 설치하지 않도록 합니다.

확장 팩 마법사를 사용하여 확장 팩을 적용하려면
  1. 대상 데이터베이스 트리에서 컨텍스트 (마우스 오른쪽 버튼 클릭) 메뉴를 열고 확장 팩 적용을 선택한 다음 소스 데이터베이스 플랫폼을 선택합니다. AWS Schema Conversion Tool

    
                            확장 팩 적용 컨텍스트 메뉴

    확장 팩 마법사가 표시됩니다.

  2. 시작 페이지를 읽은 후 다음을 선택합니다.

  3. AWS profile settings 페이지에서 다음 작업을 수행합니다.

    • 확장 팩 스키마만 다시 설치하는 경우에는 Skip this step for now를 선택하고 다음을 선택합니다.

    • AWS 서비스를 설치하는 경우 연결에 필요한 자격 증명을 제공하십시오 AWS 계정. 자격 증명이 AWS CLI 설치되어 있으면 AWS CLI 자격 증명을 사용할 수 있습니다. 또한 이전에 전역 애플리케이션 설정의 프로필에 저장한 후 프로젝트와 연결한 보안 인증 정보를 사용할 수도 있습니다. 필요한 경우 Navigate to Project Settings를 선택하여 다른 프로필과 프로젝트를 연결합니다. 필요한 경우 전역 설정을 선택하여 새 프로필을 생성합니다. 자세한 정보는 AWS SCT에 AWS 서비스 프로필 저장을 참조하세요.

  4. Email Sending Service 페이지에서 다음을 수행합니다.

    • 확장 팩 스키마만 다시 설치하는 경우에는 Skip this step for now를 선택하고 다음을 선택합니다.

    • AWS 서비스를 설치 중이고 기존 Lambda 함수가 있는 경우 이를 제공할 수 있습니다. 그렇지 않으면 마법사에서 자동으로 생성합니다. 완료되면 다음을 선택합니다.

  5. Job Emulation Service 페이지에서 다음을 수행합니다.

    • 확장 팩 스키마만 다시 설치하는 경우에는 Skip this step for now를 선택하고 다음을 선택합니다.

    • AWS 서비스를 설치 중이고 기존 Lambda 함수가 있는 경우 이를 제공할 수 있습니다. 그렇지 않으면 마법사에서 자동으로 생성합니다. 완료되면 다음을 선택합니다.

  6. Function emulation 페이지에서 Create extension pack을 선택합니다. 확장 팩 작업 상태가 포함된 메시지가 표시됩니다.

    모두 마쳤으면 완료를 선택합니다.

참고

확장 팩을 업데이트하고 이전 확장 팩 구성 요소를 덮어쓰려면 최신 버전을 사용해야 합니다. AWS SCT자세한 정보는 설치, 확인 및 업데이트 AWS SCT을 참조하세요.

AWS SCT 확장 팩의 함수 구성

확장 팩에는 사용하기 전에 구성해야 하는 기능이 포함되어 있습니다. 상수는 서비스 팩이 사용하는 언어를 CONVERSION_LANG 정의합니다. 함수는 영어와 독일어로 사용할 수 있습니다.

언어를 영어 또는 독일어로 설정하려면 함수 코드를 다음과 같이 변경합니다. 다음 상수 선언을 찾아보십시오.

CONVERSION_LANG CONSTANT VARCHAR := '';

영어로 CONVERSION_LANG 설정하려면 줄을 다음과 같이 변경하십시오.

CONVERSION_LANG CONSTANT VARCHAR := 'English';

영어로 CONVERSION_LANG 설정하려면 줄을 다음과 같이 변경하십시오.

CONVERSION_LANG CONSTANT VARCHAR := 'Deutsch';

다음 기능에 대해 이 설정을 설정하십시오.

  • aws_sqlserver_ext.conv_datetime_to_string

  • aws_sqlserver_ext.conv_date_to_string

  • aws_sqlserver_ext.conv_string_to_date

  • aws_sqlserver_ext.conv_string_to_datetime

  • aws_sqlserver_ext.conv_string_to_datetime

  • aws_sqlserver_ext.parse_to_date

  • aws_sqlserver_ext.parse_to_datetime

  • aws_sqlserver_ext.parse_to_time