

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon RDS 匯出至 Amazon S3 儲存貯體時的資料轉換
<a name="USER_ExportSnapshot.data-types"></a>

當您將資料庫快照匯出至 Amazon S3 儲存貯體時，Amazon RDS 會以 Parquet 格式轉換資料、匯出資料，以及存放資料。如需 Parquet 的詳細資訊，請參閱 [Apache Parquet](https://parquet.apache.org/docs/) 網站。

Parquet 會將所有資料以下列其中一種基本類型存放：
+ BOOLEAN
+ INT32
+ INT64
+ INT96
+ FLOAT
+ DOUBLE
+ BYTE\$1ARRAY – 長度可變的位元組陣列，也稱為二進位
+ FIXED\$1LEN\$1BYTE\$1ARRAY – 長度固定的位元組陣列，用於值具備固定大小時

Parquet 的資料類型相當少，可減少讀取和寫入格式的複雜性。Parquet 提供擴充基本類型的邏輯類型。「邏輯類型」**會實作為標註，並將資料存放在 `LogicalType` 中繼資料欄位中。邏輯類型標註會說明如何解譯基本類型。

當 `STRING` 邏輯類型標註 `BYTE_ARRAY` 類型時，會指出位元組陣列應解譯為 UTF-8 編碼的字元字串。在匯出任務完成後，Amazon RDS 會通知您是否發生任何字串轉換。匯出的基礎資料一律與來源資料相同。但是，由於 UTF-8 中的編碼存在差異，在 Athena 等工具中讀取時，有些字元的顯示方式可能會和來源中的顯示方式不同。

如需詳細資訊，請參閱 Parquet 文件中的 [Parquet Logical Type Definitions](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md)。

**Topics**
+ [MySQL 和 MariaDB 資料類型對 Parquet 的映射](#USER_ExportSnapshot.data-types.MySQL)
+ [PostgreSQL 資料類型對 Parquet 的映射](#USER_ExportSnapshot.data-types.PostgreSQL)

## MySQL 和 MariaDB 資料類型對 Parquet 的映射
<a name="USER_ExportSnapshot.data-types.MySQL"></a>

下表顯示轉換資料並匯出至 Amazon S3 時，MySQL 和 MariaDB 資料類型到 Parquet 資料類型的映射。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/USER_ExportSnapshot.data-types.html)

## PostgreSQL 資料類型對 Parquet 的映射
<a name="USER_ExportSnapshot.data-types.PostgreSQL"></a>

下表顯示轉換資料並匯出至 Amazon S3 時，PostgreSQL 資料類型到 Parquet 資料類型的映射。


| PostgreSQL 資料類型 | Parquet 基本類型 | 邏輯類型標註 | 映射備註 | 
| --- | --- | --- | --- | 
| 數值資料類型 | 
| BIGINT | INT64 |  |   | 
| BIGSERIAL | INT64 |  |   | 
| DECIMAL | BYTE\$1ARRAY | STRING | DECIMAL 類型會轉換成 BYTE\$1ARRAY 類型中的字串，並以 UTF8 編碼。此轉換是為了避免因非數字 (NaN) 而導致的資料精確度和資料值複雜性。 | 
| DOUBLE PRECISION | DOUBLE |  |   | 
| INTEGER | INT32 |  |   | 
| MONEY | BYTE\$1ARRAY | STRING |   | 
| REAL | FLOAT |  |   | 
| SERIAL | INT32 |  |   | 
| SMALLINT | INT32 | INT(16, true) |   | 
| SMALLSERIAL | INT32 | INT(16, true) |   | 
| 字串和相關資料類型 | 
| ARRAY | BYTE\$1ARRAY | STRING |  陣列會轉換成字串，並以 BINARY (UTF8) 編碼。 此轉換是為了避免因非數字 (NaN) 和時間資料值而導致的資料精確度複雜性。  | 
| BIT | BYTE\$1ARRAY | STRING |   | 
| BIT VARYING | BYTE\$1ARRAY | STRING |   | 
| BYTEA | BINARY |  |   | 
| CHAR | BYTE\$1ARRAY | STRING |   | 
| CHAR(N) | BYTE\$1ARRAY | STRING |   | 
| ENUM | BYTE\$1ARRAY | STRING |   | 
| NAME | BYTE\$1ARRAY | STRING |   | 
| TEXT | BYTE\$1ARRAY | STRING |   | 
| TEXT SEARCH | BYTE\$1ARRAY | STRING |   | 
| VARCHAR(N) | BYTE\$1ARRAY | STRING |   | 
| XML | BYTE\$1ARRAY | STRING |   | 
| 日期和時間資料類型 | 
| DATE | BYTE\$1ARRAY | STRING |   | 
| INTERVAL | BYTE\$1ARRAY | STRING |   | 
| TIME | BYTE\$1ARRAY | STRING |  | 
| TIME WITH TIME ZONE | BYTE\$1ARRAY | STRING |  | 
| TIMESTAMP | BYTE\$1ARRAY | STRING |  | 
| TIMESTAMP WITH TIME ZONE | BYTE\$1ARRAY | STRING |  | 
| 幾何資料類型 | 
| BOX | BYTE\$1ARRAY | STRING |   | 
| CIRCLE | BYTE\$1ARRAY | STRING |   | 
| LINE | BYTE\$1ARRAY | STRING |   | 
| LINESEGMENT | BYTE\$1ARRAY | STRING |   | 
| PATH | BYTE\$1ARRAY | STRING |   | 
| POINT | BYTE\$1ARRAY | STRING |   | 
| POLYGON | BYTE\$1ARRAY | STRING |   | 
| JSON 資料類型 | 
| JSON | BYTE\$1ARRAY | STRING |   | 
| JSONB | BYTE\$1ARRAY | STRING |   | 
| 其他資料類型 | 
| BOOLEAN | BOOLEAN |  |   | 
| CIDR | BYTE\$1ARRAY | STRING |  網路資料類型 | 
| COMPOSITE | BYTE\$1ARRAY | STRING |   | 
| DOMAIN | BYTE\$1ARRAY | STRING |   | 
| INET | BYTE\$1ARRAY | STRING |  網路資料類型 | 
| MACADDR | BYTE\$1ARRAY | STRING |   | 
| OBJECT IDENTIFIER | N/A |  |  | 
| PG\$1LSN | BYTE\$1ARRAY | STRING |   | 
| RANGE | BYTE\$1ARRAY | STRING |   | 
| UUID | BYTE\$1ARRAY | STRING |   | 