

# 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 런타임에서 실행할 수 있는 시각적 인터페이스가 있습니다.

 AWS Glue Studio에서 Google BigQuery에 대한 연결을 생성할 때 통합 연결이 생성됩니다. 자세한 내용은 [고려 사항](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations) 섹션을 참조하세요.

 특정 형식의 자격 증명인 `{"credentials": "base64 encoded JSON"}`로 보안 암호를 만드는 대신 이제 Google BigQuery에 대한 통합 연결을 통해 Goolge BigQuery의 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>

AWS Glue에서 Google BigQuery에 연결하려면 AWS Secrets Manager 보안 암호에서 Google Cloud Platform 보안 인증 정보를 생성하고 저장한 다음 해당 보안 암호를 Google AWS Glue BigQuery 연결에 연결해야 합니다.

**BigQuery에 대한 연결 구성하기:**

1. Google Cloud Platform에서 관련 리소스를 생성하고 식별합니다.
   + 연결하려는 BigQuery 테이블이 포함된 GCP 프로젝트를 생성하거나 식별합니다.
   + BigQuery API를 활성화합니다. 자세한 내용은 [BigQuery Storage Read API를 사용하여 테이블 데이터 읽기](https://cloud.google.com/bigquery/docs/reference/storage/#enabling_the_api)를 참조하세요.

1. Google Cloud Platform에서 서비스 계정 보안 인증 정보를 생성하고 내보냅니다.

   BigQuery 보안 인증 마법사를 사용하여 [보안 인증 정보 생성하기](https://console.cloud.google.com/apis/credentials/wizard?api=bigquery.googleapis.com) 단계를 신속하게 처리할 수 있습니다.

   GCP에서 서비스 계정을 생성하려면 [서비스 계정 생성하기](https://cloud.google.com/iam/docs/service-accounts-create)에서 제공되는 튜토리얼을 따르세요.
   + **프로젝트**를 선택할 때 BigQuery 테이블이 포함된 프로젝트를 선택합니다.
   + 서비스 계정의 GCP IAM 역할을 선택할 때 BigQuery 작업을 실행하여 BigQuery 테이블을 읽고, 쓰고, 생성할 수 있는 적절한 권한을 부여하는 역할을 추가하거나 생성하세요.

   서비스 계정의 보안 인증 정보를 생성하려면 [서비스 계정 키 생성하기](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 설명서의 [Create an AWS Secrets Manager secret](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 데이터 카탈로그 연결
+ 연결에 사용되는 Google BigQuery 자격 증명의 AWS Secrets Manager 보안 암호.
+ 연결에 사용되는 보안 암호를 읽을 작업에 대한 적절한 권한.
+ 읽으려는 테이블 및 해당 Google Cloud 프로젝트의 이름 및 데이터세트.

## BigQuery 데이터 소스 추가
<a name="creating-bigquery-source-node-add"></a>

****데이터 소스 - BigQuery** 노드 추가하기:**

1.  BigQuery 데이터 소스의 연결을 선택합니다. 생성했으므로 드롭다운에서 사용할 수 있을 것입니다. 연결을 생성해야 하는 경우 **BigQuery 연결 생성**을 선택합니다. 자세한 내용은 [커넥터 및 연결 사용 개요](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview)를 참조하세요.

    연결을 선택한 후에는 **속성 보기**를 클릭하여 연결 속성을 볼 수 있습니다.

1. 읽으려는 BigQuery 데이터를 식별한 다음 **BigQuery 소스** 옵션을 선택합니다
   + 단일 테이블 선택 — 테이블에서 모든 데이터를 가져올 수 있습니다.
   + 사용자 지정 쿼리 입력 — 쿼리를 제공하여 검색할 데이터를 사용자 지정할 수 있습니다.

1.  읽고 싶은 데이터를 설명하세요

   **(필수 사항)** **상위 프로젝트를** 테이블이 포함된 프로젝트로 설정하거나 해당하는 경우 청구 대상 상위 프로젝트로 설정합니다.

   단일 테이블을 선택한 경우 **테이블**을 `[dataset].[table]` 형식의 Google BigQuery 테이블 이름으로 설정합니다 

   쿼리를 선택한 경우 **쿼리**에 제공합니다. 쿼리에서 `[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 데이터 카탈로그 연결
+ 연결에 사용되는 Google BigQuery 자격 증명의 AWS Secrets Manager 보안 암호.
+ 연결에 사용되는 보안 암호를 읽을 작업에 대한 적절한 권한.
+ 쓰려는 테이블 및 해당 Google Cloud 프로젝트의 이름 및 데이터세트.

## BigQuery 데이터 대상 추가
<a name="creating-bigquery-target-node-add"></a>

****데이터 대상 - BigQuery** 노드 추가하기:**

1.  BigQuery 데이터 대상의 연결을 선택합니다. 생성했으므로 드롭다운에서 사용할 수 있을 것입니다. 연결을 생성해야 하는 경우 **BigQuery 연결 생성**을 선택합니다. 자세한 내용은 [커넥터 및 연결 사용 개요](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview)를 참조하세요.

    연결을 선택한 후에는 **속성 보기**를 클릭하여 연결 속성을 볼 수 있습니다.

1. 쓰려는 BigQuery 테이블을 식별한 다음 **쓰기 방법**을 선택합니다.
   + 직접 — BigQuery Storage 쓰기 API를 사용하여 BigQuery에 직접 글을 씁니다.
   + 간접 — Google Cloud Storage에 쓴 다음 BigQuery에 복사합니다.

   간접적으로 쓰려는 경우 **임시 GCS 버킷**과 함께 대상 GCS 위치를 제공하세요. AWS Glue 연결에 추가 구성을 제공해야 합니다. 자세한 내용은 [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.  읽고 싶은 데이터를 설명하세요

   **(필수 사항)** **상위 프로젝트를** 테이블이 포함된 프로젝트로 설정하거나 해당하는 경우 청구 대상 상위 프로젝트로 설정합니다.

   단일 테이블을 선택한 경우 **테이블**을 `[dataset].[table]` 형식의 Google BigQuery 테이블 이름으로 설정합니다 

## 고급 옵션
<a name="creating-bigquery-connection-advanced-options"></a>

BigQuery 노드를 생성할 때 고급 옵션을 제공할 수 있습니다. 이 옵션은 Spark 스크립트에 대한 AWS Glue을(를) 프로그래밍할 때 사용할 수 있는 옵션과 동일합니다.

AWS Glue 개발자 설명서의 [BigQuery 연결 옵션 참조](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html)를 참조하세요.