AWS

[AWS Aurora] Babelfish를 사용하여 MS SQL 쿼리를 변경 없이 PostgreSQL에서 사용하기

SungWookKang 2022. 4. 8. 23:48
반응형

[AWS Aurora] Babelfish 사용하여 MS SQL 쿼리를 변경 없이 PostgreSQL에서 사용하기

-          SSRS에서 Babelfish 사용하여 쿼리 수정없이 리포트 실행 가능

 

l  Version : AWS Aurora Babelfish

 

앞에서 다루었던 AWS SCT (Schema Conversion Tool) AWS DMS (Database Migration Service) 서비스를 사용하여 이기종 간의 데이터베이스 스키마 전환 실시간 데이터베이스 마이그레이션에 대해서 살펴 보았다.

l  [AWS SCT] AWS SCT 활용하여 이기종 데이터베이스 스키마 전환하기 : https://sungwookkang.com/1497

l  [AWS DMS] AWS DMS 활용하여 데이터 마이그레이션 과정에서 데이터 마스킹 하기 : https://sungwookkang.com/1496

 

이렇게 이기종 데이터베이스 마이그레이션 작업이 진행되면, 기존 데이터베이스를 사용하던 애플리케이션 또한 새로운 데이터베이스에 맞게 변경 작업이 필요하다. 그런데 기업 입장에서 보면 이러한 변경에 따른 개발 리소스 비용이 증가하게 되어 부담되는 것이 현실이다. 만약 기존에 사용중인 데이터베이스가 Microsoft SQL Server이며 마이그레이션된 데이터베이스가 Aurora PostgreSQL이라면, AWS Aurora에서 제공하는 Babelfish 사용하여 기존 SQL Server에서 사용하던 쿼리 그대로 PostgreSQL에서 사용할 있다. 이번 포스트에서는 AWS에서 제공하는 Babelfish 대해서 알아본다.

 

Babelfish for Aurora PostgreSQL Amazon Aurora PostgreSQL 호환 에디션의 새로운 기능으로, 이를 통해 Aurora Microsoft SQL Server용으로 작성된 애플리케이션의 명령을 이해할 있다. Aurora PostgreSQL Babelfish 통해 Microsoft SQL Server 전용 SQL 언어인 T-SQL 이해하고 동일한 통신 프로토콜을 지원한다. 따라서 원래 SQL Server용으로 작성된 앱을 최소한의 코드 변경으로 Aurora에서 사용할 있다. 결과적으로, SQL Server 2005 이상에서 실행되는 애플리케이션을 수정하고 Aurora 이동하는 필요한 작업이 줄어들기 때문에 마이그레이션 속도를 높이고 위험을 낮추며 비용 효율성을 개선할 있다.

 

Babelfish Amazon Aurora 기본 제공 기능으로, 추가 비용 없이 사용할 있으며, RDS 관리 콘솔에서 클릭 번으로 Amazon Aurora 클러스터에서 Babelfish 사용하도록 설정할 있다. 아래 그림은 Babelfish for Aurora PostgreSQL 마이그레이션 되었을 , 기존의 SQL Server에서 사용하던 애플리케이션과 Aurora PostgreSQL 사용하는 애플리케이션이 어떻게 연결되고 통신하는지에 대한 다이어그램이다. 그림을 살펴보면, SQL Server 드라이버를 사용하는 애플리케이션은 Babelfish 통하여 Aurora 접근하게 되고, PostgreSQL 드라이버를 사용하는 애플리케이션은 PostgreSQL 커넥션을 사용하여 Aurora 접근되는 것을 있다.

 

Babelfish Aurora PostgreSQL 대한 SQL Server 데이터 형식, 구문 함수를 지원하여 T-SQL Microsoft SQL Server 동작을 지원한다. 방법을 사용하면 Aurora Aurora PostgreSQL SQL Server SQL 언어를 모두 지원할 있다. 또한 Babelfish SQL Server 와이어 레벨 프로토콜(TDS) 지원하므로 SQL Server 애플리케이션이 Aurora PostgreSQL 기본적으로 통신할 있다. 이렇게 하면 데이터베이스 객체, 저장 프로시저 애플리케이션 코드를 거의 변경하지 않고 마이그레이션할 있다.

 

