BLOG

스키마 변환 도구 블로그 시리즈 : 빌드 613의 새로운 기능 소개
작성일: 2018-04-06

AWS Schema Conversion Tool (스키마 변환 도구)는 기존 데이터베이스 스키마를 데이터베이스 엔진에서 다른 데이터베이스 엔진으로 변환하는 도구 입니다. 관계형 OLTP 스키마 또는 지원되는 데이터웨어 하우스 OLAP 스키마를 Amazon RDS (예: Amazon Aurora MySQL 또는 Amazon Aurora PostgreSQL)로 변환 할 수 있습니다. 관계형 OLTP 스키마 또는 지원되는 데이터웨어 하우스 OLAP 스키마를 Amazon Redshift로 변환 할 수도 있습니다. 이 설명서에서 지원되는 모든 소스 및 대상을 찾으십시오.

 

AWS SCT는 또한 가장 최근에 업데이트 된 도구 중 하나로, 매달 새로운 기능이 자주 업데이트 됩니다. 각 기능에 대한 릴리스노트를 제공하는 것 외에도 AWS SCT 릴리스에 대한 블로그 시리즈를 시작하여 각 빌드의 중요한 새 기능에 대해 더 자세한 정보를 제공 하고자 합니다.

 

우리는 고객 요청에 따라 로드맵을 작성합니다. AWS SCT 사용자로서 AWS SCT의 새로운 기능을 보고 싶다면 이 게시물에 자유롭게 의견을 기재 부탁 드립니다.

 

이 글에서는 빌드 613의 일부 새로운 기능을 소개합니다. 이 게시물에서 살펴볼 기능 목록은 다음과 같습니다.

 

  • Oracle에서 PostgreSQL로 – SQL 스크립트 파일 변환
  • Oracle에서 PostgreSQL로 – EXECUTE IMMEDIATE, DBMS_SQL 및 커서에 대한 동적 SQL 변환 향상
  • 소스로서 Microsoft SQL Server에 대한 Microsoft Windows 인증 지원
  • Greenplum에서 Amazon Redshift로 – 내장된 SQL 함수를 Amazon Redshift 스칼라 SQL UDF로 변환

 

위의 새 기능들은 빌드 613의 일부 입니다. 전체 목록은 이 릴리스 정보 섹션을 참조하십시오.

 

Oracle에서 PostgreSQL-SQL 스크립트 파일로 변환

AWS SCT의 이전 빌드는 평가 보고서를 생성하고 테이블 구조, 색인, 함수 등과 같은 Oracle 데이터베이스 객체를 PostgreSQL으로 변환하는 데 유용했습니다. 그러나 대부분의 엔터프라이즈 데이터베이스 관리자는 관리 및 유지 관리와 같은 일상적인 작업에 사용하는 SQL 스크립트를 가지고 있습니다. 이러한 SQL 스크립트는 일반적으로 소프트웨어 프로젝트의 일부로 작성된 독립형 SQL 파일입니다. 총 관리 비용을 줄이기 위해 데이터베이스 엔진을 변경하면 이러한 SQL 스크립트를 변환해야 한다는 것을 의미합니다.

 

사실, 이 전환은 고객의 큰 요구사항 이었습니다. 고객은 AWS SCT가 현재 지원되는 데이터베이스 개체에 대해 제공하는 SQL 스크립트를 평가하고 변환 할 수 있는 동일한 이점을 얻고자 했습니다.

 

빌드 613을 사용하면, PostgreSQL에 대한 Oracle 용 AWS SCT에서 이 기능을 사용할 수 있습니다. 예를 살펴 보겠습니다.

 

 

독립형 SQL 스크립트를 변환하는 단계

 

  1. Oracle에서 PostgreSQL 프로젝트를 만듭니다.
  2. Oracle 및 PostgreSQL 엔드포인트에 연결합니다.
  3. 소스트리에서 모든 노드를 uncheck 합니다.
  4. SQL 스크립트 노드에 대한내용(마우스 오른쪽 클릭) 메뉴를 열고 스크립트 로드를 선택 합니다.
  5. 모든 SQL 스크립트가 있는 폴더를 선택하십시오.
  6. SQL 스크립트 노드에 대한 내용(마우스 오른 클릭) 메뉴를 다시 열고 데이터베이스 개체를 변환 할 때와 마찬가지로  스크립트 변환 을 선택합니다.
  7. 평가 보고서를 검토하고 변환을 적용 합니다.

 

다음은 평가 보고서와 함께 변환 된 Oracle 샘플 HR 스키마 스크립트의 예시입니다.

 

 

Oracle에서 PostgreSQ-동적 SQL 변환 개선

동적 SQL은 런타임에 SQL 명령문을 생성하고 실행하기 위한 프로그래밍 방법론입니다. 데이터베이스 정의 언어(DDL) 명령을 실행해야 하는 프로그램을 작성할 때 유용합니다. 또한 편집 타임에 SQL 명령문의 전체 텍스트, 입력 및 출력 변수의 수 또는 데이터 유형을 알지 못할 때 유용합니다.

 

