

# ソース RDS データベースへのデータの追加とクエリ
<a name="zero-etl.querying"></a>

Amazon RDS から Amazon Redshift にデータをレプリケートするゼロ ETL 統合の作成を終了するには、ターゲット送信先にデータベースを作成する必要があります。

Amazon Redshift と接続するため、Amazon Redshift クラスターまたはワークグループに接続し、統合識別子を参照してデータベースを作成します。これで、ソースの RDS データベースにデータを追加でき、Amazon Redshift または Amazon SageMaker で複製されることが確認できます。

**Topics**
+ [ターゲットデータベースの作成](#zero-etl.create-db)
+ [ソースデータベースへのデータの追加](#zero-etl.add-data-rds)
+ [Amazon Redshift での Amazon RDS データのクエリ](#zero-etl.query-data-redshift)
+ [RDS データベースと Amazon Redshift データベース間のデータタイプの相違点](#zero-etl.data-type-mapping)
+ [RDS for PostgreSQL の DDL オペレーション](#zero-etl.ddl-postgres)

## ターゲットデータベースの作成
<a name="zero-etl.create-db"></a>

Amazon Redshift へのデータの複製を開始する前に、統合を作成後、データベースをターゲットのデータウェアハウスに作成する必要があります。このデータベースには、統合識別子への参照が含まれている必要があります。Amazon Redshift コンソールまたはクエリエディタ v2 を使用して、データベースを作成することができます。

デスティネーションデータベースを作成する手順については、「[Amazon Redshift にデスティネーションデータベースを作成する](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db)」を参照してください。

## ソースデータベースへのデータの追加
<a name="zero-etl.add-data-rds"></a>

統合を設定した後で、データウェアハウスにレプリケートするデータを、ソースの RDS データベースに入力できます。

**注記**  
Amazon RDS のデータ型とターゲット分析ウェアハウスには違いがあります。データ型マッピングの表については、「[RDS データベースと Amazon Redshift データベース間のデータタイプの相違点](#zero-etl.data-type-mapping)」を参照してください。

まず、任意の MySQL クライアントを使用して、ソースデータベースに接続します。手順については、「[MySQL DB インスタンスへの接続](USER_ConnectToInstance.md)」を参照してください。

次に、テーブルを作成し、1 行のサンプルデータを挿入します。

**重要**  
テーブルにプライマリキーがあることを確認してください。そうしないと、ターゲットのデータウェアハウスに複製できません。

**RDS for MySQL**

次の例では、[MySQL Workbench ユーティリティ](https://dev.mysql.com/downloads/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');
```



**RDS for PostgreSQL**

次の例では、`[psql](https://www.postgresql.org/docs/current/app-psql.html)` PostgreSQL インタラクティブターミナルを使用しています。データベースに接続するときは、レプリケートするデータベース名を含めます。

```
psql -h {{mydatabase}}.{{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');
```

**RDS for Oracle**:

次の例では、SQL\*Plus を使用して RDS for Oracle データベースに接続します。

```
sqlplus '{{user_name}}@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={{dns_name}})(PORT={{port}}))(CONNECT_DATA=(SID={{database_name}})))'

SQL> 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));

SQL> INSERT INTO {{books_table}} VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');
```

## Amazon Redshift での Amazon RDS データのクエリ
<a name="zero-etl.query-data-redshift"></a>

RDS データベースにデータを追加すると、送信先データベースにレプリケートされ、クエリを実行できるようになります。

**複製されたデータをクエリするには**

1. Amazon Redshift コンソールに移動し、左側のナビゲーションペインから **[クエリエディタ v2]** を選択します。

1. クラスターまたはワークグループに接続し、ドロップダウンメニュー (この例では **destination\_database**) から送信先データベース (統合から作成したもの) を選択します。デスティネーションデータベースを作成する手順については、「[Amazon Redshift にデスティネーションデータベースを作成する](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db)」を参照してください。

1. SELECT ステートメントを使用してデータをクエリします。この例では、次のコマンドを実行して、ソースの RDS データベースで作成したテーブルからすべてのデータを選択します。

   ```
   SELECT * from {{my_db}}."{{books_table}}";
   ```  
![Amazon RDS データベースに追加されたサンプルデータを示すクエリエディタの結果。](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/zero-etl-redshift-editor.png)
   + `{{my_db}}`  は RDS データベーススキーマ名です。
   + `{{books_table}}`  は RDS テーブル名です。

コマンドラインクライアントを使用してデータをクエリすることもできます。例えば、次のようになります。

```
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](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html)」を参照してください。

## RDS データベースと Amazon Redshift データベース間のデータタイプの相違点
<a name="zero-etl.data-type-mapping"></a>

以下の表は、RDS for MySQL、RDS for PostgreSQL、RDS for Oracle のデータタイプおよび対応する送信先のデータタイプのマッピングを示しています。*Amazon RDS は現在、ゼロ ETL 統合ではこれらのデータ型のみをサポートしています。*

ソースデータベースのテーブルにサポートされていないデータ型が含まれている場合、そのテーブルは同期されず、送信先ターゲットで使用できなくなります。ソースからターゲットへのストリーミングは継続されますが、サポートされていないデータ型のテーブルは使用できません。テーブルを修正してターゲット送信先で使用できるようにするには、変更内容を手動で元に戻し、`[ALTER DATABASE...INTEGRATION REFRESH](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATABASE.html)` を実行して統合を更新する必要があります。

**注記**  
Amazon SageMaker Lakehouse とのゼロ ETL 統合を更新することはできません。代わりに、統合を削除して再度作成してみてください。

**Topics**
+ [RDS for MySQL](#zero-etl.data-type-mapping-mysql)
+ [RDS for PostgreSQL](#zero-etl.data-type-mapping-postgres)
+ [RDS for Oracle](#zero-etl.data-type-mapping-oracle)

### RDS for MySQL
<a name="zero-etl.data-type-mapping-mysql"></a>


| RDS for MySQL データ型 | ターゲットのデータ型  | 説明  | 制限事項 | 
| --- | --- | --- | --- | 
| 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 文字の可変長文字列値 | なし | 
| DATE | DATE | カレンダー日付 (年、月、日) | なし | 
| DATETIME | TIMESTAMP | 日付と時刻 (タイムゾーンなし) | なし | 
| TIMESTAMP(p) | TIMESTAMP | 日付と時刻 (タイムゾーンなし) | なし | 
| TIME | VARCHAR(18) | 最大 18 文字の可変長文字列値 | なし | 
| YEAR | VARCHAR(4) | 最大 4 文字の可変長文字列値 | なし | 
| JSON | SUPER | 値としての半構造化データまたは文書 | なし | 

### RDS for PostgreSQL
<a name="zero-etl.data-type-mapping-postgres"></a>

RDS for PostgreSQL のゼロ ETL 統合は、カスタムデータタイプ、または拡張機能で作成したデータタイプをサポートしていません。


| RDS for PostgreSQL データタイプ | Amazon Redshift データタイプ | 説明 | 制限事項 | 
| --- | --- | --- | --- | 
| array | SUPER | 値としての半構造化データまたは文書 | なし | 
| bigint | BIGINT | 符号付き 8 バイト整数 | なし | 
| bigserial | BIGINT | 符号付き 8 バイト整数 | なし | 
| bit varying(n) | VARBYTE(n) | 最大 16,777,216 バイトの可変長バイナリ値 | なし | 
| bit(n) | VARBYTE(n) | 最大 16,777,216 バイトの可変長バイナリ値 | なし | 
| BIT、BIT VARYING | VARBYTE(16777216) | 最大 16,777,216 バイトの可変長バイナリ値 | なし | 
| boolean | BOOLEAN | 論理ブール演算型 (true/false) | なし | 
| bytea | VARBYTE(16777216) | 最大 16,777,216 バイトの可変長バイナリ値 | なし | 
| char(n) | CHAR(n) | 最大 65,535 バイトの固定長文字列値 | なし | 
| char varying(n) | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| cid | BIGINT | 符号付き 8 バイト整数 | なし | 
| cidr | VARCHAR(19) | 最大 19 文字の可変長文字列値 | なし | 
| date | DATE | カレンダー日付 (年、月、日) | 294,276 A.D. より大きい値はサポートされません | 
| double precision | DOUBLE PRECISION | 倍精度浮動小数点数 | 非正規値は完全にはサポートされません | 
| gtsvector | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| inet | VARCHAR(19) | 最大 19 文字の可変長文字列値 | なし | 
| integer | INTEGER | 符号付き 4 バイト整数 | なし | 
| int2vector | SUPER | 値としての半構造化データまたはドキュメント。 | なし | 
| interval | INTERVAL | 期間 | year to month 修飾子または day to second 修飾子を指定する INTERVAL タイプのみがサポートされます。 | 
| json | SUPER | 値としての半構造化データまたは文書 | なし | 
| JSONB | SUPER | 値としての半構造化データまたは文書 | なし | 
| jsonpath | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| macaddr | VARCHAR(17) | 最大 17 文字の可変長文字列値 | なし | 
| macaddr8 | VARCHAR(23) | 最大 23 文字の可変長文字列値 | なし | 
| money | DECIMAL(20,3) | 通貨額 | なし | 
| 名前 | VARCHAR(64) | 最大 64 文字の可変長文字列値 | なし | 
| numeric(p,s) | DECIMAL(p,s) | ユーザー定義の固定精度値 |  +  `NaN` 値はサポートされていません <br />+  精度とスケールは明示的に定義し、38 (精度) と 37 (スケール) 以下にする必要があります。 <br />+  負のスケールはサポートされていません   | 
| oid | BIGINT | 符号付き 8 バイト整数 | なし | 
| oidvector | SUPER | 値としての半構造化データまたはドキュメント。 | なし | 
| pg\_brin\_bloom\_summary | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| pg\_dependencies | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| pg\_lsn | VARCHAR(17) | 最大 17 文字の可変長文字列値 | なし | 
| pg\_mcv\_list | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| pg\_ndistinct | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| pg\_node\_tree | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| pg\_snapshot | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| real | REAL | 単精度浮動小数点数 | 非正規値は完全にはサポートされません | 
| refcursor | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| smallint | SMALLINT | 符号付き 2 バイト整数 | なし | 
| smallserial | SMALLINT | 符号付き 2 バイト整数 | なし | 
| シリアル | INTEGER | 符号付き 4 バイト整数 | なし | 
| テキスト | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| tid | VARCHAR(23) | 最大 23 文字の可変長文字列値 | なし | 
| time [(p)] without time zone | VARCHAR(19) | 最大 19 文字の可変長文字列値 | Infinity および -Infinity 値はサポートされていません | 
| time [(p)] with time zone | VARCHAR(22) | 最大 22 文字の可変長文字列値 | Infinity および -Infinity 値はサポートされていません | 
| timestamp [(p)] without time zone | TIMESTAMP | 日付と時刻 (タイムゾーンなし) |  +  `Infinity` および `-Infinity` 値はサポートされていません <br />+  サポートされていない `9999-12-31` より大きい値 <br />+  B.C. 値はサポートされていません   | 
| timestamp [(p)] with time zone | TIMESTAMPTZ | 日付と時刻 (タイムゾーンあり) |  +  `Infinity` および `-Infinity` 値はサポートされていません <br />+  サポートされていない `9999-12-31` より大きい値 <br />+  B.C. 値はサポートされていません   | 
| tsquery | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| tsvector | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| txid\_snapshot | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 
| uuid | VARCHAR(36) | 可変長 36 文字の文字列 | なし | 
| xid | BIGINT | 符号付き 8 バイト整数 | なし | 
| xid8 | DECIMAL(20, 0) | 固定精度 10 進数 | なし | 
| xml | VARCHAR(65,535) | 最大 65,535 文字の可変長文字列値 | なし | 

### RDS for Oracle
<a name="zero-etl.data-type-mapping-oracle"></a>

**サポートされていないデータタイプ**

以下の RDS for Oracle データタイプは、Amazon Redshift ではサポートされていません。
+ `ANYDATA`
+ `BFILE`
+ `REF`
+ `ROWID`
+ `UROWID`
+ `VARRAY`
+ `SDO_GEOMETRY`
+ ユーザー定義のデータタイプ

**データタイプの相違点**

次の表は、RDS for Oracle がソースで Amazon Redshift がターゲットである場合に、ゼロ ETL 統合に影響するデータタイプの相違点を示しています。


| RDS for Oracle データタイプ | Amazon Redshift データタイプ | 
| --- | --- | 
| BINARY\_FLOAT | FLOAT4 | 
| BINARY\_DOUBLE | FLOAT8 | 
| BINARY | VARCHAR (長さ) | 
| FLOAT (P) | 精度が 24 以下の場合は FLOAT4。<br />精度が 24 を超える場合は FLOAT8。 | 
| NUMBER (P,S) | スケールが 0 以上、37 以下の場合は NUMERIC (p,s)。<br />スケールが 38 以上、127 以下の場合は VARCHAR (長さ)。<br />スケールが 0 の場合:+  精度が 2 以下の場合は INT2。 <br />+  精度が 2 より大きく、4 以下の場合は INT2。 <br />+  精度が 4 より大きく、9 以下の場合は INT4。 <br />+  精度が 9 より大きい場合は NUMERIC (p,s)。 <br />+  精度がスケール以上の場合は NUMERIC (p,s)。 <br />スケールが 0 未満の場合は INT8。 | 
| DATE | スケールが 0 以上、6 以下の場合は、Redshift ターゲット列のタイプに応じて、次のいずれかになる。+  TIMESTAMP (s) <br />+  TIMESTAMPTZ (s) — ソースタイムスタンプにゾーンオフセットが含まれている場合 (SQL Server や Oracle など)、insert または update 時に UTC に変換される。オフセットが含まれていない場合、時刻は既に UTC に変換済みとみなされる。 <br />スケールが 7 以上、9 以下の場合は VARCHAR (37)。 | 
| INTERVAL\_YEAR TO MONTH | 長さが 1～65,535 の場合は VARCHAR (バイト単位の長さ)。<br />長さが 65,536～2,147,483,647 の場合は VARCHAR (65535)。 | 
| INTERVAL\_DAY TO SECOND | 長さが 1～65,535 の場合は VARCHAR (バイト単位の長さ)。<br />長さが 65,536～2,147,483,647 の場合は VARCHAR (65535)。 | 
| TIMESTAMP | スケールが 0 以上、6 以下の場合は、Redshift ターゲット列のタイプに応じて、次のいずれかになる。+  TIMESTAMP (s) <br />+  TIMESTAMPTZ (s) — ソースタイムスタンプにゾーンオフセットが含まれている場合 (SQL Server や Oracle など)、insert または update 時に UTC に変換される。オフセットが含まれていない場合、時刻は既に UTC に変換済みとみなされる。 <br />スケールが 7 以上、9 以下の場合は VARCHAR (37)。 | 
| TIMESTAMP WITH TIME ZONE | 長さが 1～65,535 の場合は VARCHAR (バイト単位の長さ)。<br />長さが 65,536～2,147,483,647 の場合は VARCHAR (65535)。 | 
| タイムスタンプ現地時間帯あり | 長さが 1～65,535 の場合は VARCHAR (バイト単位の長さ)。<br />長さが 65,536～2,147,483,647 の場合は VARCHAR (65535)。 | 
| CHAR | 長さが 1～65,535 の場合は VARCHAR (バイト単位の長さ)。<br />長さが 65,536～2,147,483,647 の場合は VARCHAR (65535)。 | 
| VARCHAR2 | 長さが 4,000 バイトを超える場合は VARCHAR (最大 LOB サイズ)。最大 LOB サイズが 63 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。<br />長さが 4,000 バイト以下の場合は VARCHAR (バイト単位の長さ)。 | 
| NCHAR | 長さが 1～65,535 の場合は NVARCHAR (バイト単位の長さ)。<br />長さが 65,536～2,147,483,647 の場合は NVARCHAR (65535)。 | 
| NVARCHAR2 | 長さが 4,000 バイトを超える場合は NVARCHAR (最大 LOB サイズ)。最大 LOB サイズが 63 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。<br />長さが 4,000 バイト以下の場合は NVARCHAR (バイト単位の長さ)。 | 
| RAW | VARCHAR (長さ) | 
| REAL | FLOAT8 | 
| BLOB | VARCHAR (最大 LOB サイズ \*2) <br />最大 LOB サイズが 31 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。 | 
| CLOB | VARCHAR (最大 LOB サイズ) <br />最大 LOB サイズが 63 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。 | 
| NCLOB | NVARCHAR (最大 LOB サイズ) <br />最大 LOB サイズが 63 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。 | 
| LONG | VARCHAR (最大 LOB サイズ) <br />最大 LOB サイズが 63 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。 | 
| LONG RAW | VARCHAR (最大 LOB サイズ \*2) <br />最大 LOB サイズが 31 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。 | 
| XMLTYPE | VARCHAR (最大 LOB サイズ) <br />最大 LOB サイズが 63 KB を超えることはできません。Amazon Redshift は 64 KB より大きい VARCHAR をサポートしていません。 | 

## RDS for PostgreSQL の DDL オペレーション
<a name="zero-etl.ddl-postgres"></a>

Amazon Redshift は PostgreSQL から派生しているため、共通の PostgreSQL アーキテクチャに基づくいくつかの機能を RDS for PostgreSQL と共有しています。ゼロ ETL 統合は、これらの類似点を活用して、RDS for PostgreSQL から Amazon Redshift へのデータレプリケーションを合理化し、データベースを名前でマッピングして、共有のデータベース、スキーマ、テーブル構造を利用します。

RDS for PostgreSQL ゼロ ETL 統合を管理するときは、以下の点を考慮してください。
+ 分離はデータベースレベルで管理されます。
+ レプリケーションはデータベースレベルで行われます。
+ RDS for PostgreSQL データベースは Amazon Redshift データベースに名前でマッピングされるため、元の名前を変更すると、名前を変更した後の Redshift データベースにデータが流れます。

Amazon Redshift と RDS for PostgreSQL は類似していますが、重要な違いがあります。以下のセクションでは、一般的な DDL オペレーションに対する Amazon Redshift のシステムレスポンスについて概説します。

**Topics**
+ [データベースのオペレーション](#zero-etl.ddl-postgres-database)
+ [スキーマオペレーション](#zero-etl.ddl-postgres-schema)
+ [テーブルの操作](#zero-etl.ddl-postgres-table)

### データベースのオペレーション
<a name="zero-etl.ddl-postgres-database"></a>

次の表は、データベース DDL オペレーションのシステムレスポンスを示しています。


| DDL オペレーション | Redshift システムレスポンス | 
| --- | --- | 
| CREATE DATABASE | オペレーションなし | 
| DROP DATABASE | Amazon Redshift は、ターゲット Redshift データベース内のすべてのデータを削除します。 | 
| RENAME DATABASE | Amazon Redshift は、元のターゲットデータベース内のすべてのデータを削除し、新しいターゲットデータベース内のデータを再同期します。新しいデータベースが存在しない場合は、手動で作成する必要があります。手順については、「[Amazon Redshift でのデスティネーションデータベースの作成](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html#zero-etl-using.create-db)」を参照してください。 | 

### スキーマオペレーション
<a name="zero-etl.ddl-postgres-schema"></a>

次の表は、スキーマ DDL オペレーションのシステムレスポンスを示しています。


| DDL オペレーション | Redshift システムレスポンス | 
| --- | --- | 
| CREATE SCHEMA | オペレーションなし | 
| DROP SCHEMA | Amazon Redshift は元のスキーマを削除します。 | 
| RENAME SCHEMA | Amazon Redshift は元のスキーマを削除し、新しいスキーマ内のデータを再同期します。 | 

### テーブルの操作
<a name="zero-etl.ddl-postgres-table"></a>

次の表は、テーブル DDL オペレーションのシステムレスポンスを示しています。


| DDL オペレーション | Redshift システムレスポンス | 
| --- | --- | 
| CREATE TABLE | Amazon Redshift はテーブルを作成します。<br />プライマリキーなしでテーブルを作成したり、宣言的パーティショニングを実行したりするなど、一部のオペレーションではテーブルの作成が失敗します。詳細については、「[制限事項](zero-etl.md#zero-etl.reqs-lims)」および「[Amazon RDS ゼロ ETL 統合のトラブルシューティング](zero-etl.troubleshooting.md)」を参照してください。 | 
| DROP TABLE | Amazon Redshift はテーブルを削除します。 | 
| TRUNCATE TABLE | Amazon Redshift はテーブルを切り捨てます。 | 
| ALTER TABLE (RENAME...) | Amazon Redshift はテーブルまたは列の名前を変更します。 | 
| ALTER TABLE (SET SCHEMA) | Amazon Redshift は元のスキーマのテーブルを削除し、新しいスキーマのテーブルを再同期します。 | 
| ALTER TABLE (ADD PRIMARY KEY) | Amazon Redshift はプライマリキーを追加し、テーブルを再同期します。 | 
| ALTER TABLE (ADD COLUMN) | Amazon Redshift はテーブルに列を追加します。 | 
| ALTER TABLE (DROP COLUMN) | Amazon Redshift は、プライマリキー列でない列を削除します。それ以外の場合は、テーブルを再同期します。 | 
| ALTER TABLE (SET LOGGED/UNLOGGED) | テーブルをログ記録するように変更すると、Amazon Redshift はテーブルを再同期します。テーブルをログ記録しないように変更すると、Amazon Redshift はテーブルを削除します。 | 