建立及管理持續具體化檢視表
本文說明如何在 Bigtable 中建立及執行連續具體化檢視區塊的作業。閱讀本文前,請先參閱「持續性具體化檢視區塊」的總覽。
您可以使用 Google Cloud CLI、 Google Cloud 控制台中的 Bigtable Studio 查詢編輯器,或適用於 Java 和 Go 的 Bigtable 用戶端程式庫,建立持續具體化檢視區塊。
事前準備
如果您打算使用 gcloud CLI,請按照下列步驟操作:
-
安裝 Google Cloud CLI。
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 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 查詢」。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
選取執行個體。
在導覽窗格中,按一下「Bigtable Studio」。
按一下 開啟新分頁,然後選擇「編輯器」。
查詢編輯器隨即顯示,請編寫查詢。如果查詢是有效的 SQL,系統會顯示「有效」訊息。
選用:如要以 SQL 樣式設定陳述式格式,請按一下「格式」。
按一下「執行」。查詢結果會顯示在「結果」表格中。
確認查詢內容正確無誤後,按一下「另存為」展開箭頭,然後選擇「另存為具體化檢視表」。
在「儲存具體化檢視」對話方塊中,輸入檢視名稱,然後按一下「儲存」。
如要進一步瞭解如何使用查詢編輯器,請參閱「使用 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:要更新的持續具體化檢視區塊專屬 IDINSTANCE:包含持續性 materialized view 的執行個體 IDDELETION_PROTECTION:true或false
刪除持續性具體化檢視畫面
您可以刪除未啟用刪除保護機制的連續具體化檢視區塊。請注意,初始化後即無法復原。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
從清單中選取執行個體。
在導覽窗格中,按一下「Bigtable Studio」。
展開「具體化檢視表」。
找到要刪除的檢視畫面,然後依序點選旁邊的「more_vert」more_vert動作選單和「Delete」(刪除)。
gcloud
如要刪除連續具體化檢視區塊,請使用 gcloud bigtable materialized-views delete 指令:
gcloud bigtable materialized-views delete VIEW \
--instance=INSTANCE
更改下列內容:
VIEW:要刪除的連續具體化檢視區塊專屬 IDINSTANCE:包含持續性具體化檢視區塊的執行個體 ID
取得持續性 materialized view 清單
您可以查看執行個體的持續性 materialized view 清單。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
從清單中選取執行個體。
在導覽窗格中,按一下「Bigtable Studio」。系統會顯示持續性 materialized view 清單。
選用:系統會列出執行個體中的前 10 個檢視畫面。如要查看另外 10 個,請按一下「顯示更多」。
gcloud
如要列出執行個體的所有連續具體化檢視區塊,請使用 gcloud bigtable materialized-views list 指令。
gcloud bigtable materialized-views list --instance=INSTANCE
將 INSTANCE 替換為執行個體 ID。