소스 Aurora DB 클러스터에 데이터 추가 및 Amazon Redshift에서 쿼리 - Amazon Aurora

소스 Aurora DB 클러스터에 데이터 추가 및 Amazon Redshift에서 쿼리

Amazon Aurora에서 Amazon Redshift로 데이터를 복제하는 제로 ETL 통합 생성을 완료하려면 Amazon Redshift에서 대상 데이터베이스를 생성해야 합니다.

먼저 Amazon Redshift 클러스터 또는 작업 그룹에 연결하고 통합 식별자에 대한 참조가 있는 데이터베이스를 생성합니다. 그런 다음 소스 Aurora DB 클러스터에 데이터를 추가하고 Amazon Redshift에서 복제된 것을 확인할 수 있습니다.

Amazon Redshift에서 대상 데이터베이스 생성

통합을 생성한 후에 Amazon Redshift로 데이터 복제를 시작하려면 먼저 대상 데이터 웨어하우스에 대상 데이터베이스를 만들어야 합니다. 이 대상 데이터베이스에는 통합 식별자에 대한 참조가 포함되어야 합니다. Amazon Redshift 콘솔 또는 쿼리 편집기 v2를 사용하여 데이터베이스를 생성할 수 있습니다.

대상 데이터베이스를 생성하는 방법에 대한 지침은 Amazon Redshift에서 대상 데이터베이스 생성을 참조하세요.

소스 DB 클러스터에 데이터 추가

통합을 구성한 후, Amazon Redshift 데이터 웨어하우스로 복제하려는 일부 데이터를 Aurora DB 클러스터에 추가합니다.

참고

Amazon Aurora와 Amazon Redshift의 데이터 유형 간에는 차이가 있습니다. 데이터 유형 매핑 표는 Aurora와 Amazon Redshift 데이터베이스 간의 데이터 유형 차이 섹션을 참조하세요.

먼저, 선택한 MySQL 또는 PostgreSQL 클라이언트를 사용하여 소스 DB 클러스터에 연결합니다. 지침은 Amazon Aurora DB 클러스터에 연결 섹션을 참조하세요.

그런 다음 테이블을 만들고 샘플 데이터 행을 삽입합니다.

중요

테이블에 프라이머리 키가 있는지 확인하세요. 없는 경우 대상 데이터 웨어하우스에 복제할 수 없습니다.

pg_restore 및 pg_restore PostgreSQL 유틸리티는 처음에 프라이머리 키가 없는 테이블을 만든 다음 나중에 추가합니다. 이러한 유틸리티 중 하나를 사용하는 경우 먼저 스키마를 만든 다음 별도의 명령으로 데이터를 로드하는 것이 좋습니다.

MySQL

다음 예제에서는 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');

PostgreSQL

다음 예제에서는 psql PostgreSQL 대화형 터미널을 사용합니다. 클러스터에 연결할 때는 통합을 생성할 때 지정한 명명된 데이터베이스를 포함하세요.

psql -h mycluster.cluster-123456789012.us-east-2.rds.amazonaws.com -p 5432 -U username -d named_db; named_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)); named_db=> INSERT INTO books_table VALUES (1, "The Shining", "Stephen King", 1977, "Supernatural fiction");

Amazon Redshift에서 Aurora 데이터 쿼리

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

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

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

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

    SELECT * from my_db."books_table";
    • my_dbAurora 데이터베이스 스키마 이름입니다. 이 옵션은 MySQL 데이터베이스에만 필요합니다.

    • books_tableAurora 테이블 이름입니다.

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

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 단원을 참조하세요.

Aurora와 Amazon Redshift 데이터베이스 간의 데이터 유형 차이

다음 표에는 해당하는 Amazon Redshift 데이터 유형에 대응하는 Aurora MySQL 또는 Aurora PostgreSQL 데이터 유형의 매핑이 나와 있습니다. Amazon Aurora는 현재 제로 ETL 통합에 이러한 데이터 유형만 지원합니다.

