

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

# 在 Amazon Athena 中查詢資料或在 Amazon DataZone 中查詢 Amazon Redshift
<a name="query-athena-with-deep-link-in-project"></a>

在 Amazon DataZone 中，一旦訂閱者可以存取目錄中的資產，就可以使用 Amazon Athena 或 Amazon Redshift 查詢編輯器 v2 來取用 （查詢和分析）。您必須是專案擁有者或參與者才能完成此任務。根據專案中啟用的藍圖，Amazon DataZone 會在資料入口網站的專案頁面右側窗格提供 Amazon Athena 和/或 Amazon Redshift 查詢編輯器 v2 的連結。

1. 導覽至 Amazon DataZone 資料入口網站 URL，並使用單一登入 (SSO) 或您的 AWS 登入資料登入。如果您是 Amazon DataZone 管理員，您可以在 [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone)：// 導覽至 Amazon DataZone 主控台，並使用建立網域 AWS 帳戶 的 登入，然後選擇**開啟資料入口網站**。

1. 在 Amazon DataZone 資料入口網站中，選擇**瀏覽專案清單**，然後尋找並選擇要分析資料的專案。

1. 如果此專案已啟用 Data Lake 藍圖，Amazon Athena 的連結會顯示在專案首頁的右側面板中。

   如果此專案已啟用資料倉儲藍圖，則查詢編輯器的連結會顯示在專案首頁的右側面板中。
**注意**  
藍圖是在建立專案的環境設定檔中定義。

