

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

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

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

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

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

 您現在可以透過與 Google BigQuery 的統一連線，建立直接包含 Goolge BigQuery JSON 的機密，而不是使用特定格式的憑證 `{"credentials": "base64 encoded JSON"}` 建立機密：`{"type": "service-account", ...}`。

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

# 建立 BigQuery 連線
<a name="creating-bigquery-connection"></a>

若要從 連線至 Google BigQuery AWS Glue，您需要在 AWS Secrets Manager 秘密中建立和存放 Google Cloud Platform 登入資料，然後將該秘密與 Google BigQuery AWS Glue 連線建立關聯。

**設定連至 BigQuery 的連線：**

1. 在 Google Cloud Platform 中建立並識別相關資源：
   + 建立或識別 GCP 專案，其中應包含您要連線之 BigQuery 資料表。
   + 啟用 BigQuery API。如需詳細資訊，請參閱 [Use the BigQuery Storage Read API to read table data](https://cloud.google.com/bigquery/docs/reference/storage/#enabling_the_api)。

1. 在 Google Cloud Platform 中建立和匯出服務帳戶憑證：

   您可以使用 BigQuery 憑證精靈來加速此步驟：[Create credentials](https://console.cloud.google.com/apis/credentials/wizard?api=bigquery.googleapis.com)。

   若要在 GCP 中建立服務帳戶，請依照 [Create service accounts](https://cloud.google.com/iam/docs/service-accounts-create) 中提供的教學課程進行操作。
   + 在選取**專案**時，請選取包含您 BigQuery 資料表的專案。
   + 在為您的服務帳戶選取 GCP IAM 角色時，請新增或建立角色，其會授予供執行 BigQuery 任務的適當許可，以讀取、寫入或建立 BigQuery 資料表。

   若要為您的服務帳戶建立憑證，請依照 [Create a service account key](https://cloud.google.com/iam/docs/keys-create-delete#creating) 中提供的教學課程進行操作。
   + 在選取金鑰類型時，請選取 **JSON**。

   您現在應已下載 JSON 檔案，該檔案中包含您服務帳戶的憑證。其看起來與下列類似：

   ```
   {
     "type": "service_account",
     "project_id": "*****",
     "private_key_id": "*****",
     "private_key": "*****",
     "client_email": "*****",
     "client_id": "*****",
     "auth_uri": "https://accounts.google.com/o/oauth2/auth",
     "token_uri": "https://oauth2.googleapis.com/token",
     "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
     "client_x509_cert_url": "*****",
     "universe_domain": "googleapis.com"
   }
   ```

1. 在 中 AWS Secrets Manager，使用您下載的登入資料檔案建立秘密。您可以選擇**純文字**索引標籤，並貼上 JSON 格式的檔案內容。若要在 Secrets Manager 中建立秘密，請遵循 AWS Secrets Manager 文件中[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)中提供的教學課程。建立機密之後，請保留機密名稱 *secretName*，以便進行下一個步驟。

1. 在 AWS Glue 資料目錄中，依照中的步驟建立連線[https://docs.aws.amazon.com/glue/latest/dg/console-connections.html](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html)。建立連線之後，請保留連線名稱 *connectionName*，以便進行下一個步驟。
   + 選取**連線類型**時，請選取 Google BigQuery。
   + 選取 **AWS 機密**時，請提供 *secretName*。

1. 授予與您的 AWS Glue 任務相關聯的 IAM 角色讀取 *secretName* 的許可。

1. 在您的 AWS Glue 任務組態中，提供 *connectionName* 作為**其他網路連線**。

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

## 必要先決條件
<a name="creating-bigquery-source-node-prerequisites"></a>
+ BigQuery 類型 AWS Glue Data Catalog 連線
+ 連線所使用的 Google BigQuery 登入資料的 AWS Secrets Manager 秘密。
+ 針對您任務的適當許可，以讀取連線所使用的秘密。
+ 您要讀取的資料表名稱和資料集，以及對應的 Google Cloud 專案。

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

**新增**資料來源 – BigQuery** 節點：**

1.  選擇您 BigQuery 資料來源的連線。由於您已建立連線，其應可用於下拉式清單中。如果您需要建立連線，請選擇**建立 BigQuery 連線**。如需詳細資訊，請參閱 [Overview of using connectors and connections ](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview)。

    選擇連線之後，您可以按一下**檢視屬性**來檢視連線屬性。

1. 識別您要讀取的 BigQuery 資料，然後選擇 **BigQuery 來源**選項
   + 選擇單一資料表 – 讓您可從資料表中提取所有資料。
   + 輸入自訂查詢 – 讓您可藉由提供查詢來自訂要擷取的資料。

1.  描述您要讀取的資料

   **(必要)** 將**父系專案**設定為包含資料表的專案，或設定為計費父系專案 (若相關)。

   若您選擇單一資料表，請以下列格式將**資料表**設定為 Google BigQuery 資料表的名稱：`[dataset].[table]`

   若您選擇查詢，請將其提供給**查詢**。在您的查詢中，請參考具有完整資料表名稱的資料表，格式為：`[project].[dataset].[tableName]`。

1.  提供 BigQuery 屬性 

   若您選擇單一資料表，您便無需提供其他屬性。

   若您選擇查詢，則必須提供下列**自訂 Google BigQuery 屬性**：
   + 將 `viewsEnabled` 設定為 true。
   + 將 `materializationDataset` 設定為資料集。透過 AWS Glue 連線提供的登入資料驗證的 GCP 主體必須能夠在此資料集中建立資料表。

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

## 必要先決條件
<a name="creating-bigquery-target-node-prerequisites"></a>
+ BigQuery 類型 AWS Glue Data Catalog 連線
+ 連線所使用的 Google BigQuery 登入資料的 AWS Secrets Manager 秘密。
+ 針對您任務的適當許可，以讀取連線所使用的秘密。
+ 您要寫入的資料表名稱和資料集，以及對應的 Google Cloud 專案。

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

**新增**資料目標 – BigQuery** 節點：**

1.  選擇您 BigQuery 資料目標的連線。由於您已建立連線，其應可用於下拉式清單中。如果您需要建立連線，請選擇**建立 BigQuery 連線**。如需詳細資訊，請參閱 [Overview of using connectors and connections ](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview)。

    選擇連線之後，您可以按一下**檢視屬性**來檢視連線屬性。

1. 識別您要寫入的 BigQuery 資料表，然後選擇一個**寫入方法**。
   + 直接 – 使用 BigQuery Storage Write API 直接寫入 BigQuery。
   + 間接 – 寫入 Google Cloud Storage，然後複製至 BigQuery。

   若您要間接寫入，請提供具有**暫時 GCS 儲存貯體**的目的地 GCS 位置。您將需要在 AWS Glue 連線中提供其他組態。如需詳細資訊，請參閱 [Using indirect write with Google BigQuery](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html#aws-glue-programming-etl-connect-bigquery-indirect-write)。

1.  描述您要讀取的資料

   **(必要)** 將**父系專案**設定為包含資料表的專案，或設定為計費父系專案 (若相關)。

   若您選擇單一資料表，請以下列格式將**資料表**設定為 Google BigQuery 資料表的名稱：`[dataset].[table]`

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

您可以在建立 BigQuery 節點時提供進階選項。這些選項與 AWS Glue Spark 指令碼程式設計時可用的選項相同。

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