

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>

以下の 2 つのテンプレートでは、変換スクリプトを使用して、Amazon RDS MySQL から Amazon Redshift にテーブルをコピーします。変換スクリプトでは、ソーステーブルのスキーマを使用して Amazon Redshift テーブルが作成されます。以下の点に注意してください。
+ 分散キーを指定しなかった場合は、Amazon RDS テーブルの最初のプライマリキーが分散キーとして設定されます。
+ Amazon Redshift へのコピーを実行するときに、Amazon RDS MySQL のテーブルにある列を省略することはできません。
+ (オプション) テンプレートに含まれるパラメータの 1 つとして、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 [COPY](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 のデータ型** | **Notes** (メモ) | 
| --- | --- | --- | 
| TINYINT,<br />TINYINT (size) | SMALLINT | MySQL: -128 ～ 127。最大桁数を括弧内に指定できます。<br /> Amazon Redshift: INT2。符号付き 2 バイト整数 | 
| TINYINT UNSIGNED、<br />TINYINT (size) UNSIGNED | SMALLINT | MySQL: 0 ～ 255 UNSIGNED。最大桁数を括弧内に指定できます。<br />Amazon Redshift: INT2。符号付き 2 バイト整数 | 
| SMALLINT,<br />SMALLINT(size) | SMALLINT | MySQL: -32768 ～ 32767 normal。最大桁数を括弧内に指定できます。<br />Amazon Redshift: INT2。符号付き 2 バイト整数 | 
| SMALLINT UNSIGNED、<br />SMALLINT(size) UNSIGNED、 | INTEGER | MySQL: 0 ～ 65535 UNSIGNED\*。最大桁数を括弧内に指定できます。<br />Amazon Redshift: INT4。符号付き 4 バイト整数 | 
| MEDIUMINT、<br />MEDIUMINT(size) | INTEGER | MySQL: 388608 ～ 8388607。最大桁数を括弧内に指定できます。<br />Amazon Redshift: INT4。符号付き 4 バイト整数 | 
| MEDIUMINT UNSIGNED、<br />MEDIUMINT(size)<br />UNSIGNED | INTEGER | MySQL: 0 ～ 16777215。最大桁数を括弧内に指定できます。<br />Amazon Redshift: INT4。符号付き 4 バイト整数 | 
| INT,<br />INT(size) | INTEGER | MySQL: 147483648 ～ 2147483647<br />Amazon Redshift: INT4。符号付き 4 バイト整数 | 
| INT UNSIGNED、<br />INT(size) UNSIGNED | BIGINT | MySQL: 0 ～ 4294967295<br />Amazon Redshift: INT8。符号付き 8 バイト整数 | 
| BIGINT<br />BIGINT(size) | BIGINT | Amazon Redshift: INT8。符号付き 8 バイト整数 | 
| BIGINT UNSIGNED<br />BIGINT(size) UNSIGNED | VARCHAR(20\*4) | MySQL: 0 ～ 18446744073709551615 <br />Amazon Redshift: 同等のネイティブ型がないため、char 配列を使用します。 | 
| FLOAT<br />FLOAT(size,d)<br />FLOAT(size,d) UNSIGNED | REAL | 最大桁数を size パラメータで指定できます。小数点以下の最大桁数は d パラメータで指定します。<br />Amazon Redshift: FLOAT4。 | 
| DOUBLE(size,d) | DOUBLE PRECISION | 最大桁数を size パラメータで指定できます。小数点以下の最大桁数は d パラメータで指定します。<br />Amazon Redshift: FLOAT8。 | 
| DECIMAL(size,d) | DECIMAL(size,d) | 固定小数点数を使用するための、文字列として格納される DOUBLE。最大桁数を size パラメータで指定できます。小数点以下の最大桁数は d パラメータで指定します。<br />Amazon Redshift: 同等のネイティブ型はありません。 | 
| CHAR(size) | VARCHAR(size\*4) | 固定長の文字列を格納します。これには、文字、数字、特殊文字を含めることができます。固定サイズは括弧内パラメータで指定します。255 文字まで格納できます。<br />右側にスペースが埋め込まれます。<br />Amazon Redshift: CHAR データ型ではマルチバイト文字がサポートされていないため、VARCHAR が使用されます。<br />1 文字あたりの最大バイト数は 4（[RFC3629](http://tools.ietf.org/html/rfc3629) を参照）で、文字テーブルは U\+10FFFF に制限されます。 | 
| VARCHAR(size) | VARCHAR(size\*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(max) | 最大長 65,535 文字の文字列を格納します。 | 
| MEDIUMTEXT | VARCHAR(max) | 0 ～ 16,777,215 文字 | 
| LONGTEXT | VARCHAR(max) | 0 ～ 4,294,967,295 文字 | 
| 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(max) | 0 ～ 65,535 バイト | 
| TINYBLOB | VARCHAR(255) | 0 ～ 255 バイト | 
| BLOB | VARCHAR(max) | 0 ～ 65,535 バイト | 
| MEDIUMBLOB | VARCHAR(max) | 0 ～ 16,777,215 バイト | 
| LONGBLOB | VARCHAR(max) | 0 ～ 4,294,967,295 バイト | 
| ENUM | VARCHAR(255\*2) | リテラル ENUM 文字列の長さではなく、テーブル定義に含まれる ENUM 値の数に制限があります。 | 
| SET | VARCHAR(255\*2) | ENUM と同じ。 | 
| 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 | 
| column 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 では、フィールドに表示される値に、列定義で指定された表示幅までゼロが埋め込まれます。値の桁数が表示幅を超えても、切り捨ては行われません。ZEROFILL の使用は、UNSIGNED を暗黙に示しています。 | 