**Topics**
+ [使用 Amazon Athena 查詢資料](#query-athena-with-deep-link)
+ [使用 Amazon Redshift 查詢資料](#query-redshift-with-deep-link)

## 使用 Amazon Athena 查詢資料
<a name="query-athena-with-deep-link"></a>

選擇 Amazon Athena 連結，使用專案的憑證進行身分驗證，在瀏覽器的新索引標籤中開啟 Amazon Athena 查詢編輯器。您正在使用的 Amazon DataZone 專案會自動選取為查詢編輯器中的目前工作群組。

在 Amazon Athena 查詢編輯器中，撰寫並執行您的查詢。一些常見的任務包括：
+ [查詢和分析您訂閱的資產](#query-analyze-subscribed-data)
+ [建立新的資料表](#create-new-tables)
+ [從外部 S3 儲存貯體的查詢結果 (CTAS) 建立資料表](#create-tables-external-s3-bucket)

### 查詢和分析您訂閱的資產
<a name="query-analyze-subscribed-data"></a>

如果 Amazon DataZone 未自動授予您專案訂閱之資產的存取權，您必須獲得存取基礎資料的授權。如需如何授予這些資產存取權的詳細資訊，請參閱 [授予 Amazon DataZone 中未受管資產的已核准訂閱存取權](grant-access-to-unmanaged-asset.md)。

如果 [Amazon DataZone 會自動授予](grant-access-to-glue-asset.md)專案訂閱資產的存取權，您可以在資料表上執行 SQL 查詢，並在 Amazon Athena 中查看結果。如需在 Amazon Athena 中使用 SQL 的詳細資訊，請參閱 [Athena 的 SQL 參考](grant-access-to-glue-asset)。

當您在專案首頁的右側面板中選擇 Amazon Athena 連結後導覽至 Amazon Athena 查詢編輯器時，Amazon Athena 查詢編輯器的右上角會顯示**專案**下拉式清單，並自動選取您的專案內容。

您可以在資料庫下拉式清單中看到下列**資料庫**：
+ 發佈資料庫 (`{environmentname}_pub_db`)。此資料庫的目的是為您提供環境，您可以在專案內容中產生新資料，然後將此資料發佈至 Amazon DataZone 目錄。專案擁有者和參與者具有此資料庫的讀取和寫入存取權。專案檢視器只能讀取此資料庫。
+ 訂閱資料庫 (`{environmentname}_sub_db`)。此資料庫的目的是與您共用您已訂閱為 Amazon DataZone 目錄中專案成員的資料，並可讓您查詢該資料。

### 建立新的資料表
<a name="create-new-tables"></a>

如果您已連線至外部 S3 儲存貯體，您可以使用 Amazon Athena 查詢和分析來自外部 Amazon S3 儲存貯體的資產。在此案例中，Amazon DataZone 沒有許可直接授予外部 Amazon S3 儲存貯體中基礎資料的存取權，而且在專案外部建立的外部 Amazon S3 資料不會在 Lake Formation 中自動管理，也無法由 Amazon DataZone 管理。另一種方法是使用 Amazon S3 Amazon Athena 中的`CREATE TABLE`陳述式，將資料從外部 Amazon S3 儲存貯體複製到專案 Amazon S3 儲存貯體內的新資料表。當您在 Amazon Athena 中執行`CREATE TABLE`查詢時，您會向 註冊資料表 AWS Glue Data Catalog。

若要在 Amazon S3 中指定資料的路徑，請使用 `LOCATION` 屬性，如下列範例所示：

```
CREATE EXTERNAL TABLE 'test_table'(
...
)
ROW FORMAT ...
STORED AS INPUTFORMAT ...
OUTPUTFORMAT ...
LOCATION 's3://bucketname/folder/'
```

如需詳細資訊，請參閱 [Amazon S3 中的資料表位置](https://docs.aws.amazon.com/athena/latest/ug/tables-location-format.html)。

### 從外部 S3 儲存貯體的查詢結果 (CTAS) 建立資料表
<a name="create-tables-external-s3-bucket"></a>

當您訂閱資產時，對基礎資料的存取是唯讀的。您可以使用 Amazon Athena 建立資料表的副本。在 Amazon Athena 中，`A CREATE TABLE AS SELECT (CTAS)`查詢會從另一個查詢的`SELECT`陳述式結果，在 Amazon Athena 中建立新的資料表。如需 CTAS 語法的相關資訊，請參閱 [CREATE TABLE AS](https://docs.aws.amazon.com/athena/latest/ug/create-table-as.html)。

以下範例會透過複製資料表的所有資料欄來建立資料表：

```
CREATE TABLE new_table AS
SELECT *
FROM old_table;
```

在相同範例的以下變化中，您的 `SELECT` 陳述式也包含 `WHERE` 子句。在這種情況下，查詢只會從資料表中選取滿足 `WHERE` 子句的那些資料列：

```
CREATE TABLE new_table AS
SELECT *
FROM old_table WHERE condition;
```

以下範例會建立對來自另一個資料表的一組資料欄執行的新查詢：

```
CREATE TABLE new_table AS
SELECT column_1, column_2, ... column_n
FROM old_table;
```

相同範例的這個變化會來自多個資料表的特定資料欄建立新的資料表：

```
CREATE TABLE new_table AS
SELECT column_1, column_2, ... column_n
FROM old_table_1, old_table_2, ... old_table_n;
```

這些新建立的資料表現在是您專案 AWS Glue 資料庫的一部分，其他人可以透過將資料作為資產發佈到 Amazon DataZone 目錄來探索和與其他 Amazon DataZone 專案共用。

## 使用 Amazon Redshift 查詢資料
<a name="query-redshift-with-deep-link"></a>

在 Amazon DataZone 資料入口網站中，開啟使用資料倉儲藍圖的環境。在環境頁面右側面板中選擇 **Amazon Redshift** 連結。這會開啟確認對話方塊，其中包含必要的詳細資訊，協助您在 Amazon Redshift 查詢編輯器 v2.0 中建立與 Amazon Redshift 叢集或 Amazon Redshift Serverless 工作群組的連線。識別建立連線所需的詳細資訊後，請選擇**開啟 Amazon Redshift** 按鈕。這會使用 Amazon DataZone 環境的臨時登入資料，在瀏覽器的新索引標籤中開啟 Amazon Redshift 查詢編輯器 v2.0。

在查詢編輯器中，根據您的環境是使用 Amazon Redshift Serverless 工作群組還是 Amazon Redshift 叢集，請遵循下列步驟。

對於 Amazon Redshift Serverless 工作群組

1. 在查詢編輯器中，識別您 Amazon DataZone 環境的 Amazon Redshift Serverless 工作群組，在其中按一下滑鼠右鍵，然後選擇**建立連線**。

1. 選擇**聯合身分使用者**進行身分驗證。

1. 提供 Amazon DataZone 環境資料庫的名稱。

1. 選擇**建立連線**。

對於 Amazon Redshift 叢集：

1. 在查詢編輯器中，識別您 Amazon DataZone 環境的 Amazon Redshift 叢集，在叢集上按一下滑鼠右鍵，然後選擇**建立連線**。

1. **使用 IAM 身分選取暫時登入**資料進行身分驗證。

1. 如果無法使用上述身分驗證方法，請選擇左下角的齒輪按鈕來開啟**帳戶設定**，選擇**使用 IAM 憑證驗證**並儲存。這是one-time-only設定。

1. 提供 Amazon DataZone 環境的資料庫名稱以建立連線。

1. 選擇**建立連線**。

現在，您可以開始查詢針對 Amazon DataZone 環境設定的 Amazon Redshift 叢集或 Amazon Redshift Serverless 工作群組中的資料表和檢視。

您已訂閱的任何 Amazon Redshift 資料表或檢視都會連結到為環境設定的 Amazon Redshift 叢集或 Amazon Redshift Serverless 工作群組。您可以訂閱資料表和檢視，以及發佈您在環境叢集或資料庫中建立的任何新資料表和檢視。

例如，假設環境連結至名為 的 Amazon Redshift 叢集，`redshift-cluster-1`以及該叢集`dev`中名為 的資料庫。使用 Amazon DataZone 資料入口網站，您可以查詢新增至您環境的資料表和檢視。在資料入口網站右側窗格的 `Analytics tools`區段下，您可以選擇此環境的 Amazon Redshift 連結，這會開啟查詢編輯器。然後，您可以在`redshift-cluster-1`叢集上按一下滑鼠右鍵，並使用**暫時登入資料使用您的 IAM 身分**建立連線。建立連線後，您可以在 **dev** 資料庫下查看環境可存取的所有資料表和檢視。