

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

# 將來自 Amazon Aurora MySQL 資料庫叢集的資料儲存至 Amazon S3 儲存貯體中的文字檔案
<a name="AuroraMySQL.Integrating.SaveIntoS3"></a><a name="save_into_s3"></a><a name="select_into_outfile"></a>

您可以使用 `SELECT INTO OUTFILE S3` 陳述式從 Amazon Aurora MySQL 資料庫叢集查詢資料，然後將資料儲存至 Amazon S3 儲存貯體中存放的文字檔案。在 Aurora MySQL 中，檔案會先儲存在本機磁碟上，然後匯出至 S3。匯出完成後，系統會刪除本機檔案。

您可以使用 Amazon S3 受管金鑰 (SSE-S3) 或 AWS KMS key (SSE-KMS： AWS 受管金鑰 或客戶受管金鑰） 來加密 Amazon S3 儲存貯體。

`LOAD DATA FROM S3` 陳述式可以使用 `SELECT INTO OUTFILE S3` 陳述式所建立的檔案，以將資料載入 Aurora 資料庫叢集。如需詳細資訊，請參閱[從 Amazon S3 儲存貯體中的文字檔案將資料載入 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Integrating.LoadFromS3.md)。

**注意**  
Aurora Serverless v1 資料庫叢集不支援此功能。Aurora Serverless v2 資料庫叢集支援它。  
您也可以使用 AWS 管理主控台 AWS CLI、 或 Amazon RDS API，將資料庫叢集資料和資料庫叢集快照資料儲存至 Amazon S3。如需詳細資訊，請參閱[將資料庫叢集資料匯出至 Amazon S3](export-cluster-data.md)及[將資料庫叢集快照資料匯出至 Amazon S3](aurora-export-snapshot.md)。

**Contents**
+ [授權 Aurora MySQL 存取 Amazon S3](#AuroraMySQL.Integrating.SaveIntoS3.Authorize)
+ [授權在 Aurora MySQL 中儲存資料](#AuroraMySQL.Integrating.SaveIntoS3.Grant)
+ [指定 Amazon S3 儲存貯體的路徑](#AuroraMySQL.Integrating.SaveIntoS3.URI)
+ [建立資訊清單以列出資料檔案](#AuroraMySQL.Integrating.SaveIntoS3.Manifest)
+ [SELECT INTO OUTFILE S3](#AuroraMySQL.Integrating.SaveIntoS3.Statement)
  + [語法](#AuroraMySQL.Integrating.SaveIntoS3.Statement.Syntax)
  + [Parameters](#AuroraMySQL.Integrating.SaveIntoS3.Statement.Parameters)
  + [考量事項](#AuroraMySQL.Integrating.SaveIntoS3.Considerations)
  + [範例](#AuroraMySQL.Integrating.SaveIntoS3.Examples)

## 授權 Aurora MySQL 存取 Amazon S3
<a name="AuroraMySQL.Integrating.SaveIntoS3.Authorize"></a>

您必須先授權 Aurora MySQL 資料庫叢集存取 Amazon S3，才能將資料儲存至 Amazon S3 儲存貯體。

**授權 Aurora MySQL 存取 Amazon S3**

1. 建立 AWS Identity and Access Management (IAM) 政策，提供允許 Aurora MySQL 資料庫叢集存取 Amazon S3 的儲存貯體和物件許可。如需說明，請參閱[建立 IAM 政策來存取 Amazon S3 資源](AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.md)。
**注意**  
在 Aurora MySQL 3.05 版及更高版本中，您可以使用 AWS KMS 客戶受管金鑰來加密物件。若要這麼做，請在 IAM 政策中包含 `kms:GenerateDataKey` 許可。如需詳細資訊，請參閱[建立 IAM 政策以存取 AWS KMS資源](AuroraMySQL.Integrating.Authorizing.IAM.KMSCreatePolicy.md)。  
您不需要此許可，即可使用 AWS 受管金鑰 或 Amazon S3 受管金鑰 (SSE-S3) 加密物件。

1. 建立 IAM 角色，並將您於[建立 IAM 政策來存取 Amazon S3 資源](AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.md)中建立的 IAM 政策連接至新的 IAM 角色。如需說明，請參閱「[建立 IAM 角色以允許 Amazon Aurora 存取 AWS 服務](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md)」。

1. 對於 Aurora MySQL 第 2 版，將 `aurora_select_into_s3_role` 或 `aws_default_s3_role` 資料庫叢集參數設定為新 IAM 角色的 Amazon Resource Name (ARN)。如果 `aurora_select_into_s3_role` 中未指定 IAM 角色，Aurora 會使用 `aws_default_s3_role` 中指定的 IAM 角色。

   對於 Aurora MySQL 第 3 版，請使用 `aws_default_s3_role`。

   如果叢集屬於 Aurora 全球資料庫，請為全球資料庫中的每個 Aurora 叢集設定此參數。

   如需資料庫叢集參數的詳細資訊，請參閱 [Amazon Aurora 資料庫叢集和資料庫執行個體參數](USER_WorkingWithDBClusterParamGroups.md#Aurora.Managing.ParameterGroups)。

1. 若要允許 Aurora MySQL 資料庫叢集的資料庫使用者存取 Amazon S3，請將您在[建立 IAM 角色以允許 Amazon Aurora 存取 AWS 服務](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md)中建立的角色與資料庫叢集建立關聯。

   對於 Aurora 全球資料庫，請將此角色與全球資料庫中的每個 Aurora 叢集建立關聯。

   如需將 IAM 角色與資料庫叢集建立關聯的相關資訊，請參閱[將 IAM 角色與 Amazon Aurora MySQL 資料庫叢集建立關聯](AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.md)。

1. 設定 Aurora MySQL 資料庫叢集來允許對外連接至 Amazon S3。如需說明，請參閱「[啟用從 Amazon Aurora 到其他服務的網路通訊 AWS](AuroraMySQL.Integrating.Authorizing.Network.md)」。

    對於 Aurora 全球資料庫，請對全球資料庫中的每個 Aurora 叢集啟用傳出連線。

## 授權在 Aurora MySQL 中儲存資料
<a name="AuroraMySQL.Integrating.SaveIntoS3.Grant"></a>

發出 `SELECT INTO OUTFILE S3` 陳述式的資料庫使用者必須具備特定的角色或權限。在 Aurora MySQL 第 3 版中，您授予 `AWS_SELECT_S3_ACCESS` 角色。在 Aurora MySQL 第 2 版中，您授予 `SELECT INTO S3` 權限。根據預設，會將適當的角色或權限授予資料庫叢集的管理使用者。您可以使用下列其中一個陳述式，將此權限授予另一個使用者。

 請針對 Aurora MySQL 第 3 版使用下列陳述式：

```
GRANT AWS_SELECT_S3_ACCESS TO 'user'@'domain-or-ip-address'
```

**提示**  
在 Aurora MySQL 第 3 版中使用角色技術時，您也可以使用 `SET ROLE role_name` 或 `SET ROLE ALL` 陳述式啟用角色。如果您不熟悉 MySQL 8.0 角色系統，您可以在[角色型權限模型](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model)進一步了解。如需詳細資訊，請參閱《MySQL 參考手冊》**中的[使用角色](https://dev.mysql.com/doc/refman/8.0/en/roles.html)。  
此僅適用於目前的作用中工作階段。重新連接時，您必須再次執行 `SET ROLE` 陳述式以授予權限。如需詳細資訊，請參閱 *MySQL Reference Manual* (MySQL 參考手冊) 中的 [SET ROLE 陳述式](https://dev.mysql.com/doc/refman/8.0/en/set-role.html)。  
您可以使用 `activate_all_roles_on_login` 資料庫叢集參數，在使用者連線至資料庫執行個體時自動啟動所有角色。設定此參數後，您通常不需要明確呼叫 `SET ROLE` 陳述式，即可啟用角色。如需詳細資訊，請參閱 *MySQL Reference Manual* (MySQL 參考手冊) 中的 [activate\$1all\$1roles\$1on\$1login](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_activate_all_roles_on_login)。  
不過，當不同使用者呼叫預存程序時，您必須在預存程序開始時明確呼叫 `SET ROLE ALL` 以啟用角色。

請針對 Aurora MySQL 第 2 版使用下列陳述式：

```
GRANT SELECT INTO S3 ON *.* TO 'user'@'domain-or-ip-address'
```

`AWS_SELECT_S3_ACCESS` 角色和 `SELECT INTO S3` 權限是 Amazon Aurora MySQL 特定的，而且不適用於 MySQL 資料庫或 RDS for MySQL 資料庫執行個體。如果您在 Aurora MySQL 資料庫叢集 (複寫來源) 和 MySQL 資料庫 (複寫用戶端) 之間設定複寫，則角色或權限的 `GRANT` 陳述式會導致複寫停止並產生錯誤。您可以放心略過此錯誤並繼續複寫。若要在 RDS for MySQL 資料庫執行個體上略過此錯誤，請使用 [ mysql\$1rds\$1skip\$1repl\$1error](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_skip_repl_error.html) 程序。若要略過外部 MySQL 資料庫上的錯誤，請使用 [slave\$1skip\$1errors](https://dev.mysql.com/doc/refman/5.7/en/replication-options-replica.html#sysvar_slave_skip_errors) 系統變數 (Aurora MySQL 第 2 版) 或 [replica\$1skip\$1errors](https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_replica_skip_errors) 系統變數 (Aurora MySQL 第 3 版)。

## 指定 Amazon S3 儲存貯體的路徑
<a name="AuroraMySQL.Integrating.SaveIntoS3.URI"></a>

指定路徑將資料和資訊清單存放在 Amazon S3 儲存貯體的語法，類似於 `LOAD DATA FROM S3 PREFIX` 陳述式中使用的語法，如下所示。

```
s3-region://bucket-name/file-prefix
```

路徑包含以下值：
+ `region` （選用） – 包含要儲存資料之 Amazon S3 儲存貯體 AWS 的區域。此值是選用的。如果未指定 `region` 值，Aurora 會將檔案儲存至資料庫叢集所在同一個區域中的 Amazon S3。
+ `bucket-name` – 供儲存資料的 Amazon S3 儲存貯體的名稱。支援表示虛擬資料夾路徑的物件字首。
+ `file-prefix` – Amazon S3 物件字首，指出要儲存在 Amazon S3 中的檔案。

`SELECT INTO OUTFILE S3` 陳述式建立的資料檔案使用下列路徑，其中 *00000* 代表從零開始的 5 位數整數。

```
s3-region://bucket-name/file-prefix.part_00000
```

例如，假設 `SELECT INTO OUTFILE S3` 陳述式指定 `s3-us-west-2://bucket/prefix` 做為路徑來存放資料檔案，並建立三個資料檔案。指定的 Amazon S3 儲存貯體包含下列資料檔案。
+ s3-us-west-2://bucket/prefix.part\$100000
+ s3-us-west-2://bucket/prefix.part\$100001
+ s3-us-west-2://bucket/prefix.part\$100002

## 建立資訊清單以列出資料檔案
<a name="AuroraMySQL.Integrating.SaveIntoS3.Manifest"></a>

您可以使用 `SELECT INTO OUTFILE S3` 陳述式搭配 `MANIFEST ON` 選項，以建立 JSON 格式的資訊清單檔案，其中列出陳述式要建立的文字檔案。`LOAD DATA FROM S3` 陳述式可以使用資訊清單檔案，將資料檔案載入回 Aurora MySQL 資料庫叢集。如需使用資訊清單檔案從 Amazon S3 將資料檔案載入 Aurora MySQL 資料庫叢集的詳細資訊，請參閱[使用資訊清單指定要載入的資料檔案](AuroraMySQL.Integrating.LoadFromS3.md#AuroraMySQL.Integrating.LoadFromS3.Manifest)。

`SELECT INTO OUTFILE S3` 陳述式所建立的資訊清單中包含的資料檔案，依陳述式建立它們的順序列出。例如，假設 `SELECT INTO OUTFILE S3` 陳述式指定 `s3-us-west-2://bucket/prefix` 做為路徑來存放資料檔案，並建立三個資料檔案和一個資訊清單檔案。指定的 Amazon S3 儲存貯體包含名為 `s3-us-west-2://bucket/prefix.manifest` 的資訊清單檔案，其中包含下列資訊。

```
{
  "entries": [
    {
      "url":"s3-us-west-2://bucket/prefix.part_00000"
    },
    {
      "url":"s3-us-west-2://bucket/prefix.part_00001"
    },
    {
      "url":"s3-us-west-2://bucket/prefix.part_00002"
    }
  ]
}
```

## SELECT INTO OUTFILE S3
<a name="AuroraMySQL.Integrating.SaveIntoS3.Statement"></a>

您可以使用 `SELECT INTO OUTFILE S3` 陳述式從資料庫叢集查詢資料，然後將資料直接儲存至 Amazon S3 儲存貯體中存放的分隔文字檔案。

不支援壓縮檔案。從 Aurora MySQL 2.09.0 版開始支援加密的檔案。

### 語法
<a name="AuroraMySQL.Integrating.SaveIntoS3.Statement.Syntax"></a>

```
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
        [PARTITION partition_list]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
        [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
         [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
INTO OUTFILE S3 's3_uri'
[CHARACTER SET charset_name]
    [export_options]
    [MANIFEST {ON | OFF}]
    [OVERWRITE {ON | OFF}]
    [ENCRYPTION {ON | OFF | SSE_S3 | SSE_KMS ['cmk_id']}]

export_options:
    [FORMAT {CSV|TEXT} [HEADER]]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
]
```

### Parameters
<a name="AuroraMySQL.Integrating.SaveIntoS3.Statement.Parameters"></a>

`SELECT INTO OUTFILE S3` 陳述式會使用下列必要和選用參數，這些參數專供 Aurora 使用。

**s3-uri**  
指定要使用之 Amazon S3 字首的 URI。使用 [指定 Amazon S3 儲存貯體的路徑](#AuroraMySQL.Integrating.SaveIntoS3.URI) 中描述的語法。

**FORMAT \$1CSV\$1TEXT\$1 [HEADER]**  
選擇性地以 CSV 格式儲存資料。  
`TEXT` 選項為預設值，並會產生現有的 MySQL 匯出格式。  
`CSV` 選項會產生逗號分隔的資料值。CSV 格式會遵循 [RFC-4180](https://tools.ietf.org/html/rfc4180) 中的規格。如果您指定選用的關鍵字 `HEADER`，則輸出檔包含一個標題列。標題列的標籤對應於 `SELECT` 陳述式中的欄名稱。您可以使用 CSV 檔案來訓練資料模型，以便與 AWS ML 服務搭配使用。如需搭配 AWS ML 服務使用匯出 Aurora 資料的詳細資訊，請參閱 [將資料匯出至 Amazon S3 進行 SageMaker AI 模型訓練 (進階)](mysql-ml.md#exporting-data-to-s3-for-model-training)。

**MANIFEST \$1ON \$1 OFF\$1**  
指出是否在 Amazon S3 中建立資訊清單檔案。資訊清單檔案是 JavaScrip 物件標記法 (JSON) 檔案，可供 `LOAD DATA FROM S3 MANIFEST` 陳述式用來將資料載入 Aurora 資料庫叢集。如需有關 `LOAD DATA FROM S3 MANIFEST` 的詳細資訊，請參閱 [從 Amazon S3 儲存貯體中的文字檔案將資料載入 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Integrating.LoadFromS3.md)。  
如果在查詢中指定 `MANIFEST ON`，則在建立和上傳所有資料檔案之後，就會在 Amazon S3 中建立資訊清單檔案。資訊清單檔案是使用下列路徑來建立：  

```
s3-region://bucket-name/file-prefix.manifest
```
如需資訊清單檔案之內容格式的詳細資訊，請參閱[建立資訊清單以列出資料檔案](#AuroraMySQL.Integrating.SaveIntoS3.Manifest)。

**OVERWRITE \$1ON \$1 OFF\$1**  
指出是否覆寫所指定 Amazon S3 儲存貯體中的現有檔案。如果指定 `OVERWRITE ON`，當現有檔案與 `s3-uri` 所指定之 URI 中的檔案字首相符時，就會覆寫檔案。否則會發生錯誤。

**ENCRYPTION \$1ON \$1 OFF \$1 SSE\$1S3 \$1 SSE\$1KMS ['*cmk\$1id*']\$1**  
指出是否搭配 Amazon S3 受管金鑰 (SSE-S3) 或 AWS KMS keys (SSE-KMS，包括 AWS 受管金鑰 和 客戶受管金鑰） 使用伺服器端加密。`SSE_S3` 和 `SSE_KMS` 設定適用於 Aurora MySQL 3.05 版及更新版本。  
您也可以使用 `aurora_select_into_s3_encryption_default` 工作階段變數，而不是如下列範例所示的 `ENCRYPTION` 子句。使用 SQL 子句或工作階段變數，但不同時使用兩者。  

```
set session set session aurora_select_into_s3_encryption_default={ON | OFF | SSE_S3 | SSE_KMS};
```
`SSE_S3` 和 `SSE_KMS` 設定適用於 Aurora MySQL 3.05 版及更新版本。  
當您將 `aurora_select_into_s3_encryption_default` 設定為下列值時：  
+ `OFF` – 會遵循 S3 儲存貯體的預設加密政策。`aurora_select_into_s3_encryption_default` 的預設值為 `OFF`。
+ `ON` 或 `SSE_S3` - S3 物件會使用 Amazon S3 受管金鑰 (SSE-S3) 進行加密。
+ `SSE_KMS` – S3 物件使用 加密 AWS KMS key。

  在這種情況下，您還須包括工作階段變數 `aurora_s3_default_cmk_id`，例如：

  ```
  set session aurora_select_into_s3_encryption_default={SSE_KMS};
  set session aurora_s3_default_cmk_id={NULL | 'cmk_id'};
  ```
  + 當 `aurora_s3_default_cmk_id` 是 `NULL`，S3 物件會使用 AWS 受管金鑰進行加密。
  + 當 `aurora_s3_default_cmk_id` 是非空字串 `cmk_id`，S3 物件會使用客戶受管金鑰進行加密。

    `cmk_id` 的值不可以是空字串。
當您使用 `SELECT INTO OUTFILE S3` 命令時，Aurora 會按下列方式確定加密：  
+ 如果 SQL 命令中存在 `ENCRYPTION` 子句，則 Aurora 僅依賴 `ENCRYPTION` 的值，且不會使用工作階段變數。
+ 如果 `ENCRYPTION` 子句不存在，Aurora 會依賴工作階段變數的值。
如需詳細資訊，請參閱《[Amazon Simple Storage Service 使用者指南》中的使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) 和[使用伺服器端加密搭配AWS KMS 金鑰 (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。 **

您可以在 MySQL 文件的 [SELECT 陳述式](https://dev.mysql.com/doc/refman/8.0/en/select.html)和 [LOAD DATA 陳述式](https://dev.mysql.com/doc/refman/8.0/en/load-data.html)中找到其他參數的詳細資訊。

### 考量事項
<a name="AuroraMySQL.Integrating.SaveIntoS3.Considerations"></a>

寫入 Amazon S3 儲存貯體的檔案數目，取決於 `SELECT INTO OUTFILE S3` 陳述式所選取的資料量和 Aurora MySQL 的檔案大小臨界值。預設的檔案大小臨界值為 6 GB。如果陳述式所選取的資料小於檔案大小臨界值，則只會建立單一檔案，否則會建立多個檔案。關於此陳述式所建立的檔案，其他考量包括：
+ Aurora MySQL 保證資料檔案中的列分割不會跨越檔案界限。若為多個檔案，每個資料檔案 (最後一個檔案除外) 的大小通常接近檔案大小臨界值。不過，偶爾低於檔案大小臨界值會導致一列分割在兩個資料檔案中。在此情況下，Aurora MySQL 會建立資料檔案來保持列的完整，但可能大於檔案大小臨界值。
+ 因為 Aurora MySQL 中的每個 `SELECT` 陳述式都以不可分割的交易來執行，如果 `SELECT INTO OUTFILE S3` 陳述式選取很大的資料集，則執行時可能需要花一些時間。如果陳述式由於任何原因而失敗，您可能需要重新開始發出陳述式。不過，如果陳述式失敗，則已上傳至 Amazon S3 的檔案仍然留在指定的 Amazon S3 儲存貯體中。您可以使用另一個陳述式來上傳剩餘的資料，而不必重新開始。
+ 如果要選取的資料量很大 (超過 25 GB)，建議您使用多個 `SELECT INTO OUTFILE S3` 陳述式將資料儲存至 Amazon S3。每個陳述式應該選取不同的資料部分來儲存，也應該在 `file_prefix` 參數中指定不同的 `s3-uri`，以便於儲存資料檔案時使用。使用多個陳述式來分割要選取的資料，可以更輕鬆地從某個陳述式中的錯誤中復原。如果某個陳述式發生錯誤，則只需要重新選取部分資料並上傳至 Amazon S3。使用多個陳述式也有助於避免單一長時間執行的交易，可提升效能。
+ 如果多個 `SELECT INTO OUTFILE S3` 陳述式平行執行來選取資料給 Amazon S3，而且在 `file_prefix` 參數中使用相同的 `s3-uri`，則無法確定行為。
+ Aurora MySQL 不會將中繼資料上傳至 Amazon S3，例如資料表結構描述或檔案中繼資料。
+ 在某些情況下，您可能需要重新執行 `SELECT INTO OUTFILE S3` 查詢，例如從失敗中復原。在這些情況下，您必須從 Amazon S3 儲存貯體中移除具有相同檔案字首 (在 `s3-uri` 中指定) 的任何現有資料檔案，或在 `OVERWRITE ON` 查詢中包含 `SELECT INTO OUTFILE S3`。

`SELECT INTO OUTFILE S3` 陳述式會在成功或失敗時傳回一般 MySQL 錯誤號碼和回應。如果您無法存取 MySQL 錯誤號碼和回應，最簡單的方法是在陳述式中指定 `MANIFEST ON`，即可判斷何時完成。資訊清單檔案是陳述式寫入的最後一個檔案。換言之，如果您有資訊清單檔案，就表示陳述式已完成。

目前，無法直接監控 `SELECT INTO OUTFILE S3` 陳述式在執行時的進度。不過，假設您使用此陳述式從 Aurora MySQL 將大量資料寫入 Amazon S3，且知道陳述式所選取的資料大小。在此情況下，您可以監控 Amazon S3 中建立資料檔案的情形，以估計進度。

在作法上，您知道陳述式選取的資料大約每 6 GB，就會在指定的 Amazon S3 儲存貯體中建立一個資料檔案。將選取的資料大小除以 6 GB，即可估計要建立的資料檔案數目。然後，您可以監控陳述式執行時上傳至 Amazon S3 的檔案數目，以估計陳述式的進度。

### 範例
<a name="AuroraMySQL.Integrating.SaveIntoS3.Examples"></a>

下列陳述式選取 `employees` 資料表中的所有資料，並將資料儲存至不是位於 Aurora MySQL 資料庫叢集所在區域中的 Amazon S3 儲存貯體。在此陳述式所建立的資料檔案中，每個欄位的結尾是逗號 (`,`) 字元，而每一列的結尾是換行 (`\n`) 字元。如果符合 `sample_employee_data` 檔案字首的檔案存在於指定的 Amazon S3 儲存貯體中，此陳述式會傳回錯誤。

```
SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n';
```

下列陳述式選取 `employees` 資料表中的所有資料，並將資料儲存至 Aurora MySQL 資料庫叢集所在同一個區域中的 Amazon S3 儲存貯體。在此陳述式所建立的資料檔案中，每個欄位的結尾是逗號 (`,`) 字元，而每一列的結尾是換行 (`\n`) 字元，此外也建立一個資訊清單檔案。如果符合 `sample_employee_data` 檔案字首的檔案存在於指定的 Amazon S3 儲存貯體中，此陳述式會傳回錯誤。

```
SELECT * FROM employees INTO OUTFILE S3 's3://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    MANIFEST ON;
```

下列陳述式選取 `employees` 資料表中的所有資料，並將資料儲存至不是位於 Aurora 資料庫叢集所在區域中的 Amazon S3 儲存貯體。在此陳述式所建立的資料檔案中，每個欄位的結尾是逗號 (`,`) 字元，而每一列的結尾是換行 (`\n`) 字元。此陳述式會覆寫指定的 Amazon S3 儲存貯體中任何符合 `sample_employee_data` 檔案字首的現有檔案。

```
SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    OVERWRITE ON;
```

下列陳述式選取 `employees` 資料表中的所有資料，並將資料儲存至 Aurora MySQL 資料庫叢集所在同一個區域中的 Amazon S3 儲存貯體。在此陳述式所建立的資料檔案中，每個欄位的結尾是逗號 (`,`) 字元，而每一列的結尾是換行 (`\n`) 字元，此外也建立一個資訊清單檔案。此陳述式會覆寫指定的 Amazon S3 儲存貯體中任何符合 `sample_employee_data` 檔案字首的現有檔案。

```
SELECT * FROM employees INTO OUTFILE S3 's3://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    MANIFEST ON
    OVERWRITE ON;
```