建立及管理持續具體化檢視表

本文說明如何在 Bigtable 中建立及執行連續具體化檢視區塊的作業。閱讀本文前,請先參閱「持續性具體化檢視區塊」的總覽。

您可以使用 Google Cloud CLI、 Google Cloud 控制台中的 Bigtable Studio 查詢編輯器,或適用於 Java 和 Go 的 Bigtable 用戶端程式庫,建立持續具體化檢視區塊。

事前準備

如果您打算使用 gcloud CLI,請按照下列步驟操作:

  1. 安裝 Google Cloud CLI。

  2. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  3. 執行下列指令,初始化 gcloud CLI:

    gcloud init

如果 gcloud CLI 傳回 Method not found 訊息,請再次執行 gcloud auth login 指令。

必要的角色

如要取得建立及管理持續具體化檢視區塊所需的權限,請要求管理員授予您執行個體的 Bigtable 管理員 (roles/bigtable.admin) 角色。否則,請視要執行的作業,在執行個體層級要求下列權限:

  • 建立:bigtable.materializedViews.create
  • 更新狀態:bigtable.materializedViews.update
  • 刪除:bigtable.materializedViews.delete
  • 清單:bigtable.materializedViews.list

如要建立連續具體化檢視區塊,您也必須具備來源資料表的至少 bigtable.tables.readRows 權限。

如要查看所有可用的角色和權限,請參閱「使用 IAM 控管 Bigtable 存取權」。

建立持續性具體化檢視表

建立持續性具體化檢視區塊前,請先執行下列操作:

  • 選用:最佳做法是為執行個體中的叢集啟用自動調度資源,確保叢集在 Bigtable 處理及同步處理持續具體化檢視區塊時,能夠視需要擴充資源,並處理任何額外的儲存空間用量。
  • 選用:決定是否要讓所有叢集都能使用持續具體化檢視區塊,或是將處理和查詢作業限制在單一叢集。詳情請參閱「非確定性 SQL 函式」。
  • 找出您有權讀取的 Bigtable 資料表,做為連續具體化檢視區塊的來源。
  • 準備定義持續性 materialized view 的 SQL 查詢。如需查詢規定,請參閱「持續性 materialized view 查詢」。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

  2. 選取執行個體。

  3. 在導覽窗格中,按一下「Bigtable Studio」。

  4. 按一下 開啟新分頁,然後選擇「編輯器」。

    1. 查詢編輯器隨即顯示,請編寫查詢。如果查詢是有效的 SQL,系統會顯示「有效」訊息。

    2. 選用:如要以 SQL 樣式設定陳述式格式,請按一下「格式」。

    3. 按一下「執行」。查詢結果會顯示在「結果」表格中。

    4. 確認查詢內容正確無誤後,按一下「另存為」展開箭頭,然後選擇「另存為具體化檢視表」。

  5. 在「儲存具體化檢視」對話方塊中,輸入檢視名稱,然後按一下「儲存」。

    如要進一步瞭解如何使用查詢編輯器,請參閱「使用 Bigtable Studio 管理資料」。

gcloud

如要建立連續具體化檢視區塊,請使用 gcloud bigtable materialized-views create 指令:

    gcloud bigtable materialized-views create VIEW \
            --instance=INSTANCE --query=QUERY

更改下列內容:

  • VIEW:持續 materialized view 的專屬 ID。查詢連續具體化檢視表時,您會使用這個 ID 做為資料表 ID。
  • INSTANCE:要建立連續 materialized view 的執行個體 ID。必須與來源資料表為相同執行個體。
  • QUERY:定義持續增補 materialized view 的有效 SQL 陳述式。

選用:啟用防刪除功能

如要為持續性 materialized view 啟用防刪除功能,請在指令中附加 --deletion-protection=DELETION_PROTECTION。將 DELETION_PROTECTION 替換為 true 或 false。

選用:建立僅限單一叢集的檢視畫面

