구체화된 뷰 복제본 만들기

이 문서에서는 BigQuery에서 구체화된 뷰 복제본을 만드는 방법을 설명합니다. 구체화된 뷰 복제본을 사용하여 Amazon Simple Storage Service(Amazon S3) 데이터를 로컬로 조인에 사용할 수 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

필수 권한

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

구체화된 뷰 복제본을 만들려면 다음 IAM 권한이 필요합니다.

  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.replicateData
  • bigquery.jobs.create

다음과 같은 사전 정의된 각 IAM 역할에는 구체화된 뷰를 만드는 데 필요한 권한이 포함되어 있습니다.

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

BigQuery Identity and Access Management(IAM)에 대한 자세한 내용은 BigQuery의 IAM 소개를 참조하세요.

기본 요건

구체화된 뷰 복제본을 만들기 전에 다음 태스크를 완료해야 합니다.

  1. Amazon S3를 지원하는 리전데이터 세트를 만듭니다.
  2. 1단계에서 만든 데이터 세트에 Amazon S3 BigLake 테이블을 만듭니다. 테이블을 만들 때 메타데이터 캐싱을 사용 설정합니다.
  3. 1단계에서 만든 데이터 세트에 Amazon S3 BigLake 테이블을 통한 구체화된 뷰를 만듭니다. Amazon S3를 지원하는 리전에 있는 다른 데이터 세트에도 구체화된 뷰를 만들 수 있습니다.
  4. 구체화된 뷰를 만든 쿼리에 사용된 소스 Amazon S3 BigLake 테이블이 포함된 데이터 세트에서 구체화된 뷰를 승인합니다.
  5. Amazon S3 BigLake 테이블에 수동 메타데이터 캐시 새로고침을 구성한 경우 BQ.REFRESH_EXTERNAL_METADATA_CACHE 시스템 프로시저를 실행하여 메타데이터 캐시를 새로고침합니다.
  6. BQ.REFRESH_MATERIALIZED_VIEW 시스템 프로시저를 실행하여 구체화된 뷰를 새로고침합니다.

구체화된 뷰 복제본 만들기

구체화된 뷰 복제본을 만들려면 CREATE MATERIALIZED VIEW AS REPLICA OF을 사용합니다.

CREATE MATERIALIZED VIEW PROJECT_ID.BQ_DATASET.REPLICA_NAME
OPTIONS(replication_interval_seconds=REPLICATION_INTERVAL)
AS REPLICA OF PROJECT_ID.S3_DATASET.MATERIALIZED_VIEW_NAME;

다음을 바꿉니다.

  • PROJECT_ID: 구체화된 뷰 복제본을 만들 프로젝트의 이름입니다(예: myproject).
  • BQ_DATASET: 구체화된 뷰 복제본을 만들 BigQuery 데이터 세트의 이름입니다(예: bq_dataset). 데이터 세트는 소스 구체화된 뷰의 리전에 매핑되는 BigQuery 리전에 있어야 합니다.
  • REPLICA_NAME: 만들려는 구체화된 뷰 복제본의 이름입니다(예: my_mv_replica).
  • REPLICATION_INTERVAL: 소스 구체화된 뷰의 데이터를 복제본에 복제하는 빈도(초)를 지정합니다. 60~3,600(포함) 사이의 값이어야 합니다. 기본값은 300(5분)입니다.
  • S3_DATASET: 소스 구체화된 뷰가 포함된 데이터 세트의 이름입니다(예: s3_dataset).
  • MATERIALIZED_VIEW_NAME: 복제할 구체화된 뷰의 이름입니다(예: my_mv).

다음 예시에서는 bq_datasetmv_replica라는 구체화된 뷰 복제본을 만듭니다.

CREATE MATERIALIZED VIEW `myproject.bq_dataset.mv_replica`
OPTIONS(
  replication_interval_seconds=600
)
AS REPLICA OF `myproject.s3_dataset.my_s3_mv`

구체화된 뷰 복제본을 만들면 복제 프로세스에서 변경사항에 대한 소스 구체화된 뷰를 폴링하여 데이터를 구체화된 뷰 복제본에 복제하므로 replication_interval_seconds 옵션에 지정된 간격으로 데이터가 새로고침됩니다. 첫 번째 백필이 완료되기 전에 복제본을 쿼리하면 backfill in progress 오류가 발생합니다. 첫 번째 복제가 완료된 후에 구체화된 뷰 복제본의 데이터를 쿼리할 수 있습니다.