

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

# 指定查詢結果位置
<a name="query-results-specify-location"></a>

Athena 使用的查詢結果位置取決於工作群組設定與*用戶端設定*的組合。用戶端設定是以您執行查詢的方式為基礎。
+  如果您使用 Athena 主控台執行查詢，在導覽列中 **Settings** (設定) 下輸入的 **Query result location** (查詢結果位置) 會決定用戶端設定。
+ 如果您使用 Athena API 執行查詢，[StartQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html) 動作的 `OutputLocation` 參數會決定用戶端設定。
+ 如果您使用 ODBC 或 JDBC 驅動程式執行查詢，連線 URL 中指定的 `S3OutputLocation` 屬性會決定用戶端設定。

**重要**  
當您使用 API 或使用 ODBC 或 JDBC 驅動程式執行查詢時，主控台設定並不適用。

每個工作群組組態都有可以啟用的 [Override client-side settings (覆寫用戶端設定)](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html) 選項。啟用此選項時，若與該工作群組相關聯的 IAM 委託人執行查詢，工作群組設定會優先於適用的用戶端設定。

## 關於先前建立的預設位置
<a name="query-results-specify-location-previous-defaults"></a>

先前，如果您在 Athena 中執行查詢而未指定 **Query result location** (查詢結果位置) 的值，且查詢結果位置設定未被工作群組覆寫，則 Athena 會為您建立預設位置。預設位置為 `aws-athena-query-results-MyAcctID-MyRegion`，其中 *MyAcctID* 為執行查詢之 IAM 委託人的 Amazon Web Services 帳戶 ID，*MyRegion* 是查詢執行所在的區域 (例如：`us-west-1`)。

現在，您必須指定查詢結果位置，或使用可覆寫查詢結果位置設定的工作群組，才能在帳戶之前並未使用過 Athena 的區域中執行 Athena 查詢。雖然 Athena 不再為您建立預設查詢結果位置，但先前建立的預設 `aws-athena-query-results-MyAcctID-MyRegion` 位置仍然有效，您可以繼續使用。

