

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

# 在 AWS Glue Studio 中連線至 Amazon Redshift
<a name="connecting-to-data-redshift"></a>

**注意**  
 您可以使用 AWS Glue 讓 Spark 從 以外的 Amazon Redshift 資料庫中讀取和寫入資料表AWS Glue Studio。若要以程式設計方式設定 Amazon Redshift AWS Glue任務，請參閱 [Redshift 連線](aws-glue-programming-etl-connect-redshift-home.md)。

 AWS Glue 提供 的內建支援 Amazon Redshift。 AWS Glue Studio提供視覺化界面來連線 Amazon Redshift、撰寫資料整合任務，以及在無AWS Glue Studio伺服器 Spark 執行時間上執行任務。

**Topics**
+ [建立 Amazon Redshift 連線](creating-redshift-connection.md)
+ [建立 Amazon Redshift 來源節點](creating-redshift-source-node.md)
+ [建立 Amazon Redshift 目標節點](creating-redshift-target-node.md)
+ [進階選項](creating-redshift-connection-advanced-options.md)

# 建立 Amazon Redshift 連線
<a name="creating-redshift-connection"></a>

## 需要的許可
<a name="creating-redshift-connection-permissions"></a>

 需要額外的許可才能使用 Amazon Redshift 叢集和無 Amazon Redshift 伺服器環境。如需有關如何向 ETL 任務新增許可的詳細資訊，請參閱 [Review IAM permissions needed for ETL jobs](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job)。
+  redshift:DescribeClusters 
+  redshift-serverless:ListWorkgroups 
+  redshift-serverless:ListNamespaces 