根據預設,Bigtable 會在執行個體的所有叢集中,複製連續具體化的檢視區塊。如要只保留特定叢集中的檢視區塊,請使用 CLUSTER_ATTRIBUTE 定義檢視區塊,並傳遞 --ignore-warnings 旗標:

gcloud bigtable materialized-views create VIEW \
  --instance=INSTANCE \
  --query="SELECT ... WHERE CLUSTER_ATTRIBUTE('cluster_id') = 'CLUSTER_ID'" \
  --ignore-warnings

更改下列內容:

  • VIEW:持續 materialized view 的專屬 ID。查詢連續具體化檢視表時,您會使用這個 ID 做為資料表 ID。
  • INSTANCE:要建立連續 materialized view 的執行個體 ID。必須與來源資料表為相同執行個體。
  • CLUSTER_ID:要維護檢視區塊的叢集 ID。

由於 CLUSTER_ATTRIBUTE 會在叢集之間產生不同的結果,因此您必須加入 --ignore-warnings 旗標,確認這些差異。如要進一步瞭解查詢語法和規定,請參閱「將檢視畫面隔離至單一叢集」。

查詢持續性 materialized view

持續性具體化檢視區處於啟用狀態後,您可以使用 Google Cloud 控制台中的 Bigtable Studio,或支援的用戶端程式庫,查詢該檢視區,方法與查詢其他資料表相同。如要進一步瞭解查詢語法和規定,請參閱「持續具體化檢視查詢」。

如要在初始填入完成前測試及查詢檢視區塊,請使用 @{allow_incomplete_view=true} 查詢提示。詳情請參閱「在初始填入期間讀取資料」。

更新持續性 materialized view

您可以更新持續性 materialized view 的防刪除功能。您無法更新定義持續增補 materialized view 的 SQL 查詢;如要修改查詢,請刪除持續增補 materialized view,然後建立包含變更的新查詢。

控制台

您無法在控制台中更新持續性 materialized view。 請改用 gcloud CLI。

gcloud

如要啟用或停用連續 materialized view 的防刪除功能,請使用 gcloud bigtable materialized-views update 指令。

gcloud bigtable materialized-views update VIEW \
        --instance=INSTANCE --deletion-protection=DELETION_PROTECTION

更改下列內容:

  • VIEW:要更新的持續具體化檢視區塊專屬 ID
  • INSTANCE:包含持續性 materialized view 的執行個體 ID
  • DELETION_PROTECTION:true 或 false

刪除持續性具體化檢視畫面

您可以刪除未啟用刪除保護機制的連續具體化檢視區塊。請注意,初始化後即無法復原。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

  2. 從清單中選取執行個體。

  3. 在導覽窗格中,按一下「Bigtable Studio」。

  4. 展開「具體化檢視表」。

  5. 找到要刪除的檢視畫面,然後依序點選旁邊的「more_vert」more_vert動作選單和「Delete」(刪除)。

gcloud

如要刪除連續具體化檢視區塊,請使用 gcloud bigtable materialized-views delete 指令:

gcloud bigtable materialized-views delete VIEW \
      --instance=INSTANCE

更改下列內容:

  • VIEW:要刪除的連續具體化檢視區塊專屬 ID
  • INSTANCE:包含持續性具體化檢視區塊的執行個體 ID

取得持續性 materialized view 清單

您可以查看執行個體的持續性 materialized view 清單。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

  2. 從清單中選取執行個體。

  3. 在導覽窗格中,按一下「Bigtable Studio」。系統會顯示持續性 materialized view 清單。

  4. 選用:系統會列出執行個體中的前 10 個檢視畫面。如要查看另外 10 個,請按一下「顯示更多」。

gcloud

如要列出執行個體的所有連續具體化檢視區塊,請使用 gcloud bigtable materialized-views list 指令。

gcloud bigtable materialized-views list --instance=INSTANCE

將 INSTANCE 替換為執行個體 ID。

後續步驟