🕰️ 작성일 : 2025.08.07
Q : 현재 Amazon Aurora Mysql의 한 테이블에서 DECIMAL(49,30)
을 사용하고 있으나 이 타입이 Amazon Redshift에서 지원되지 않아 테이블 Sync가 실패합니다. 이를 우회 할 수 있는 방법이 있을까요?
A : Amazon Aurora에서 원본 테이블에 대한 View을 생성하고, Amazon Redshift에서 Federated Query 방식으로 해당 View을 조회하여 문제를 우회 할 수 있습니다. Amazon Redshift에서 Mysql을 대상으로 Federated Query을 사용하기 위한 AWS의 공식 문서는 아래에서 확인하세요***.***
MySQL에 대한 연합 쿼리 사용 시작하기 - Amazon Redshift
DECIMAL(38,18)
을 사용합니다.
CREATE VIEW decimal_table_view AS
SELECT
id,
CASE
WHEN number IS NULL THEN NULL
WHEN ABS(number) >= POWER(10, 19) THEN NULL -- 오버플로우 방지
ELSE CAST(number AS DECIMAL(38,18))
END AS number
FROM decimal_table;
CREATE EXTERNAL SCHEMA aurora_schema
FROM MYSQL
DATABASE 'zeroetl'
URI 'aurora-instance-1.*******.ap-northeast-2.rds.amazonaws.com'
IAM_ROLE 'arn:aws:iam::*******82095:role/AmazonRedshift_FederatedQuery'
SECRET_ARN 'arn:aws:secretsmanager:ap-northeast-2:*******82095:secret:aurora1_secretmanager-xLHRN8';
SELECT *
FROM aurora_schema.decimal_table_view;