建立具體化檢視表備用資源

本文件說明如何在 BigQuery 中建立具象化檢視表副本。實體化檢視副本是 BigQuery 資料集中的其他 Amazon Simple Storage Service (Amazon S3)、Apache Iceberg 或 Salesforce Data Cloud 資料的複本,可讓資料在 BigQuery 中使用,避免資料傳出費用,並改善查詢效能。

事前準備

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 確認您具備必要的身分與存取權管理 (IAM) 權限,才能執行本文件中的任務。
  7. 必要的角色

    如要取得執行本文所述任務所需的權限,請要求管理員授予您 BigQuery 管理員 (roles/bigquery.admin) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    這個預先定義的角色包含執行本文件中任務所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

    所需權限

    如要執行本文中的任務,您必須具備下列權限:

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

    您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

    如要進一步瞭解 BigQuery IAM,請參閱「BigQuery 中的身分與存取權管理簡介」。

    為具體化檢視表副本準備資料集

    建立物化檢視畫面副本前,您必須完成下列工作:

    1. 支援 Amazon S3的區域建立資料集
    2. 在您在上一個步驟中建立的資料集中,建立來源資料表。來源表格可以是下列任一表格類型:

    建立具體化檢視表備用資源

    選取下列選項之一:

    主控台

    1. 前往 Google Cloud 控制台的「BigQuery」頁面。

      前往 BigQuery

    2. 在「Explorer」窗格中,前往要建立物化檢視畫面副本的專案和資料集,然後依序點選 「View actions」>「Create table」

    3. 在「Create table」對話方塊的「Source」區段中,執行下列操作:

      1. 在「Create table from」(使用下列資料建立資料表) 部分,選取「Existing table/view」(現有資料表/檢視畫面)
      2. 在「Project」部分,輸入來源資料表或檢視表所在的專案。
      3. 針對「Dataset」(資料集),請輸入來源資料表或檢視表所在的資料集。
      4. 在「View」中,輸入要複製的來源資料表或檢視畫面。如果您選擇檢視表,該檢視表必須是已授權的檢視表,否則用於產生該檢視表的所有資料表都必須位於檢視表的資料集中。
    4. 選用:在「本機 materialized view 過時程度上限」中,輸入本機 materialized view 的 max_staleness

    5. 在「Create table」對話方塊的「Destination」區段中,執行下列操作:

      1. 在「Project」部分,輸入要建立物化檢視表複本的專案。
      2. 在「Dataset」(資料集) 中,輸入要建立物化檢視表副本的資料集。
      3. 在「備用資源 materialized view 名稱」中,輸入備用資源的名稱。
    6. 選用:為具現檢視畫面複本指定標記進階選項。如果您未為 本機 Materialized View 資料集指定資料集,系統會在來源資料所在的專案和地區中自動建立資料集,並命名為 bq_auto_generated_local_mv_dataset。如果您未指定 本機 Materialized View 名稱,系統會在來源資料所在的專案和區域中自動建立一個,並提供前置字串 bq_auto_generated_local_mv_

    7. 點選「建立資料表」。

    系統會建立新的本機實體檢視表 (如果未指定),並在來源資料集中授權。接著,系統會在目的地資料集中建立 materialized view 備份。

    SQL

    1. 在您建立的資料集中,針對基礎資料表建立 materialized view。您也可以在 Amazon S3 區域中的不同資料集中建立已具體化的檢視畫面。
    2. 針對包含建立具體化檢視表的查詢所用來源資料表的資料集,授權具體化檢視表
    3. 如果您為來源資料表設定手動中繼資料快取重新整理作業,請執行 BQ.REFRESH_EXTERNAL_METADATA_CACHE 系統程序來重新整理中繼資料快取。
    4. 執行 BQ.REFRESH_MATERIALIZED_VIEW 系統程序,重新整理已具象化檢視畫面。
    5. 使用 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`

    建立了具象化檢視畫面副本後,複製程序會輪詢來源具象化檢視畫面是否有變更,並將資料複製到具象化檢視畫面副本,並依 replication_interval_secondsmax_staleness 選項指定的間隔時間重新整理資料。如果您在第一次補充作業完成前查詢副本,就會收到 backfill in progress 錯誤。第一次複製作業完成後,您就可以查詢實體檢視表副本中的資料。