Babelfish T-SQL 완벽하게 지원하지는 않지만 Aurora PostgreSQL SQL 명령을 사용하여 이러한 명령에서 일반적으로 처리하는 많은 작업을 수행할 있다. 예를 들어 Babelfish에서 지원하지 않는 특정 T-SQL 명령을 정기적으로 사용이 필요할 경우 Aurora PostgreSQL 포트에 연결하고 PostgreSQL SQL 명령을 사용할 있다. Aurora PostgreSQL 일반적으로 사용되는 많은 SQL Server 기능을 대체하는 기능을 제공한다.

아래 표는 Aurora PostgreSQL에서 사용 가능한 PostgreSQL 기능으로 대체할 있는 SQL Server 기능의 가지 예시이다.

SQL Server 기능 비교 가능한 PostgreSQL 기능
SQL Server 대량 복사 PostgreSQL COPY 기능
SQL Server Group By (Babelfish에서는 지원되지 않음) PostgreSQL Group By
SQL Server JSON 지원 PostgreSQL JSON 함수 연산
SQL Server XML 지원 PostgreSQL XML 함수
SQL Server 전체 텍스트 검색 PostgreSQL 전체 텍스트 검색
SQL Server 지역 데이터 형식 PostGIS 확장 (지역 데이터 작업용)

 

Babelfish 아직은 완벽히 T-SQL 지원하는 것은 아니므로 일부 시스템 함수나 일부 SQL Server 고유 함수는 지원되지 않는다. T-SQL 제한 사항 지원되지 않는 기능에 대해서는 Babelfish 버전에 따라 변경될 있으므로 아래 공식 문서를 참고한다. (현재 글을 쓰는 시점에서는 Babelfish 1.0.0 1.1.0 버전이 있다.)

l  T-SQL 제한 사항 지원되지 않는 기능 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-compatibility.html

l  Babelfish 버전 버전에 따른 명령어 지원 여부 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-releases-updates.html

 

 

아래 링크는 Babelfish  사용한 Aurora PostgreSQL 클러스터를 생성하는 방법과, MS SQL 서버 기반 앱을 Babelfish 연결하여 MS SQL 쿼리를 실행하는 방법을 설명한다.

l  Babelfish for Aurora PostgreSQL 정식 출시 레거시 MS SQL 서버 기반 호환 기능 제공 : https://aws.amazon.com/ko/blogs/korea/goodbye-microsoft-sql-server-hello-babelfish/

 

아래 그림은 실제로 필자가 실습한 내용으로 MS SQL Server AdventureWorks2016 데이터베이스를 AWS DMS 사용하여 Babelfish for Aurora PostgreSQL 마이그레이션 SSRS(SQL Server Reporting Service)에서 SQL Native Client 드라이버를 사용하여 MS SQL 쿼리를 사용하여 리포트를 생성하여 실행한 화면이다. 정상적으로 쿼리가 동작하고 리포트가 생성되는 것을 확인할 있다.

 

이처럼 Babelfish 활용하면 기존의 SQL Server사용시 발생할 있는 라이선스 비용을 저렴한 Aurora PostgreSQL 전환하며, 기존 애플리케이션에 대한 코드 변경을 최소화하고, 빠르고 경제적으로 플랫폼 환경을 전환할 있다.

 

[참고자료]

l  [AWS SCT] AWS SCT 활용하여 이기종 데이터베이스 스키마 전환하기 : https://sungwookkang.com/1497

l  [AWS DMS] AWS DMS 활용하여 데이터 마이그레이션 과정에서 데이터 마스킹 하기 : https://sungwookkang.com/1496

l  T-SQL 제한 사항 지원되지 않는 기능 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-compatibility.html

l  Babelfish 버전 버전에 따른 명령어 지원 여부 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-releases-updates.html

l  Babelfish for Aurora PostgreSQL 정식 출시 레거시 MS SQL 서버 기반 호환 기능 제공 : https://aws.amazon.com/ko/blogs/korea/goodbye-microsoft-sql-server-hello-babelfish/

l  https://aws.amazon.com/rds/aurora/babelfish/?nc1=h_ls

 

 

 

2022-04-08 / Sungwook Kang / http://sungwookkang.com

 

 

AWS Babelfish, AWS SCT, Schema Migration, 스키마 변경, 스키마 마이그레이션, 스키마 추출, 스키마 변환, 이기종 쿼리 실행

반응형