PostgreSQL의 동적 SQL 구문은 Oracle과 다른 규칙 집합을 따릅니다. 경우에 따라 이러한 동적 SQL문을 변환하는 구문과 방법은 데이터베이스 버전에 따라 다릅니다. 이 빌드에서는 Oracle에서 PostgreSQL에 이르는 복잡한 동적 SQL의 변환 속도를 향상시킵니다. 우리는 다른 버전의 동적 SQL과 동적 SQL 간의 구문상의 차이점을 고려하여 이를 PostgreSQL로 성공적으로 변환하는 데 도움을 줍니다.

 

예를 살펴 보겠습니다.

 

 

이전 버전의 Oracle에서는 PL / SQL 블록이 decode 명령문을 사용했습니다. 이 함수는 결국 Oracle의 case 명령문으로 대체되었습니다. AWS의 향상된 SCT 빌드 613에서는 이와 같은 차이점을 찾아 내고 decode 명령문을 PostgreSQL의 case 명령문으로 변환 할 수 있습니다. 이전 빌드에서 처럼 AWS SCT Oracle 확장팩에서 to_char () 함수 변환을 사용할 수 있습니다. 확장팩 작업에 대한 자세한 내용은 이 설명서를 참조하십시오.

 

다른 간단한 동적 SQL 변환 예시를 살펴 보겠습니다.

 

 

보여지는 바와 같이, PostgreSQL에서는 함수 인수를 공개해야 합니다. AWS SCT는 소스의 Oracle 사전을 거쳐 오라클에서 PostgreSQL으로의 완전한 변환을 위해 이러한 인수 유형을 자동으로 식별합니다.

 

소스로서의 SQL Server 대한 Windows 인증 지원

이전에는 AWS SCT가 SQL 인증만 사용하여 SQL Server 엔드포인트를 사용할 수 있었습니다. SQL Server는 Windows 인증이라는 LDAP / Active Directory 기반 인증도 지원합니다. 이 릴리스를 통해, AWS SCT는 Windows 인증을 사용하여 SQL Server 엔드포인트에 연결할 수도 있습니다.

 

이 새로운 기능을 사용하는 것은 간단합니다. SQL Server 엔드포인트에 연결할 때 다음 스크린샷이 보여주는 것 과 같이 Windows 인증을 선택하기만 하면 됩니다.

 

 

Greenplum에서 Amazon Redshift내장 SQL 함수를 Amazon Redshift 스칼라 SQL UDF 변환

Amazon Redshift에서는 SQL SELECT clause 또는 파이썬 프로그램을 사용하여 사용자 정의 스칼라 함수(UDF)를 작성할 수 있습니다. 이 기능은 데이터베이스에 저장되며, 로그인한 사용자가 Amazon Redshift에서 가지고 있는 권한에 따라 사용할 수 있습니다.

 

빌드 613부터는, Greenplum에서 Amazon Redshift 로의 OLAP 데이터베이스 오브젝트 변환은 Amazon Redshift에서 SQL 함수를 스칼라 SQL UDF로 변환하는 것을 지원합니다. 스칼라 SQL UDF는 함수가 호출 될 때 실행되고 단일 값을 되돌리는 SQL SELECT clause을 통합합니다. 전환에는 모든 Amazon Redshift 모범사례와 규칙을 따릅니다. 또한 SQL 함수 변환에 대한 평가 보고서를 표시하고 Amazon Redshift에 적용하기 전에 변환된 SQL을 표시합니다. Amazon Redshift에서 스칼라 SQL UDF 작성에 대한 자세한 내용은 Amazon Redshift 설명서를 참조 바랍니다.

 

우리가 설명한 기능 외에도, 빌드 613은 다른 많은 개선 사항을 제공합니다. 사용자 정의 유형 매핑 개선, AWS 프로파일 설정 향상, Oracle에서 PostgreSQL에 대한 연관 배열 변환 지원 등이 포함됩니다.

 

언제나 그렇듯이, AWS SCT가 자동으로 변환 할 수 없는 객체는 평가 보고서에 표시됩니다. 이것에 대해, 대상 엔드포인트에서 변경 사항을 적용하기 전에 검토하는 것을 추천 드립니다. 평가 보고서는 자동으로 변환 할 수 없는 것을 보여주는 것으로 그치지 않습니다. 대상 엔진의 모범 사례를 기초로, 특정 개체를 변환하는 방법에 대한 정보 링크를 제공해 주기도 합니다.

 

결론

다양한 채널에서 고객이 원하는 부분에 대한 피드백을 얻고 이를 사용하여 클라우드 전환율을 높이는 데 도움이 되길 바라고 있습니다. 이 블로그 시리즈를 또 다른 채널로 활용하여 의견을 수집하고 클라우드 전환율을 높이는데 활용하고 싶습니다. 우리는 이 시리즈가 AWS의 오픈 소스 데이터베이스의 진정한 잠재력을 깨닫도록 도움이 되길 바랍니다.

 

앞으로의 마이그레이션에 행운이 깃들길 바랍니다!

 

원문 URL: https://aws.amazon.com/ko/blogs/database/schema-conversion-tool-blog-series-introducing-new-features-in-build-613/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.