안녕하세요, 

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "BigQuery Dataset의 리전 설정 고려사항"을 다루고자 합니다.



BigQuery Dataset 리전 설정


BigQuery Dataset의 Default 리전은 US 멀티리전입니다.

US 멀티리전에 Dataset을 생성하면 비용이 저렴하고 모든 위치의 Cloud Storage 버킷으로 데이터를 불러오거나 내보낼 수 있습니다.

하지만 항상 US 리전을 사용하는 것이 최선의 선택은 아닙니다. 

BigQuery Dataset의 리전은 사용하는 다른 서비스(Cloud Storage, Cloud Bigtable, Cloud SQL 등)의 데이터 위치를 고려하여 결정해야 합니다.

BigQuery Dataset의 리전을 결정 시 각 서비스 별 고려사항은 다음과 같습니다.[1]



1) Cloud Storage


Cloud Storage 데이터를 직접 쿼리할 때는 쿼리하는 데이터가 BigQuery 데이터 세트와 같은 위치(리전)에 있어야합니다.

예를 들어,

  • 단일 리전 버킷: BigQuery 데이터 세트가 바르샤바(europe-central2) 리전 위치에 있는 경우 현재 바르샤뱌가 포함된 Cloud Storage 이중 리전 위치가 없으므로 해당 Cloud Storage 버킷도 바르샤바 리전에 있어야 합니다.
  • 이중 리전 버킷: BigQuery 데이터 세트가 도쿄(asia-northeast1) 리전에 있는 경우 해당 Cloud Storage 버킷은 도쿄 리전, ASIA1 이중 리전과 같이 도쿄가 포함된 이중 리전 또는 도쿄가 포함된 커스텀 이중 리전에 속해야 합니다.
  • 멀티 리전 버킷: 외부 쿼리 성능은 최소 지연 시간과 최적의 네트워크 대역폭에 따라 달라지므로 외부 테이블에는 멀티 리전 Cloud Storage 버킷이 있는 멀티 리전 데이터 세트 위치를 사용하지 않는 것이 좋습니다.
  • BigQuery 데이터 세트가 US 멀티 리전에 있는 경우 해당하는 Cloud Storage 버킷이 US 멀티 리전, NAM4 이중 리전과 같이 아이오와가 포함된 이중 리전(us-central1) 또는 아이오와가 포함된 커스텀 이중 리전(us-central1)에 속해야 합니다.


Cloud Storage에서 데이터 불러오기 및 내보내기 시에는 US, EU 리전을 제외하고 Cloud Storage 버킷과 Dataset은 같은 위치에 있어야합니다.

  • BigQuery 데이터 세트가 EU 멀티 리전에 있는 경우 내보거나 불러올 데이터가 포함된 Cloud Storage 버킷이 동일한 멀티 리전이나 멀티 리전 내에 포함된 위치에 있어야 합니다. 예를 들어 BigQuery 데이터 세트가 EU 멀티 리전에 있으면 Cloud Storage 버킷은 EU 내에 있는 europe-west1 벨기에 리전에 있을 수 있습니다.
  • 데이터 세트가 US 멀티 리전에 있는 경우 데이터를 모든 위치의 Cloud Storage 버킷으로 내보거나 불러올 수 있습니다.
  • 데이터 세트가 한 리전에 있으면 Cloud Storage 버킷은 같은 리전에 있어야 합니다. 예를 들어 데이터 세트가 asia-northeast1 도쿄 리전에 있으면 Cloud Storage 버킷은 ASIA 멀티 리전에 있을 수 없습니다.



2) Cloud Bigtable 


BigQuery 외부 테이블을 통해 Bigtable에서 데이터를 쿼리할 때는 Bigtable 인스턴스가 BigQuery 데이터 세트와 동일한 위치에 있어야 합니다.

  • 단일 리전: BigQuery 데이터 세트가 벨기에(europe-west1) 리전 위치에 있는 경우 해당 Bigtable 인스턴스가 벨기에 리전에 있어야 합니다.
  • 멀티 리전: 외부 쿼리 성능은 최소 지연 시간과 최적의 네트워크 대역폭에 따라 달라지므로 Bigtable의 외부 테이블에 멀티 리전 데이터 세트 위치를 사용하지 않는 것이 좋습니다.



3) Cloud SQL


BigQuery 통합 쿼리를 통해 Cloud SQL의 데이터를 쿼리할 때는 Cloud SQL 인스턴스가 BigQuery 데이터 세트와 동일한 위치에 있어야 합니다.

  • 단일 리전: BigQuery 데이터 세트가 벨기에(europe-west1) 리전 위치에 있는 경우 해당 Cloud SQL 인스턴스가 벨기에 리전에 있어야 합니다.
  • 멀티 리전: BigQuery 데이터 세트가 US 멀티 리전에 있는 경우 해당 Cloud SQL 인스턴스는 미국 지리적 영역의 단일 리전(ex : us-central1)에 있어야 합니다.



4) Cloud Spanner


BigQuery 통합 쿼리를 통해 Spanner의 데이터를 쿼리할 때는 Cloud Spanner 인스턴스가 BigQuery 데이터 세트와 동일한 위치에 있어야 합니다.

  • 단일 리전: BigQuery 데이터 세트가 벨기에(europe-west1) 리전 위치에 있는 경우 해당 Spanner 인스턴스는 벨기에 리전에 있어야 합니다.
  • 멀티 리전: BigQuery 데이터 세트가 US 멀티 리전에 있는 경우 해당 Spanner 인스턴스는 미국 리전의 단일 리전에 있어야 합니다.



5) 분석 도구


BigQuery 데이터 세트를 분석 도구와 같은 위치에 같은 위치에 배치합니다.

  • Dataproc: BigQuery 커넥터를 사용하여 BigQuery 데이터 세트를 쿼리할 경우 BigQuery 데이터 세트를 Dataproc 클러스터와 같은 위치에 배치해야 합니다.
    ※ Dataproc은 모든 Compute Engine 위치에서 지원됩니다.
  • Vertex AI Workbench: Vertex AI Workbench에서 Jupyter 노트북을 사용하여 BigQuery 데이터 세트를 쿼리할 때 BigQuery 데이터 세트를 Vertex AI 노트북 인스턴스와 같은 위치에 배치해야 합니다.



참조 링크


[1] BigQuery 위치 고려 사항 

https://cloud.google.com/bigquery/docs/locations#data-locations



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.