

AWS Data Pipeline 는 더 이상 신규 고객이 사용할 수 없습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS Data Pipeline 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon RDS에서 Amazon Redshift로의 템플릿
<a name="dp-template-redshift"></a>

다음 두 템플릿은 변환 스크립트를 사용하여 Amazon RDS MySQL에서 Amazon Redshift로 테이블을 복사합니다. 이 스크립트는 다음 조항이 있는 소스 테이블 스키마를 사용하여 Amazon Redshift 테이블을 생성합니다.
+ 배포 키가 지정되지 않은 경우에는 Amazon RDS 테이블의 첫 번째 프라이머리 키가 배포 키로 설정됩니다.
+ Amazon Redshift로 복사할 때는 Amazon RDS MySQL 테이블에 있는 열을 건너뛰지 못합니다.
+ (선택 사항) Amazon RDS MySQL을 Amazon Redshift 열 데이터 형식 매핑에게 템플릿의 파라미터 중 하나로 제공할 수도 있습니다. 이렇게 지정하는 경우, 스크립트는 이 매핑을 사용하여 Amazon Redshift 테이블을 생성합니다.

`Overwrite_Existing` Amazon Redshift 삽입 모드를 사용하는 경우:
+ 배포 키가 제공되지 않은 경우에는 Amazon RDS MySQL 테이블의 프라이머리 키를 사용합니다.
+ 배포 키가 제공되지 않았는데 테이블에 복합 기본 키가 있으면 첫 번째 키를 배포 키로 사용합니다. 첫 번째 복합 키만이 Amazon Redshift 테이블의 프라이머리 키로 설정됩니다.
+ 배포 키가 제공되지 않고 Amazon RDS MySQL 테이블에 프라이머리 키가 없으면 복사 작업이 실패합니다.

