소스 RDS 데이터베이스에 데이터 추가 및 Amazon Redshift에서 쿼리 - Amazon Relational Database Service

소스 RDS 데이터베이스에 데이터 추가 및 Amazon Redshift에서 쿼리

이 문서는 미리 보기 릴리스 중이며 Amazon Redshift가 구성된 Amazon RDS 제로 ETL 통합에 대한 미리 보기 릴리스 설명서입니다. 설명서 및 기능은 모두 변경될 수 있습니다. 프로덕션 환경이 아닌 테스트 환경에서만 이 기능을 사용하는 것이 좋습니다. 미리 보기 이용 약관은 AWS 서비스 약관베타 및 미리 보기를 참조하세요.

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; USE my_db; CREATE TABLE books_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 INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');

Amazon Redshift에서 Amazon RDS 데이터 쿼리

RDS 데이터베이스에 데이터를 추가하면 데이터가 Amazon Redshift에 복제되어 쿼리할 준비가 됩니다.

복제된 데이터를 쿼리하려면
  1. Amazon Redshift 콘솔로 이동한 다음 왼쪽 탐색 창에서 쿼리 편집기 v2를 선택합니다.

  2. 클러스터 또는 작업 그룹에 연결하고 드롭다운 메뉴(이 예시에서는 destination_database)에서 대상 데이터베이스(통합에서 생성한 데이터베이스)를 선택합니다. 대상 데이터베이스를 생성하는 방법에 대한 지침은 Amazon Redshift에서 대상 데이터베이스 생성을 참조하세요.

  3. SELECT 문을 사용하여 데이터를 쿼리합니다. 이 예제에서는 다음 명령을 실행하여 소스 RDS 데이터베이스에서 생성한 테이블의 모든 데이터를 선택합니다.

    SELECT * from my_db."books_table";
    • my_dbRDS 데이터베이스 스키마 이름입니다.

    • books_tableRDS 테이블 이름입니다.

명령줄 클라이언트를 사용하여 데이터를 쿼리할 수도 있습니다. 예:

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바이트의 길이가 가변적인 문자열 값
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 반정형 데이터 또는 문서 값