**Topics**
+ [關於先前建立的預設位置](#query-results-specify-location-previous-defaults)
+ [使用 Athena 主控台指定查詢結果位置](query-results-specify-location-console.md)
+ [使用工作群組指定查詢結果位置](query-results-specify-location-workgroup.md)

# 使用 Athena 主控台指定查詢結果位置
<a name="query-results-specify-location-console"></a>

您必須指定 Amazon S3 中的查詢結果儲存貯體位置，然後才能執行查詢，否則您必須使用已指定儲存貯體，且其組態可覆寫用戶端設定的工作群組。

**若要使用 Athena 主控台指定用戶端設定查詢結果位置**

1. [切換](switching-workgroups.md)至您要為其指定查詢結果位置的工作群組。預設工作群組的名稱為 **primary** (主要)。

1. 從導覽列中，選擇 **Settings** (設定)。

1. 請在導覽列中選擇 **Manage** (管理)。

1. 對於 **Manage settings** (管理設定)，請執行下列其中一項動作：
   + 在 **Location of query result** (查詢結果的位置) 方塊中，輸入您在 Amazon S3 中為查詢結果建立的儲存貯體路徑。在路徑中加上 `s3://` 作為字首。
   + 選擇 **Browse S3** (瀏覽 S3)，選擇您在目前區域建立的 Amazon S3 儲存貯體，然後選擇 **Choose** (選擇)。
**注意**  
如果您使用為工作群組中的所有使用者指定查詢結果位置的工作群組，則變更查詢結果位置的選項將無法使用。

1. (選用) 選擇 **View lifecycle configuration** (檢視生命週期組態)，以檢視和設定查詢結果儲存貯體上的 [Amazon S3 生命週期規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)。您建立的 Amazon S3 生命週期規則可以是到期規則或轉換規則。到期規則會在一段時間之後自動刪除查詢結果。轉換規則會將其移至另一個 Amazon S3 儲存層。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》中的[設定儲存貯體的生命週期組態](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html)。

1. （選用） 對於**預期儲存貯體擁有者**，輸入 AWS 帳戶 您預期成為輸出位置儲存貯體擁有者的 ID。這是一項附加的安全措施。如果儲存貯體擁有者的帳戶 ID 與您在此處指定的 ID 不相符，則嘗試輸出到儲存貯體的動作會失敗。如需詳細資訊，請參閱 *Amazon S3 使用者指南*中的[使用儲存貯體擁有者條件驗證儲存貯體擁有權](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-owner-condition.html)。
**注意**  
預期的儲存貯體擁有者設定僅適用於您為 Athena 查詢結果指定的 Amazon S3 輸出位置。它不適用於其他 Amazon S3 位置，例如外部 Amazon S3 儲存貯體、`CTAS` 和 `INSERT INTO` 目的地資料表位置、`UNLOAD` 陳述式輸出位置等資料來源位置，也不適用於溢出聯合查詢儲存貯體的操作，或針對另一個帳戶中的資料表執行的 `SELECT` 查詢。

1. (選用) 如果要將存放在 Simple Storage Service (Amazon S3) 中的查詢結果加密，選擇 **Encrypt query results** (將查詢結果加密)。如需在 Athena 中加密的詳細資訊，請參閱 [靜態加密](encryption.md)。

1. (選用) 對於查詢結果儲存貯體，選擇 **Assign bucket owner full control over query results** (指派儲存貯體擁有者對查詢結果的完整控制)，以便在 [ACL 已啟用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)時，授予儲存貯體擁有者對查詢結果的完整存取。例如，如果您的查詢結果位置係由另一個帳戶所擁有，則可以授予另一個帳戶對查詢結果的所有權和完整控制。如需詳細資訊，請參閱《*Simple Storage Service (Amazon S3) 使用者指南*》中的[控制物件的所有權並停用儲存貯體的 ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)。

1. 選擇**儲存**。

# 使用工作群組指定查詢結果位置
<a name="query-results-specify-location-workgroup"></a>

您可以使用 AWS 管理主控台、 AWS CLI或 Athena API，在工作群組組態中指定查詢結果位置。

使用 時 AWS CLI，當您執行 [https://docs.aws.amazon.com/cli/latest/reference/athena/create-work-group.html](https://docs.aws.amazon.com/cli/latest/reference/athena/create-work-group.html)或 [https://docs.aws.amazon.com/cli/latest/reference/athena/update-work-group.html](https://docs.aws.amazon.com/cli/latest/reference/athena/update-work-group.html)命令時，請使用 `--configuration`選項的 `OutputLocation` 參數指定查詢結果位置。

**若要使用 Athena 主控台指定工作群組的查詢結果位置**

1. 如果未顯示主控台的導覽窗格，請選擇左側的展開選單。  
![\[選擇展開選單。\]](http://docs.aws.amazon.com/zh_tw/athena/latest/ug/images/nav-pane-expansion.png)

1. 在導覽窗格中，選擇 **Workgroups** (工作群組)。

1. 在工作群組清單中，選擇您要編輯的工作群組之連結。

1. 選擇**編輯**。

1. 對於 **Query result location and encryption** (查詢結果位置和加密)，執行下列其中一項：
   + 在 **Location of query result** (查詢結果的位置) 文字方塊中，輸入您要在 Amazon S3 中存放查詢結果的儲存貯體路徑。在路徑中加上 `s3://` 作為字首。
   + 選擇 **Browse S3** (瀏覽 S3)，選擇您在目前區域中想要使用的 Amazon S3 儲存貯體，然後選擇 **Choose** (選擇)。

1. （選用） 對於**預期儲存貯體擁有者**，輸入 AWS 帳戶 您預期成為輸出位置儲存貯體擁有者的 ID。這是一項附加的安全措施。如果儲存貯體擁有者的帳戶 ID 與您在此處指定的 ID 不相符，則嘗試輸出到儲存貯體的動作會失敗。如需詳細資訊，請參閱 *Amazon S3 使用者指南*中的[使用儲存貯體擁有者條件驗證儲存貯體擁有權](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-owner-condition.html)。
**注意**  
預期的儲存貯體擁有者設定僅適用於您為 Athena 查詢結果指定的 Amazon S3 輸出位置。它不適用於其他 Amazon S3 位置，例如外部 Amazon S3 儲存貯體、`CTAS` 和 `INSERT INTO` 目的地資料表位置、`UNLOAD` 陳述式輸出位置等資料來源位置，也不適用於溢出聯合查詢儲存貯體的操作，或針對另一個帳戶中的資料表執行的 `SELECT` 查詢。

1. (選用) 如果要將存放在 Simple Storage Service (Amazon S3) 中的查詢結果加密，選擇 **Encrypt query results** (將查詢結果加密)。如需在 Athena 中加密的詳細資訊，請參閱 [靜態加密](encryption.md)。

1. (選用) 對於查詢結果儲存貯體，選擇 **Assign bucket owner full control over query results** (指派儲存貯體擁有者對查詢結果的完整控制)，以便在 [ACL 已啟用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)時，授予儲存貯體擁有者對查詢結果的完整存取。例如，如果您的查詢結果位置係由另一個帳戶所擁有，則可以授予另一個帳戶對查詢結果的所有權和完整控制。

   如果儲存貯體的 S3 物件所有權設定為 **Bucket owner preferred** (首選的儲存貯體擁有者) 時，則儲存貯體擁有者亦擁有從此工作群組寫入的所有查詢結果物件。例如，如果外部帳戶的工作群組啟用此選項，並將其查詢結果位置設定為您帳戶的 Simple Storage Service (Amazon S3) 儲存貯體，且該儲存貯體的 S3 物件所有權設定為 **Bucket owner preferred** (首選的儲存貯體擁有者) 時，則您擁有外部工作群組的查詢結果並具有完整的控制存取。

   當查詢結果儲存貯體的 S3 物件所有權設定為 **Bucket owner enforced** (強制的儲存貯體擁有者) 時，則選取此選項不會有任何作用。如需詳細資訊，請參閱《*Simple Storage Service (Amazon S3) 使用者指南*》中的[控制物件的所有權並停用儲存貯體的 ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)。

1. 如果要讓工作群組的所有使用者使用您指定的查詢結果位置，請往下捲動到 **Settings** (設定) 部分，然後選擇 **Override client-side settings** (覆寫用戶端設定)。

1. 選擇**儲存變更**。