## 概觀
<a name="w2aac25c27c13c11b5"></a>

 新增 Amazon Redshift 連線時，您可以選擇現有的 Amazon Redshift 連線，或在 中新增**資料來源 - Redshift** 節點時建立新的連線AWS Glue Studio。

 AWS Glue 同時支援 Amazon Redshift 叢集和無 Amazon Redshift 伺服器環境。當您建立連線時，無 Amazon Redshift 伺服器環境會在連線選項旁顯示**無伺服器**標籤。

 如需如何建立 Amazon Redshift 連線的詳細資訊，請參閱[往返移動資料 Amazon Redshift](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html#aws-glue-programming-etl-redshift-using)。

# 建立 Amazon Redshift 來源節點
<a name="creating-redshift-source-node"></a>

## 需要的許可
<a name="creating-redshift-source-node-permissions"></a>

 AWS Glue Studio 使用 Amazon Redshift 資料來源的任務需要額外的許可。如需有關如何向 ETL 任務新增許可的詳細資訊，請參閱 [Review IAM permissions needed for ETL jobs](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job)。

 需要下列許可才能使用 Amazon Redshift 連線。
+  redshift-data:ListSchemas 
+  redshift-data:ListTables 
+  redshift-data:DescribeTable 
+  redshift-data:ExecuteStatement 
+  redshift-data:DescribeStatement 
+  redshift-data:GetStatementResult 

## 新增 Amazon Redshift 資料來源
<a name="creating-redshift-source-node-add"></a>

**若要新增**資料來源 – Amazon Redshift** 節點：**

1.  選擇 Amazon Redshift 存取類型：
   +  直接資料連線 (建議)：如果您要直接存取 Amazon Redshift 資料，請選擇此選項。這是建議的選項，也是預設選項。
   +  Data Catalog tables：如果您有要使用的資料目錄資料表，請選擇此選項。

1.  如果您選擇直接資料連線，請選擇 Amazon Redshift 資料來源的連線。假設連線已存在，您可以從現有的連線中進行選擇。如果您需要建立連線，請選擇**建立 Redshift 連線**。如需詳細資訊，請參閱 [Overview of using connectors and connections ](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview)。

    選擇連線之後，您可以按一下**檢視屬性**來檢視連線屬性。隨即會顯示連線的相關資訊，包括 URL、安全群組、子網路、可用區域、說明，以及建立的 (UTC) 和上次更新的 (UTC) 時間戳記。

1.  選擇 Amazon Redshift 來源選項：
   +  **選擇單一資料表** – 這是包含您要從單一資料表存取之資料的 Amazon Redshift 資料表。
   +  **輸入自訂查詢**：可讓您根據自訂查詢從多個 Amazon Redshift 資料表存取資料集。

1.  如果您選擇單一資料表，請選擇 Amazon Redshift 結構描述。可供選擇的結構描述清單由選取的資料表決定。

    或者，選擇**輸入自訂查詢**。選擇此選項可從多個 Amazon Redshift 資料表存取自訂資料集。當您選擇此選項時，請輸入 Amazon Redshift 查詢。

    連線至無 Amazon Redshift 伺服器環境時，請將下列許可新增至自訂查詢：

   ```
               GRANT SELECT ON ALL TABLES IN <schema> TO PUBLIC
   ```

    您可以選擇**推論結構描述**，根據您輸入的查詢讀取結構描述。您也可以選擇**開啟 Redshift 查詢編輯器**來輸入 Amazon Redshift 查詢。如需詳細資訊，請參閱 [Querying a database using the query editor](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor.html)。

1.  在**效能和安全性**中，選擇 Amazon S3 暫存目錄和 IAM 角色。
   +  **Amazon S3 暫存目錄**：選擇暫存資料的 Amazon S3 位置。
   +  **IAM 角色**：選擇可寫入您選取之 Amazon S3 位置的 IAM 角色。

1.  在**自訂 Redshift 參數 - 選用**中，輸入參數和值。

# 建立 Amazon Redshift 目標節點
<a name="creating-redshift-target-node"></a>

## 需要的許可
<a name="creating-redshift-target-node-permissions"></a>

 AWS Glue Studio 使用 Amazon Redshift 資料目標的任務需要額外的許可。如需有關如何向 ETL 任務新增許可的詳細資訊，請參閱 [Review IAM permissions needed for ETL jobs](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job)。

 需要下列許可才能使用 Amazon Redshift 連線。
+  redshift-data:ListSchemas 
+  redshift-data:ListTables 

## 新增 Amazon Redshift 目標節點
<a name="w2aac25c27c13c15b5"></a>

**若要建立 Amazon Redshift 目標節點：**

1.  選擇現有的 Amazon Redshift 資料表做為目標，或輸入新的資料表名稱。

1.  如果您使用**資料目標 - Redshift** 目標節點，您可從以下選項中選擇：
   +  **附加**：如果資料表已存在，請將所有新資料以插入方式傾印到資料表中。如果資料表不存在，請建立資料表，然後插入所有新資料。

      此外，如果您要更新 (UPSERT) 目標資料表中的現有記錄，請勾選此方塊。資料表必須先存在，否則操作將會失敗。
   +  **合併**：AWS Glue 會根據您指定的條件，將資料更新或附加至目標資料表。
**注意**  
 若要在 中使用合併動作AWS Glue，您必須啟用 Amazon Redshift 合併功能。如需如何為 Amazon Redshift 執行個體啟用合併的指示，請參閱 [MERGE （預覽）。 ](https://docs.aws.amazon.com/redshift/latest/dg/r_MERGE.html)

      選擇選項：
     + **選擇索引鍵和簡單動作**：選擇要用作來源資料與目標資料集之間相符索引鍵的資料欄。

       符合時指定下列選項：
       + 使用來源中的資料更新目標資料集中的記錄。
       + 刪除目標資料集中的記錄。

       不符合時指定下列選項：
       + 將來源資料作為新列插入目標資料集。
       + 什麼都不做。
     + **輸入自訂 MERGE 陳述式**：然後您可以選擇**驗證 Merge 陳述式**，以驗證陳述式是有效還是無效。
   +  **截斷**：如果資料表已存在，請先清除目標資料表的內容來截斷資料表資料。如果截斷成功，則插入所有資料。如果資料表不存在，請建立資料表並插入所有資料。如果截斷未成功，則操作將會失敗。
   +  **刪除**：如果資料表已存在，請刪除資料表中繼資料和資料。如果刪除成功，則插入所有資料。如果資料表不存在，請建立資料表並插入所有資料。如果刪除未成功，則操作將會失敗。
   +  **建立**：使用預設名稱建立新資料表。如果資料表名稱已存在，則建立一個新資料表，並在名稱後加上名稱後置詞 `job_datetime` 以確保唯一性。這會將所有資料插入新資料表中。如果資料表存在，則最終的資料表名稱將會附加後置詞。如果資料表不存在，則會建立資料表。無論哪種情況，都會建立新資料表。

# 進階選項
<a name="creating-redshift-connection-advanced-options"></a>

 請參閱[在 上使用 Amazon Redshift Spark 連接器AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html#aws-glue-programming-etl-redshift-using)。