소스 DB 클러스터의 테이블에 지원되지 않는 데이터 유형이 포함된 경우 테이블이 동기화되지 않아 Amazon Redshift 대상에서 사용할 수 없습니다. 소스에서 대상으로의 스트리밍은 계속되지만 지원되지 않는 데이터 유형이 있는 테이블은 사용할 수 없습니다. 테이블을 수정하고 Amazon Redshift에서 사용할 수 있게 하려면 주요 변경 사항을 수동으로 되돌린 다음 ALTER DATABASE...INTEGRATION REFRESH를 실행하여 통합을 새로 고쳐야 합니다.

Aurora MySQL

Aurora 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 반정형 데이터 또는 문서 값

Aurora PostgreSQL

Aurora PostgreSQL의 제로 ETL 통합은 사용자 지정 데이터 유형이나 확장에서 만든 데이터 유형을 지원하지 않습니다.

중요

Aurora PostgreSQL의 Amazon Redshift 기능과의 제로 ETL 통합은 미리 보기 릴리스에 포함되어 있습니다. 설명서 및 기능은 모두 변경될 수 있습니다. 이 기능은 프로덕션 환경이 아닌 테스트 환경에서만 사용할 수 있습니다. 미리 보기 이용 약관은 AWS 서비스 약관베타 및 미리 보기를 참조하세요.

Aurora PostgreSQL 데이터 유형 Amazon Redshift 데이터 형식 설명 제한 사항
bigint BIGINT 8바이트 부호화 정수
bigserial BIGINT 8바이트 부호화 정수
bit(n) VARBYTE(n) 가변 길이 이진 값
bit varying(n) VARBYTE(n) 가변 길이 이진 값
bit VARBYTE(1,024,000) 최대 1,024,000바이트의 길이가 가변적인 문자열 값
boolean BOOLEAN 논리적 부울(true/false)
bytea VARBYTE(1,024,000) 최대 1,024,000바이트의 길이가 가변적인 문자열 값
character(n) CHAR(n) 고정 길이 문자열
character varying(n) VARCHAR(65,535) 길이가 가변적인 문자열 값
date 날짜 날짜(년, 월, 일)
  • 지원되지 않는 9999-12-31 값보다 큰 값

  • B.C. 값은 지원되지 않음

double precision DOUBLE PRECISION 배정밀도 부동 소수점 수 비정상 값은 지원되지 않음
정수 INTEGER 4바이트 부호화 정수
money DECIMAL(203) 통화 금액
numeric(p,s) DECIMAL (p,s) 길이가 가변적인 문자열 값
  • NaN 값은 지원되지 않음

  • 38보다 큰 정밀도 및 37보다 큰 확장은 지원되지 않음

  • 네거티브 확장은 지원되지 않음

실제 REAL 단정밀도 부동 소수점 수
smallint SMALLINT 2바이트 부호화 정수
smallserial SMALLINT 2바이트 부호화 정수
serial INTEGER 4바이트 부호화 정수
텍스트 VARCHAR(65,535) 최대 65,535바이트의 길이가 가변적인 문자열 값
time [ (p) ](시간대 제외) VARCHAR(19) 최대 19바이트의 길이가 가변적인 문자열 값 Infinity-Infinity 값은 지원되지 않음
time [ (p) ](시간대 포함) VARCHAR(22) 최대 22바이트의 길이가 가변적인 문자열 값
  • Infinity-Infinity 값은 지원되지 않음

timestamp [(p)](시간대 제외) TIMESTAMP 날짜/시간(시간대 제외)
  • Infinity-Infinity 값은 지원되지 않음

  • 지원되지 않는 9999-12-31 값보다 큰 값

  • B.C. 값은 지원되지 않음

timestamp [(p)](시간대 포함) TIMESTAMPTZ 날짜/시간(시간대 포함)
  • Infinity-Infinity 값은 지원되지 않음

  • 지원되지 않는 9999-12-31 값보다 큰 값

  • B.C. 값은 지원되지 않음