소스 RDS 데이터베이스에 데이터 추가 및 Amazon Redshift에서 쿼리
Amazon RDS에서 Amazon Redshift로 데이터를 복제하는 제로 ETL 통합 생성을 완료하려면 Amazon Redshift에서 대상 데이터베이스를 생성해야 합니다.
먼저 Amazon Redshift 클러스터 또는 작업 그룹에 연결하고 통합 식별자에 대한 참조가 있는 데이터베이스를 생성합니다. 그런 다음 소스 RDS 데이터베이스에 데이터를 추가하고 Amazon Redshift에서 복제된 것을 확인할 수 있습니다.
주제
Amazon Redshift에서 대상 데이터베이스 생성
통합을 생성한 후에 Amazon Redshift로 데이터 복제를 시작하려면 먼저 대상 데이터 웨어하우스에 대상 데이터베이스를 만들어야 합니다. 이 대상 데이터베이스에는 통합 식별자에 대한 참조가 포함되어야 합니다. Amazon Redshift 콘솔 또는 쿼리 편집기 v2를 사용하여 데이터베이스를 생성할 수 있습니다.
대상 데이터베이스를 생성하는 방법에 대한 지침은 Amazon Redshift에서 대상 데이터베이스 생성을 참조하세요.
소스 데이터베이스에 데이터 추가
통합을 구성한 후, Amazon Redshift 데이터 웨어하우스로 복제하려는 일부 데이터를 RDS 데이터베이스에 추가합니다.
참고
Amazon RDS와 Amazon Redshift의 데이터 유형 간에는 차이가 있습니다. 데이터 유형 매핑 표는 RDS와 Amazon Redshift 데이터베이스 간의 데이터 유형 차이 섹션을 참조하세요.
먼저, 선택한 MySQL 클라이언트를 사용하여 소스 데이터베이스에 연결합니다. 지침은 MySQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기 단원을 참조하십시오.
그런 다음 테이블을 만들고 샘플 데이터 행을 삽입합니다.
중요
테이블에 프라이머리 키가 있는지 확인하세요. 없는 경우 대상 데이터 웨어하우스에 복제할 수 없습니다.
다음 예제에서는 MySQL Workbench 유틸리티
CREATE DATABASE
my_db
; USEmy_db
; CREATE TABLEbooks_table
(ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL, Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID)); INSERT INTObooks_table
VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
Amazon Redshift에서 Amazon RDS 데이터 쿼리
RDS 데이터베이스에 데이터를 추가하면 데이터가 Amazon Redshift에 복제되어 쿼리할 준비가 됩니다.
복제된 데이터를 쿼리하려면
-
Amazon Redshift 콘솔로 이동한 다음 왼쪽 탐색 창에서 쿼리 편집기 v2를 선택합니다.
-
클러스터 또는 작업 그룹에 연결하고 드롭다운 메뉴(이 예시에서는 destination_database)에서 대상 데이터베이스(통합에서 생성한 데이터베이스)를 선택합니다. 대상 데이터베이스를 생성하는 방법에 대한 지침은 Amazon Redshift에서 대상 데이터베이스 생성을 참조하세요.
-
SELECT 문을 사용하여 데이터를 쿼리합니다. 이 예제에서는 다음 명령을 실행하여 소스 RDS 데이터베이스에서 생성한 테이블의 모든 데이터를 선택합니다.
SELECT * from
my_db
."books_table
";-
는 RDS 데이터베이스 스키마 이름입니다.my_db
-
은 RDS 테이블 이름입니다.books_table
-
명령줄 클라이언트를 사용하여 데이터를 쿼리할 수도 있습니다. 예:
destination_database=# select * from
my_db
."books_table
"; ID | Title | Author | Copyright | Genre | txn_seq | txn_id ----+–------------+---------------+-------------+------------------------+----------+--------+ 1 | The Shining | Stephen King | 1977 | Supernatural fiction | 2 | 12192
참고
대/소문자를 구분하려면 스키마, 테이블 및 열 이름에 큰따옴표(" ")를 사용합니다. 자세한 내용은 enable_case_sensitive_identifier 단원을 참조하세요.
RDS와 Amazon Redshift 데이터베이스 간의 데이터 유형 차이
다음 표에는 해당하는 Amazon Redshift 데이터 유형에 대응하는 RDS for MySQL 데이터 유형의 매핑이 나와 있습니다. Amazon RDS는 현재 제로 ETL 통합에 이러한 데이터 유형만 지원합니다.
소스 데이터베이스의 테이블에 지원되지 않는 데이터 유형이 포함된 경우 테이블이 동기화되지 않아 Amazon Redshift 대상에서 사용할 수 없습니다. 소스에서 대상으로의 스트리밍은 계속되지만 지원되지 않는 데이터 유형이 있는 테이블은 사용할 수 없습니다. 테이블을 수정하고 Amazon Redshift에서 사용할 수 있게 하려면 주요 변경 사항을 수동으로 되돌린 다음 ALTER DATABASE...INTEGRATION
REFRESH
를 실행하여 통합을 새로 고쳐야 합니다.
RDS for MySQL
RDS for MySQL 데이터 유형 | Amazon Redshift 데이터 형식 | 설명 | 제한 사항 |
---|---|---|---|
INT | INTEGER | 4바이트 부호화 정수 | |
SMALLINT | SMALLINT | 2바이트 부호화 정수 | |
TINYINT | SMALLINT | 2바이트 부호화 정수 | |
MEDIUMINT | INTEGER | 4바이트 부호화 정수 | |
BIGINT | BIGINT | 8바이트 부호화 정수 | |
INT UNSIGNED | BIGINT | 8바이트 부호화 정수 | |
TINYINT UNSIGNED | SMALLINT | 2바이트 부호화 정수 | |
MEDIUMINT UNSIGNED | INTEGER | 4바이트 부호화 정수 | |
BIGINT UNSIGNED | DECIMAL(20,0) | 정밀도를 선택할 수 있는 정확한 숫자 | |
DECIMAL(p,s) = NUMERIC(p,s) | DECIMAL (p,s) | 정밀도를 선택할 수 있는 정확한 숫자 |
38보다 큰 정밀도 및 37보다 큰 확장은 지원되지 않음 |
DECIMAL(p,s) UNSIGNED = NUMERIC(p,s) UNSIGNED | DECIMAL (p,s) | 정밀도를 선택할 수 있는 정확한 숫자 |
38보다 큰 정밀도 및 37보다 큰 확장은 지원되지 않음 |
FLOAT4/REAL | REAL | 단정밀도 부동 소수점 수 | |
FLOAT4/REAL UNSIGNED | REAL | 단정밀도 부동 소수점 수 | |
DOUBLE/REAL/FLOAT8 | DOUBLE PRECISION | 배정밀도 부동 소수점 수 | |
DOUBLE/REAL/FLOAT8 UNSIGNED | DOUBLE PRECISION | 배정밀도 부동 소수점 수 | |
BIT(n) | VARBYTE(8) | 가변 길이 이진 값 | |
BINARY(n) | VARBYTE(n) | 가변 길이 이진 값 | |
VARBINARY(n) | VARBYTE(n) | 가변 길이 이진 값 | |
CHAR(n) | VARCHAR(n) | 길이가 가변적인 문자열 값 | |
VARCHAR(n) | VARCHAR(n) | 길이가 가변적인 문자열 값 | |
TEXT | VARCHAR(65,535) | 최대 65,535바이트의 길이가 가변적인 문자열 값 | |
TINYTEXT | VARCHAR(255) | 최대 255바이트의 길이가 가변적인 문자열 값 | |
MEDIUMTEXT | VARCHAR(65,535) | 최대 65,535바이트의 길이가 가변적인 문자열 값 | |
LONGTEXT | VARCHAR(65,535) | 최대 65,535바이트의 길이가 가변적인 문자열 값 | |
ENUM | VARCHAR(1,020) | 최대 1,020바이트의 길이가 가변적인 문자열 값 | |
SET | VARCHAR(1,020) | 최대 1,020바이트의 길이가 가변적인 문자열 값 | |
날짜 | 날짜 | 날짜(년, 월, 일) | |
DATETIME | TIMESTAMP | 날짜/시간(시간대 제외) | |
TIMESTAMP(p) | TIMESTAMP | 날짜/시간(시간대 제외) | |
TIME | VARCHAR(18) | 최대 18바이트의 길이가 가변적인 문자열 값 | |
YEAR | VARCHAR(4) | 최대 4바이트의 길이가 가변적인 문자열 값 | |
JSON | SUPER | 반정형 데이터 또는 문서 값 |