Amazon Redshift에 대한 자세한 내용은 다음 항목을 참조하세요.
+ [Amazon Redshift 클러스터](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
+ Amazon Redshift [복사](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html)
+ [분산 스타일](https://docs.aws.amazon.com/redshift/latest/dg/c_choosing_dist_sort.html) 및 DISTKEY [예제](https://docs.aws.amazon.com/redshift/latest/dg/c_Distribution_examples.html)
+ [정렬 키](https://docs.aws.amazon.com/redshift/latest/dg/t_Sorting_data.html)

아래 표에서 이 스크립트가 데이터 형식을 변환하는 방법을 설명합니다.


**MySQL과 Amazon Redshift 사이의 데이터 형식 변환**  

| **MySQL 데이터 형식** | **Amazon Redshift 데이터 형식** | **참고** | 
| --- | --- | --- | 
| TINYINT,<br />TINYINT (크기) | SMALLINT | MySQL: -128 \~ 127. 괄호 안에 최대 자릿수를 명시할 수 있습니다.<br /> Amazon Redshift: INT2. 2바이트 부호화 정수 | 
| TINYINT UNSIGNED,<br />TINYINT (크기) UNSIGNED | SMALLINT | MySQL: 0 \~ 255 UNSIGNED. 괄호 안에 최대 자릿수를 명시할 수 있습니다.<br />Amazon Redshift: INT2. 2바이트 부호화 정수 | 
| SMALLINT,<br />SMALLINT(크기) | SMALLINT | MySQL: -32768 \~ 32767 일반. 괄호 안에 최대 자릿수를 명시할 수 있습니다.<br />Amazon Redshift: INT2. 2바이트 부호화 정수 | 
| SMALLINT UNSIGNED,<br />SMALLINT(크기) UNSIGNED, | INTEGER | MySQL: 0 \~ 65535 UNSIGNED\*. 괄호 안에 최대 자릿수를 명시할 수 있습니다.<br />Amazon Redshift: INT4. 4바이트 부호화 정수 | 
| MEDIUMINT,<br />MEDIUMINT(크기) | INTEGER | MySQL: 388608 \~ 8388607. 괄호 안에 최대 자릿수를 명시할 수 있습니다.<br />Amazon Redshift: INT4. 4바이트 부호화 정수 | 
| MEDIUMINT UNSIGNED,<br />MEDIUMINT(크기)<br />UNSIGNED | INTEGER | MySQL: 0 \~ 16777215. 괄호 안에 최대 자릿수를 명시할 수 있습니다.<br />Amazon Redshift: INT4. 4바이트 부호화 정수 | 
| INT,<br />INT(크기) | INTEGER | MySQL: 147483648 \~ 2147483647<br />Amazon Redshift: INT4. 4바이트 부호화 정수 | 
| INT UNSIGNED,<br />INT(크기) UNSIGNED | BIGINT | MySQL: 0 \~ 4294967295<br />Amazon Redshift: INT8. 8바이트 부호화 정수 | 
| BIGINT<br />BIGINT(크기) | BIGINT | Amazon Redshift: INT8. 8바이트 부호화 정수 | 
| BIGINT UNSIGNED<br />BIGINT(크기) UNSIGNED | VARCHAR(20\*4) | MySQL: 0 \~ 18446744073709551615 <br />Amazon Redshift: 네이티브에 상당하는 것이 없어 문자 배열을 사용합니다. | 
| FLOAT<br />FLOAT(크기,d)<br />FLOAT(크기, d) UNSIGNED | REAL | 최대 자릿수는 크기 파라미터에 지정될 수 있습니다. 소수점 오른쪽의 최대 자릿수는 d 파라미터에 지정됩니다.<br />Amazon Redshift: FLOAT4 | 
| DOUBLE(크기, d) | DOUBLE PRECISION | 최대 자릿수는 크기 파라미터에 지정될 수 있습니다. 소수점 오른쪽의 최대 자릿수는 d 파라미터에 지정됩니다.<br />Amazon Redshift: FLOAT8 | 
| DECIMAL(크기, d) | DECIMAL(크기, d) | DOUBLE이 문자열로 저장되어, 고정 소수점에 허용됨. 최대 자릿수는 크기 파라미터에 지정될 수 있습니다. 소수점 오른쪽의 최대 자릿수는 d 파라미터에 지정됩니다.<br />Amazon Redshift: 네이티브에 상당한 것이 없습니다. | 
| CHAR(크기) | VARCHAR(크기\*4) | 고정된 길이의 문자열을 유지합니다. 여기에는 글자, 숫자 및 특수 문자가 포함될 수 있습니다. 정해진 크기가 괄호 안에 파라미터로 명시됩니다. 최대 255자까지 저장할 수 있습니다.<br />오른쪽에 스페이스가 있습니다.<br />Amazon Redshift: CHAR 데이터 형식은 멀티바이트 문자를 지원하지 않아 VARCHAR을 사용합니다.<br />문자 테이블을 U\+10FFFF로 제한하는 [RFC3629](http://tools.ietf.org/html/rfc3629)에 따라 문자당 최대 바이트 수가 4입니다. | 
| VARCHAR(크기) | VARCHAR(크기\*4) | 최대 255자까지 저장할 수 있습니다.<br />VARCHAR은 무효 UTF-8 코드 포인트, 즉 0xD800 - 0xDFFF, (바이트 시퀀스: ED A0 80 - ED BF BF), 0xFDD0 - 0xFDEF, 0xFFFE, 0xFFFF, (바이트 시퀀스: EF B7 90 - EF B7 AF, EF BF BE, EF BF BF)를 지원하지 않습니다. | 
| TINYTEXT | VARCHAR(255\*4) | 최대 255자 길이의 문자열을 포함합니다. | 
| TEXT | VARCHAR(최대) | 최대 65,535자 길이의 문자열을 포함합니다. | 
| MEDIUMTEXT | VARCHAR(최대) | 0 \~ 16,777,215 Char | 
| LONGTEXT | VARCHAR(최대) | 0 \~ 4,294,967,295 Char | 
| BOOLEAN<br />BOOL<br />TINYINT(1) | BOOLEAN | MySQL: 이 유형은 [TINYINT(1)](http://dev.mysql.com/doc/refman/5.0/en/integer-types.html)의 동의어입니다. 제로 값은 false로 간주됩니다. 비-제로 값은 true로 간주됩니다. | 
| BINARY[(M)] | varchar(255) | M은 0 \~ 255 바이트임, FIXED | 
| VARBINARY(M) | VARCHAR(최대) | 0 \~ 65,535바이트 | 
| TINYBLOB | VARCHAR(255) | 0 \~ 255바이트 | 
| BLOB | VARCHAR(최대) | 0 \~ 65,535바이트 | 
| MEDIUMBLOB | VARCHAR(최대) | 0 \~ 16,777,215바이트 | 
| LONGBLOB | VARCHAR(최대) | 0 \~ 4,294,967,295바이트 | 
| ENUM | VARCHAR(255\*2) | 문자 열거형 문자열의 길이가 아니라 테이블 정의의 열거형 값이 제한됩니다. | 
| SET | VARCHAR(255\*2) | 열거형과 같음. | 
| DATE | DATE | (YYYY-MM-DD)<br />"1000-01-01" \~ "9999-12-31" | 
| TIME | VARCHAR(10\*4) | (hh:mm:ss)<br />"-838:59:59" \~ "838:59:59" | 
| DATETIME | TIMESTAMP | (YYYY-MM-DD hh:mm:ss)<br />1000-01-01 00:00:00"\~"9999-12-31 23:59:59" | 
| TIMESTAMP | TIMESTAMP | (YYYYMMDDhhmmss)<br />19700101000000 \~ 2037\+ | 
| YEAR | VARCHAR(4\*4) | (YYYY)<br />1900 \~ 2155 | 
| 열 SERIAL | ID 생성 / 이 열은 복사되므로 OLAP 데이터 웨어하우스는 이 속성이 필요하지 않습니다.<br />변환 시에 SERIAL 키워드가 추가되지 않습니다. | 사실 SERIAL은 이름이 SEQUENCE인 엔터티입니다. 이것은 나머지 테이블에 별도로 존재합니다.<br />column GENERATED BY DEFAULT<br />다음과 동일:<br />CREATE SEQUENCE name; CREATE TABLE table ( column INTEGER NOT NULL DEFAULT nextval(name) ); | 
| column BIGINT UNSIGNED NOT NULL AUTO\_INCREMENT UNIQUE | ID 생성 / 이 열은 복사되므로 OLAP 데이터 웨어하우스는 이 속성이 필요하지 않습니다.<br />따라서 변환 시에 SERIAL 키워드가 추가되지 않습니다. | 사실 SERIAL은 이름이 SEQUENCE인 엔터티입니다. 이것은 나머지 테이블에 별도로 존재합니다.<br />column GENERATED BY DEFAULT<br />다음과 동일:<br />CREATE SEQUENCE name; CREATE TABLE table ( column INTEGER NOT NULL DEFAULT nextval(name) ); | 
| ZEROFILL | 변환 시에 ZEROFILL 키워드가 추가되지 않습니다. | INT UNSIGNED ZEROFILL NOT NULL<br />ZEROFILL은 표시된 필드 값을 열 정의에 지정된 표시 너비까지 0으로 채웁니다. 표시 너비보다 긴 값은 잘리지 않습니다. ZEROFILL 사용은 UNSIGNED도 의미합니다. | 