구체화된 뷰 복제본 만들기
이 문서에서는 BigQuery에서 구체화된 뷰 복제본을 만드는 방법을 설명합니다. 구체화된 뷰 복제본을 사용하여 Amazon Simple Storage Service(Amazon S3) 데이터를 로컬로 조인에 사용할 수 있습니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
필수 권한
사용자에게 이 문서의 각 작업을 수행하는 데 필요한 권한을 부여하는 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 소개를 참조하세요.
기본 요건
구체화된 뷰 복제본을 만들기 전에 다음 태스크를 완료해야 합니다.
- Amazon S3를 지원하는 리전에 데이터 세트를 만듭니다.
- 1단계에서 만든 데이터 세트에 Amazon S3 BigLake 테이블을 만듭니다. 테이블을 만들 때 메타데이터 캐싱을 사용 설정합니다.
- 1단계에서 만든 데이터 세트에 Amazon S3 BigLake 테이블을 통한 구체화된 뷰를 만듭니다. Amazon S3를 지원하는 리전에 있는 다른 데이터 세트에도 구체화된 뷰를 만들 수 있습니다.
- 구체화된 뷰를 만든 쿼리에 사용된 소스 Amazon S3 BigLake 테이블이 포함된 데이터 세트에서 구체화된 뷰를 승인합니다.
- Amazon S3 BigLake 테이블에 수동 메타데이터 캐시 새로고침을 구성한 경우
BQ.REFRESH_EXTERNAL_METADATA_CACHE
시스템 프로시저를 실행하여 메타데이터 캐시를 새로고침합니다. 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_dataset
에 mv_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
오류가 발생합니다. 첫 번째 복제가 완료된 후에 구체화된 뷰 복제본의 데이터를 쿼리할 수 있습니다.