

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

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

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

 AWS Glue 提供 Snowflake 的內建支援。AWS Glue Studio 提供視覺化介面來連線至 Snowflake、撰寫資料整合任務，以及在 AWS Glue Studio 無伺服器 Spark 執行期上執行這些任務。

 AWS Glue Studio 會為 Snowflake 建立統一連線。如需詳細資訊，請參閱[考量事項](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations)。

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

# 建立 Snowflake 連線
<a name="creating-snowflake-connection"></a>

**注意**  
 統一連線 (連線 v2) 會標準化所有連線，以使用 `USERNAME`、`PASSWORD` 金鑰作為基本驗證憑證。您仍然可以透過包含 `sfUser`、`sfPassword` 的機密的 API 建立 v1 連線。

 在 中新增**資料來源 - Snowflake** 節點時AWS Glue Studio，您可以選擇現有的 AWS Glue Snowflake 連線或建立新的連線。您必須選擇 `SNOWFLAKE` 類型連線，而不是設定為連線至 Snowflake 的 `JDBC` 類型連線。請依照下列程序建立 AWS Glue Snowflake 連線：

**建立 Snowflake 連線**

1. 在 Snowflake 中產生一個使用者、*snowflakeUser* 和密碼 *snowflakePassword*。

1. 確定此使用者將與哪個 Snowflake 倉儲 (*snowflakeWarehouse*) 互動。可將其設定為 Snowflake 中 *snowflakeUser* 的 `DEFAULT_WAREHOUSE`，或是記住此資訊以供下一步使用。

1. 在 中 AWS Secrets Manager，使用您的 Snowflake 登入資料建立秘密。若要在 Secrets Manager 中建立秘密，請遵循 AWS Secrets Manager 文件中[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html#create_secret_cli)中提供的教學課程。建立機密之後，請保留機密名稱 *secretName*，以便進行下一個步驟。
   + 選取**鍵值對**時，使用索引鍵 `sfUser` 為 *snowflakeUser* 建立鍵值對。
   + 選取**鍵值對**時，使用索引鍵 `sfPassword` 為 *snowflakePassword* 建立鍵值對。
   + 選取**鍵值對**時，使用索引鍵 `sfWarehouse` 為 *snowflakeWarehouse* 建立鍵值對。如果 Snowflake 中設定了預設值，則不需要此操作。

1. 在 AWS Glue 資料目錄中，依照[新增連線中的步驟建立 AWS Glue 連線](https://docs.aws.amazon.com//glue/latest/dg/console-connections.html)。建立連線之後，請保留連線名稱 *connectionName*，以便進行下一個步驟。
   + 選取**連線類型**時，請選取 Snowflake。
   + 選取 **Snowflake URL** 時，請提供 Snowflake 執行個體的主機名稱。URL 將在表單 `account_identifier.snowflakecomputing.com` 中使用 hostname。
   + 選取 **AWS 機密**時，請提供 *secretName*。

# 建立 Snowflake 來源節點
<a name="creating-snowflake-source-node"></a>

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

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

 `SNOWFLAKE` AWS Glue 連線使用 AWS Secrets Manager 秘密來提供登入資料資訊。您在 中的任務和資料預覽角色 AWS Glue Studio 必須具有讀取此秘密的許可。

## 新增 Snowflake 資料來源
<a name="creating-snowflake-source-node-add"></a>

**先決條件：**
+ Snowflake 登入資料的 AWS Secrets Manager 秘密
+ Snowflake 類型 AWS Glue Data Catalog 連線

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

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

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

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

1.  如果您選擇單一資料表，請輸入 Snowflake 結構描述的名稱。

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

1.  在**效能和安全性**選項 (選用) 中，
   +  **啟用查詢下推**：選擇是否要將工作卸載至 Snowflake 執行個體。

1.  在**自訂 Snowflake 屬性** (選用) 中，根據需要輸入參數和值。

# 建立 Snowflake 目標節點
<a name="creating-snowflake-target-node"></a>

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

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

 `SNOWFLAKE` AWS Glue 連線使用 AWS Secrets Manager 秘密來提供登入資料資訊。您在 中的任務和資料預覽角色 AWS Glue Studio 必須具有讀取此秘密的許可。

## 新增 Snowflake 資料目標
<a name="creating-snowflake-target-node-add"></a>

**若要建立 Snowflake 目標節點：**

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

1.  當您使用**資料目標 - Snowflake** 目標節點時，您可以從下列選項中進行選擇：
   +  **附加**：如果資料表已存在，請將所有新資料以插入方式傾印到資料表中。如果資料表不存在，請建立資料表，然後插入所有新資料。
   +  **合併**：AWS Glue 會根據您指定的條件，將資料更新或附加至目標資料表。

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

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

       不符合時指定下列選項：
       + 將來源資料作為新列插入目標資料集。
       + 什麼都不做。
     + **輸入自訂 MERGE 陳述式**：然後您可以選擇**驗證 Merge 陳述式**，以驗證陳述式是有效還是無效。
   +  **截斷**：如果資料表已存在，請先清除目標資料表的內容來截斷資料表資料。如果截斷成功，則插入所有資料。如果資料表不存在，請建立資料表並插入所有資料。如果截斷未成功，則操作將會失敗。
   +  **刪除**：如果資料表已存在，請刪除資料表中繼資料和資料。如果刪除成功，則插入所有資料。如果資料表不存在，請建立資料表並插入所有資料。如果刪除未成功，則操作將會失敗。

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

請參閱 AWS Glue 開發人員指南中的 [ Snowflake 連線](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-snowflake-home.html)。