建立具體化檢視表備用資源
本文件說明如何在 BigQuery 中建立具象化檢視表副本。實體化檢視副本是 BigQuery 資料集中的其他 Amazon Simple Storage Service (Amazon S3)、Apache Iceberg 或 Salesforce Data Cloud 資料的複本,可讓資料在 BigQuery 中使用,避免資料傳出費用,並改善查詢效能。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 確認您具備必要的身分與存取權管理 (IAM) 權限,才能執行本文件中的任務。
-
bigquery.tables.create
-
bigquery.tables.get
-
bigquery.tables.getData
-
bigquery.tables.replicateData
-
bigquery.jobs.create
- 在支援 Amazon S3的區域建立資料集
- 在您在上一個步驟中建立的資料集中,建立來源資料表。來源表格可以是下列任一表格類型:
- 已啟用中繼資料快取功能,且未使用 Iceberg 檔案格式的 Amazon S3 BigLake 資料表。
- Apache Iceberg 唯讀外部資料表。
- 資料雲端表格。
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,前往要建立物化檢視畫面副本的專案和資料集,然後依序點選 >「Create table」。
「View actions」在「Create table」對話方塊的「Source」區段中,執行下列操作:
- 在「Create table from」(使用下列資料建立資料表) 部分,選取「Existing table/view」(現有資料表/檢視畫面)。
- 在「Project」部分,輸入來源資料表或檢視表所在的專案。
- 針對「Dataset」(資料集),請輸入來源資料表或檢視表所在的資料集。
- 在「View」中,輸入要複製的來源資料表或檢視畫面。如果您選擇檢視表,該檢視表必須是已授權的檢視表,否則用於產生該檢視表的所有資料表都必須位於檢視表的資料集中。
選用:在「本機 materialized view 過時程度上限」中,輸入本機 materialized view 的
max_staleness
值。在「Create table」對話方塊的「Destination」區段中,執行下列操作:
- 在「Project」部分,輸入要建立物化檢視表複本的專案。
- 在「Dataset」(資料集) 中,輸入要建立物化檢視表副本的資料集。
- 在「備用資源 materialized view 名稱」中,輸入備用資源的名稱。
選用:為具現檢視畫面複本指定標記和進階選項。如果您未為 本機 Materialized View 資料集指定資料集,系統會在來源資料所在的專案和地區中自動建立資料集,並命名為
bq_auto_generated_local_mv_dataset
。如果您未指定 本機 Materialized View 名稱,系統會在來源資料所在的專案和區域中自動建立一個,並提供前置字串bq_auto_generated_local_mv_
。點選「建立資料表」。
- 在您建立的資料集中,針對基礎資料表建立 materialized view。您也可以在 Amazon S3 區域中的不同資料集中建立已具體化的檢視畫面。
- 針對包含建立具體化檢視表的查詢所用來源資料表的資料集,授權具體化檢視表。
- 如果您為來源資料表設定手動中繼資料快取重新整理作業,請執行
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
:您要建立 materialized view 備份的專案名稱,例如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`
必要的角色
如要取得執行本文所述任務所需的權限,請要求管理員授予您 BigQuery 管理員 (roles/bigquery.admin
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含執行本文件中任務所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要執行本文中的任務,您必須具備下列權限:
如要進一步瞭解 BigQuery IAM,請參閱「BigQuery 中的身分與存取權管理簡介」。
為具體化檢視表副本準備資料集
建立物化檢視畫面副本前,您必須完成下列工作:
建立具體化檢視表備用資源
選取下列選項之一:
主控台
系統會建立新的本機實體檢視表 (如果未指定),並在來源資料集中授權。接著,系統會在目的地資料集中建立 materialized view 備份。
SQL
建立了具象化檢視畫面副本後,複製程序會輪詢來源具象化檢視畫面是否有變更,並將資料複製到具象化檢視畫面副本,並依 replication_interval_seconds
或 max_staleness
選項指定的間隔時間重新整理資料。如果您在第一次補充作業完成前查詢副本,就會收到 backfill in progress
錯誤。第一次複製作業完成後,您就可以查詢實體檢視表副本中的資料。