크로스 클라우드 연결 만들기

크로스 클라우드 연결은 Amazon Web Services (AWS), Microsoft Azure, Salesforce Data 360의 데이터를 BigQuery로 가져와 쿼리하는 BigQuery 연결입니다. 이러한 연결은 BigQuery Omni를 사용하는 표준 BigQuery 연결의 대안입니다. BigQuery Omni에서는 BigQuery가 경량 컴퓨팅 워커를 원격 지역에 배포하여 데이터 이동 없이 다른 클라우드의 데이터를 쿼리할 수 있도록 합니다.

워크로드는 다음과 같은 이유로 표준 연결 대신 크로스 클라우드 연결을 사용하는 것이 좋습니다.

  • 기능 일관성 다른 클라우드의 데이터를 BigQuery로 가져오면 표준 연결을 통해 사용할 수 없는 BigQuery AI 기능, Gemini Enterprise Agent Platform, 구체화된 뷰, 사용자 정의 함수 및 기타 기능에 직접 액세스할 수 있습니다.
  • 비용 효율성 크로스 클라우드 연결을 사용하는 워크로드는 표준 슬롯 예약 및 약정을 사용하므로 별도의 컴퓨팅 용량을 관리할 필요가 없습니다.
  • 지능형 캐싱. 데이터가 클라우드 간에 전송되는 동안 BigQuery는 자동으로 프래그먼트를 로컬에 캐시하므로 후속 쿼리에서 상당한 크로스 클라우드 이그레스 요금이 발생하지 않습니다. 자세한 내용은 지능형 캐싱을 참고하세요.

워크로드에 Apache Iceberg 카탈로그가 포함되거나 BigQuery 이외의 엔진에서 쿼리 지원이 필요한 경우 경계 없는 레이크하우스의 크로스 클라우드 데이터 액세스 기능을 대신 사용하는 것이 좋습니다.

시작하기 전에

사용자에게 이 문서의 각 작업을 수행하는 데 필요한 권한을 부여하는 Identity and Access Management 및 서드 파티 역할을 부여합니다.

필요한 BigQuery 역할

