Cloud 리소스 연결 만들기 및 설정
BigQuery 관리자는 데이터 분석가가 다음 작업을 수행할 수 있도록 Cloud 리소스 연결을 만들 수 있습니다.
- BigLake 테이블을 사용하여 Cloud Storage 정형 데이터를 쿼리합니다. BigLake 테이블을 사용하면 액세스 위임을 통해 외부 데이터를 쿼리할 수 있습니다.
- 객체 테이블을 사용하여 Cloud Storage에서 비정형 데이터를 쿼리합니다.
- Cloud Run Functions 또는 Cloud Run에서 지원되는 언어로 원격 함수를 구현합니다.
연결에 관한 자세한 내용은 연결 소개를 참조하세요.
시작하기 전에
BigQuery Connection API 사용 설정하기
-
Cloud 리소스 연결을 만드는 데 필요한 권한을 얻으려면 관리자에게 다음의 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 BigQuery 연결 관리자(
roles/bigquery.connectionAdmin
) -
버킷의 스토리지 객체 뷰어(
roles/storage.objectViewer
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Cloud Storage 기반의 BigLake 테이블을 사용하여 구조화된 데이터를 쿼리하거나 객체 테이블을 사용하여 구조화되지 않은 데이터를 쿼리하려는 경우 연결과 연결된 서비스 계정에도 외부 데이터가 포함된 버킷에 대한 스토리지 뷰어(roles/storage.viewer
) 역할이 있어야 합니다.
-
프로젝트에 대한 BigQuery 연결 관리자(
- 사용 중인 Google Cloud SDK 버전이 366.0.0 이상인지 확인합니다.
gcloud version
필요한 경우 Google Cloud SDK를 업데이트합니다.
- 선택사항: Terraform의 경우 Terraform GCP 버전 4.25.0 이상을 사용합니다. HashiCorp Terraform 다운로드에서 최신 버전을 다운로드할 수 있습니다.
위치 고려사항
Cloud Storage를 사용하여 데이터 파일을 저장하는 경우 최적의 성능을 위해 멀티 리전 버킷이 아닌 Cloud Storage 단일 리전 또는 이중 리전 버킷을 사용하는 것이 좋습니다.
Cloud 리소스 연결 만들기
BigLake는 연결을 사용하여 Cloud Storage에 액세스합니다. 단일 테이블 또는 테이블 그룹에서 이 연결을 사용할 수 있습니다.
다음 옵션 중 하나를 선택합니다.
콘솔
BigQuery 페이지로 이동합니다.
연결을 만들려면
추가를 클릭한 다음 외부 데이터 소스에 연결을 클릭합니다.연결 유형 목록에서 Vertex AI 원격 모델, 원격 함수, BigLake(Cloud 리소스)를 선택합니다.
연결 ID 필드에 연결 이름을 입력합니다.
연결 만들기를 클릭합니다.
연결로 이동을 클릭합니다.
연결 정보 창에서 나중의 단계에 사용할 서비스 계정 ID를 복사합니다.
bq
명령줄 환경에서 연결을 만듭니다.
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
--project_id
매개변수는 기본 프로젝트를 재정의합니다.다음을 바꿉니다.
REGION
: 연결 리전PROJECT_ID
: Google Cloud 프로젝트 IDCONNECTION_ID
: 연결의 ID
연결 리소스를 만들면 BigQuery가 고유한 시스템 서비스 계정을 만들고 이를 연결에 연계합니다.
문제 해결: 다음 연결 오류가 발생하면 Google Cloud SDK를 업데이트하세요.
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
이후 단계에서 사용할 수 있도록 서비스 계정 ID를 가져와 복사합니다.
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
출력은 다음과 비슷합니다.
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
main.tf
파일에 다음 섹션을 추가합니다.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }
CONNECTION_ID
: 연결의 IDPROJECT_ID
: Google Cloud 프로젝트 IDREGION
: 연결 리전
서비스 계정에 액세스 권한 부여
원격 함수를 만들려면 Cloud Run Functions 또는 Cloud Run에 필요한 역할을 부여해야 합니다.
Cloud Storage에 연결하려면 BigQuery가 사용자를 대신하여 파일에 액세스할 수 있도록 새 연결에 Cloud Storage에 대한 읽기 전용 액세스 권한을 부여해야 합니다.
다음 옵션 중 하나를 선택합니다.
콘솔
서비스 계정이 Cloud Storage 버킷에 액세스할 수 있도록 연결 리소스 서비스 계정에 스토리지 객체 뷰어 IAM 역할(roles/storage.objectViewer
)을 부여하는 것이 좋습니다.
IAM 및 관리자 페이지로 이동합니다.
추가를 클릭합니다.
주 구성원 추가 대화상자가 열립니다.
새 주 구성원 필드에 앞에서 복사한 서비스 계정 ID를 입력합니다.
역할 선택 필드에서 Cloud Storage를 선택한 후 스토리지 객체 뷰어를 선택합니다.
저장을 클릭합니다.
gcloud
gcloud storage buckets add-iam-policy-binding
명령어를 사용합니다.
gcloud storage buckets add-iam-policy-binding gs://example-bucket \ --member=serviceAccount:MEMBER \ --role=roles/storage.objectViewer
MEMBER
를 앞에서 복사한 서비스 계정 ID로 바꿉니다.
자세한 내용은 버킷 수준 정책에 주 구성원 추가를 참조하세요.
Terraform
main.tf
파일에 다음 섹션을 추가합니다.
## This grants permissions to the service account of the connection created in the last step. resource "google_project_iam_member" "connectionPermissionGrant" { project = "PROJECT_ID" role = "roles/storage.objectViewer" member = format("serviceAccount:%s", google_bigquery_connection.connection.cloud_resource[0].service_account_id) }
사용자와 연결 공유
데이터를 쿼리하고 연결을 관리할 수 있도록 사용자에게 다음 역할을 부여할 수 있습니다.
roles/bigquery.connectionUser
: 사용자가 연결을 사용하여 외부 데이터 소스에 연결하고 쿼리를 실행할 수 있습니다.roles/bigquery.connectionAdmin
: 사용자가 연결을 관리할 수 있습니다.
BigQuery의 IAM 역할과 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
다음 옵션 중 하나를 선택합니다.
콘솔
BigQuery 페이지로 이동합니다.
이러한 연결은 프로젝트의 외부 연결 그룹에 나열됩니다.
탐색기 창에서 프로젝트 이름 > 외부 연결 > 연결을 클릭합니다.
세부정보 창에서 공유를 클릭하여 연결을 공유합니다. 다음 작업을 수행합니다.
연결 권한 대화상자에서 주 구성원을 추가하거나 수정하여 다른 주 구성원과 연결을 공유합니다.
저장을 클릭합니다.
bq
bq 명령줄 도구로 연결을 공유할 수 없습니다. 연결을 공유하려면 Google Cloud 콘솔 또는 BigQuery Connections API 메서드를 사용하여 연결을 공유합니다.
API
BigQuery 연결 REST API 참조 섹션의 projects.locations.connections.setIAM
메서드를 사용하고 policy
리소스의 인스턴스를 지정합니다.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
다음 단계
- 다양한 연결 유형 알아보기
- 연결 관리 알아보기
- BigLake 테이블 알아보기
- BigLake 테이블을 만드는 방법 알아보기
- 외부 테이블을 BigLake 테이블로 업그레이드하는 방법 알아보기
- 객체 테이블 및 객체 테이블을 만드는 방법 알아보기
- 원격 함수 구현 방법 알아보기