교차 클라우드 연결을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 BigQuery 관리자 (roles/bigquery.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

필수 서드 파티 역할

교차 클라우드 연결을 만드는 데 필요한 권한을 얻으려면 다음 서드 파티 역할이 있어야 합니다.

  • AWS: AWS 계정에서 IAM 정책과 역할을 만들 수 있는 역할
  • Azure: Microsoft Entra ID (Azure AD)에서 앱 등록을 관리하고 대상 Azure 계정에 스토리지 Blob 데이터 리더와 같은 역할을 할당할 수 있는 역할

AWS 크로스 클라우드 연결 만들기

AWS 크로스 클라우드 연결을 만들려면 다음 단계를 따르세요.

  1. 표준 BigQuery 연결과 마찬가지로 BigQuery용 AWS IAM 정책을 만듭니다.
  2. 표준 BigQuery 연결과 마찬가지로 BigQuery용 AWS IAM 역할을 만듭니다.
  3. 연결 리소스를 만들려면 bq mk --connection 명령어를 사용합니다.

    bq mk --connection \
        --connection_type='AWS' \
        --location=LOCATION \
        --project_id=PROJECT_ID \
        --properties='{"accessRole":{"iamRoleId":"arn:aws:iam::AWS_ACCOUNT_ID:role/ROLE_NAME"}}' \
        CONNECTION_ID

    다음을 바꿉니다.

    • LOCATION: BigQuery Omni 위치가 아닌 표준 BigQuery 위치입니다. 리전 선택에 관한 안내는 리전 권장사항을 참고하세요.
    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • AWS_ACCOUNT_ID: 이전 단계의 AWS IAM 사용자 ID입니다.
    • ROLE_NAME: 선택한 AWS 역할 정책 이름입니다.
    • CONNECTION_ID: 이 연결 리소스에 부여할 ID입니다.
  4. 서비스 계정 정보를 기록하려면 bq show 명령어를 사용합니다.

    bq show --connection \
        --location=LOCATION \
        PROJECT_ID.LOCATION.CONNECTION_ID
  5. 표준 BigQuery 연결에서와 같이 서비스 계정 정보를 사용하여 AWS 역할에 트러스트 정책을 추가합니다.

설정된 AWS 교차 클라우드 연결을 사용하여 원격 데이터를 쿼리할 테이블과 데이터 세트를 만들 수 있습니다.

AWS 예시

다음 예에서는 크로스 클라우드 연결을 사용하여 Amazon Simple Storage Service (Amazon S3) 버킷에서 직접 Parquet 파일을 쿼리하는 외부 테이블을 만듭니다.

CREATE SCHEMA `my-project.aws_raw_data`
  OPTIONS (
    location = 'us-east4');

CREATE EXTERNAL TABLE `my-project.aws_raw_data.sales_parquet`
WITH CONNECTION `us-east4.my-aws-connection`
  OPTIONS (
    format = 'PARQUET',
    uris = ['s3://my-data-bucket/sales/year=2025/*']);

다음 예에서는 교차 클라우드 연결을 사용하여 AWS Glue를 통해 전체 데이터베이스를 BigQuery로 제휴합니다.

CREATE EXTERNAL SCHEMA `my-project.aws_glue_data`
WITH CONNECTION `us-east4.my-aws-connection`
  OPTIONS (
    location = 'us-east4',
    external_source = 'aws-glue://arn:aws:glue:us-east-4:123456789:database/test_database');

AWS Glue 페더레이션에 대한 자세한 내용은 AWS Glue 제휴 데이터 세트 만들기 및 관리를 참고하세요.

Azure 크로스 클라우드 연결 만들기

Azure 크로스 클라우드 연결을 만들려면 다음 단계를 따르세요.

  1. 표준 BigQuery 연결과 마찬가지로 Azure 테넌트에서 애플리케이션을 만들고 애플리케이션 (클라이언트) 및 디렉터리 (테넌트) ID를 기록해 둡니다.
  2. 표준 BigQuery 연결과 마찬가지로 Azure 애플리케이션에 역할을 할당합니다.
  3. 연결 리소스를 만들려면 bq mk --connection 명령어를 사용합니다.

    bq mk --connection \
        --connection_type='Azure' \
        --tenant_id=TENANT_ID \
        --location=LOCATION \
        --federated_azure=true \
        --federated_app_client_id=APP_ID \
        --project_id=PROJECT_ID \
        CONNECTION_ID

    다음을 바꿉니다.

    • TENANT_ID: Azure 계정이 포함된 Azure 디렉터리의 테넌트 ID
    • LOCATION: BigQuery Omni 위치가 아닌 표준 BigQuery 위치입니다. 리전 선택에 관한 안내는 리전 권장사항을 참고하세요.
    • APP_ID: Azure 애플리케이션(클라이언트) ID입니다.
    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • CONNECTION_ID: 이 연결 리소스에 부여할 ID입니다.
  4. 서비스 계정 정보를 기록하려면 bq show 명령어를 사용합니다.

    bq show --connection \
        --location=LOCATION \
        PROJECT_ID.LOCATION.CONNECTION_ID
  5. 표준 BigQuery 연결과 마찬가지로 서비스 계정 정보를 사용하여 연결된 사용자 인증 정보를 추가합니다.

설정된 Azure 교차 클라우드 연결을 사용하여 이제 테이블과 데이터 세트를 만들어 원격 데이터를 쿼리할 수 있습니다.

Azure 예

다음 예에서는 크로스 클라우드 연결을 사용하여 Azure Blob Storage 컨테이너에서 직접 Parquet 파일을 쿼리하는 외부 테이블을 만듭니다.

CREATE SCHEMA `my-project.azure_raw_data`
  OPTIONS (
    location = 'us-east4');

CREATE EXTERNAL TABLE `my-project.azure_raw_data.sales_parquet`
WITH CONNECTION `us-east4.my-azure-connection`
  OPTIONS (
    format = 'PARQUET',
    uris = ['azure://mystorageaccount.blob.core.windows.net/mycontainer/sales/year=2025/*']);

다음 예에서는 크로스 클라우드 연결을 사용하여 Blob Storage 컨테이너에서 원시 CSV 내보내기를 쿼리하는 외부 테이블을 만듭니다.

CREATE EXTERNAL TABLE `my-project.azure_raw_data.daily_logs_csv`
WITH CONNECTION `us-east4.my-azure-connection`
  OPTIONS (
    format = 'CSV',
    skip_leading_rows = 1,
    uris = ['azure://mystorageaccount.blob.core.windows.net/mycontainer/logs/*.csv']);

Data 360 크로스 클라우드 연결 만들기

Data 360 교차 클라우드 연결을 만들려면 Data 360 데이터 세트를 BigQuery에 연결하는 단계를 따르세요. 단, BigQuery Omni 위치에 연결된 데이터 세트를 만드는 대신 표준 BigQuery 위치에 만드세요. 리전 선택에 관한 안내는 리전 권장사항을 참고하세요.

새 데이터 세트를 사용하도록 쿼리를 업데이트한 후에는 기존 연결된 데이터 세트와 BigQuery Omni 구체화된 뷰를 삭제할 수 있습니다.

리전 추천

크로스 클라우드 연결에 표준 BigQuery 리전을 선택할 때는 최적의 비용과 성능 효율성을 위해 데이터와 물리적으로 가장 가까운 리전을 선택하세요.

다음 표에는 AWS 리전과 가장 적합한 BigQuery 리전이 나와 있습니다.

AWS 리전 가장 가까운 BigQuery 리전 기타 가까운 BigQuery 리전
us-east-1 us-east4 us-east1
us-east5
us-central1
us-east-2 us-east5 us-east4
us-east1
us-central1
us-west-1 us-west2 us-west4
us-west1
us-west3
us-west-2 us-west1 us-west3
us-west4
us-west2
ca-central-1 northamerica-northeast1 northamerica-northeast2
us-east4
us-east5
sa-east-1 southamerica-east1 southamerica-west1
us-east1
us-south1
eu-west-1 europe-west1 europe-west2
europe-west9
europe-west4
eu-west-2 europe-west2 europe-west1
europe-west9
europe-west4
eu-west-3 europe-west9 europe-west1
europe-west2
europe-west3
eu-central-1 europe-west3 europe-west4
europe-west1
europe-west6
eu-central-2 europe-west6 europe-west8
europe-west12
europe-west3
eu-north-1 europe-north1 europe-west4
europe-central2
europe-west1
eu-south-1 europe-west8 europe-west12
europe-west6
europe-west3
eu-south-2 europe-southwest1 europe-west9
europe-west1
europe-west8
me-central-1 me-central1 me-central2
me-west1
asia-south1
me-south-1 me-central2 me-central1
me-west1
asia-south1
af-south-1 europe-southwest1 me-central2
me-west1
europe-west1
ap-east-1 asia-east2 asia-east1
asia-southeast1
asia-northeast1
ap-northeast-1 asia-northeast1 asia-northeast2
asia-northeast3
asia-east1
ap-northeast-2 asia-northeast3 asia-northeast2
asia-northeast1
asia-east1
ap-northeast-3 asia-northeast2 asia-northeast1
asia-northeast3
asia-east1
ap-south-1 asia-south1 asia-south2
me-central1
asia-southeast1
ap-south-2 asia-south2 asia-south1
asia-southeast1
me-central1
ap-southeast-1 asia-southeast1 asia-southeast2
asia-east1
asia-south1
ap-southeast-2 australia-southeast1 australia-southeast2
asia-southeast2
asia-southeast1
ap-southeast-3 asia-southeast2 asia-southeast1
australia-southeast1
asia-east1

다음 표에는 Azure 리전과 가장 적합한 BigQuery 리전이 나와 있습니다.

Azure 리전 가장 가까운 BigQuery 리전 기타 가까운 BigQuery 리전
미국 동부 us-east4 us-east1
us-east5
us-central1
미국 동부 2 us-east4 us-east1
us-east5
us-south1
미국 서부 us-west1 us-west2
us-west3
us-west4
미국 서부 2 us-west1 us-west4
us-west3
us-west2
미국 서부 3 us-west4 us-west2
us-west3
us-west1
미국 중부 us-central1 us-east5
us-east4
us-east1
미국 중북부 us-east5 us-central1
us-east4
us-east1
미국 중남부 us-south1 us-east5
us-central1
us-east1
미국 중서부 us-west3 us-central1
us-west4
us-west2
캐나다 중부 northamerica-northeast2 northamerica-northeast1
us-east5
us-east4
캐나다 동부 northamerica-northeast1 northamerica-northeast2
us-east4
us-east5
서유럽 europe-west4 europe-west1
europe-west3
europe-west9
북유럽 europe-west1 europe-west2
europe-west9
europe-west4
프랑스 중부 europe-west9 europe-west1
europe-west2
europe-west3
프랑스 남부 europe-west9 europe-southwest1
europe-west8
europe-west1
독일 중서부 europe-west3 europe-west4
europe-west1
europe-west6
독일 북부 europe-west3 europe-west4
europe-central2
europe-west2
스위스 북부 europe-west6 europe-west8
europe-west12
europe-west3
스위스 서부 europe-west6 europe-west9
europe-west8
europe-west3
영국 남부 europe-west2 europe-west1
europe-west9
europe-west4
영국 서부 europe-west2 europe-west1
europe-west9
europe-west4
노르웨이 동부 europe-north1 europe-west4
europe-central2
europe-west1
노르웨이 서부 europe-north1 europe-west4
europe-central2
europe-west1
스웨덴 중부 europe-north1 europe-west4
europe-central2
europe-west1
동아시아 asia-east2 asia-east1
asia-southeast1
asia-northeast1
동남아시아 asia-southeast1 asia-southeast2
asia-east1
asia-south1
일본 동부 asia-northeast1 asia-northeast2
asia-northeast3
asia-east1
일본 서부 asia-northeast2 asia-northeast1
asia-northeast3
asia-east1
대한민국 중부 asia-northeast3 asia-northeast2
asia-northeast1
asia-east1
오스트레일리아 동부 australia-southeast1 australia-southeast2
asia-southeast2
asia-southeast1
오스트레일리아 남동부 australia-southeast2 australia-southeast1
asia-southeast1
asia-east1
오스트레일리아 중부 australia-southeast1 australia-southeast2
asia-southeast2
asia-southeast1
서인도 asia-south1 asia-south2
me-central1
asia-southeast1
인도 중부 asia-south1 asia-south2
me-central1
asia-southeast1
남인도 asia-south1 asia-south2
asia-southeast1
me-central1

다음 단계