建立及管理邏輯檢視區塊

在 Bigtable 中,邏輯檢視區塊是 SQL 查詢的結果,可做為虛擬資料表,供其他 SQL 查詢使用。資料仍保留在來源資料表中。

本文說明邏輯檢視畫面,以及如何建立及對其執行作業。如要與持續性具體化檢視表和授權檢視表比較,請參閱資料表和檢視表

邏輯檢視畫面可讓您對 Bigtable 資料執行下列操作:

  • 避免重複查詢:您可以在邏輯檢視區塊中儲存及演進資料欄對應和轉換邏輯,其他邏輯檢視區塊可以使用這些邏輯,不必複製及貼上邏輯或瞭解邏輯。
  • 與專為讀取關聯式資料庫而設計的系統整合: 邏輯檢視畫面可讓您讀取 Bigtable 資料,就像讀取關聯式資料庫資料表或 Cassandra 資料表一樣。
  • 針對多個資料表執行相同的邏輯檢視畫面:修改 FROM 子句後,您可以使用相同的檢視畫面,查詢 Bigtable 執行個體中的任何資料表。
  • 提供一致的介面:即使來源表格有所變更,應用程式仍可使用邏輯檢視畫面。

邏輯檢視區塊是執行個體層級的資源。您可以使用 Google Cloud CLI 或 Google Cloud 控制台中的 Bigtable Studio 查詢編輯器,建立邏輯檢視區塊。如要查詢邏輯檢視區塊,可以使用 Bigtable Studio 查詢編輯器,或任何支援 SQL 的 Bigtable 用戶端程式庫

邏輯檢視畫面具有下列特性:

  • 必須使用 GoogleSQL for Bigtable 支援的 SQL 功能
  • 唯讀
  • 必須使用 SQL 讀取,而非呼叫 ReadRows
  • 使用定義者權限。即使您沒有從來源資料表讀取的權限,只要有從邏輯檢視區塊讀取的權限,就能查詢該檢視區塊。

您用來定義邏輯檢視區塊的資料列索引鍵、資料欄限定詞和資料欄值,都會視為服務資料。因此,請勿使用含有私密資訊的資料列索引鍵、資料欄限定詞或資料欄值建立邏輯檢視區塊。如要瞭解服務資料的處理方式,請參閱Google Cloud 隱私權聲明

事前準備

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

  1. Install the Google Cloud CLI.

  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init

必要的角色

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

  • 建立:bigtable.logicalViews.create
  • 更新狀態:bigtable.logicalViews.update
  • 刪除:bigtable.logicalViews.delete
  • 清單:bigtable.logicalViews.list
  • 說明:bigtable.logicalViews.get

如要建立邏輯檢視表,您也必須至少具備來源資料表的 bigtable.table.readRows 權限。

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

建立邏輯檢視畫面

主控台

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

    開啟執行個體清單

  2. 選取執行個體。

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

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

    1. 在查詢編輯器中編寫查詢。如果查詢是有效的 SQL,則會顯示「有效」訊息。

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

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

    4. 確認查詢內容正確無誤後,按一下「儲存」,然後選擇「儲存檢視表」

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

gcloud

如要建立邏輯檢視區塊,請使用 gcloud bigtable logical-views create 指令。

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

更改下列內容:

  • VIEW:新邏輯檢視區塊的 ID,最多 128 個字元。這個 ID 在執行個體中不得與資料表 ID 和檢視區塊 ID 重複。
  • QUERY:適用於 Bigtable 查詢的有效 GoogleSQL
  • INSTANCE:要在其中建立邏輯檢視區塊的執行個體 ID

選用:

  • 如要防止刪除邏輯檢視區塊,請在指令中附加 --deletion-protection 標記。如果未套用這項設定,系統可能會刪除邏輯檢視畫面。您也可以附加 --no-deletion-protection,明確允許刪除邏輯檢視區塊。詳情請參閱本文件的「修改刪除保護機制」一節。

更新邏輯檢視區塊

主控台

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

    開啟執行個體清單

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

  3. 在導覽窗格中,按一下「Bigtable Studio」。檔案總管會顯示檢視畫面清單。

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

  5. 在要更新的檢視區塊旁,按一下 more_vert 動作選單,然後點選「查看定義」

  6. 修改查詢。

  7. 按一下「執行」

  8. 確認結果窗格顯示的資料應納入檢視畫面後,請按一下「另存為」

  9. 在對話方塊中,輸入您修改的檢視區塊 ID。

    對話方塊會顯示訊息,警告您即將覆寫現有檢視區塊。

  10. 按一下 [儲存]

gcloud

如要更新邏輯檢視區,以執行其他查詢,請使用 gcloud bigtable logical-views update 指令。

gcloud bigtable logical-views update VIEW  \
    --instance=INSTANCE --query=QUERY

更改下列內容:

  • VIEW:要更新的邏輯檢視區塊 ID
  • QUERY:有效的 GoogleSQL 查詢
  • INSTANCE:包含邏輯檢視區塊的例項 ID

如要更新邏輯檢視區塊以修改防刪除設定,請參閱本文的「修改防刪除設定」一節。

刪除邏輯檢視畫面

這項操作無法復原。

如果邏輯檢視區已啟用防刪除功能,您就無法刪除該檢視區。如要刪除已啟用防刪除功能的邏輯檢視區塊,請更新邏輯檢視區塊以停用防刪除功能。詳情請參閱本文件的「修改刪除保護機制」一節。

主控台

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

    開啟執行個體清單

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

  3. 在導覽窗格中,按一下「Bigtable Studio」。檔案總管會顯示檢視畫面清單。

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

  5. 展開「Views」(檢視畫面)

  6. 找到要刪除的檢視畫面,然後按一下旁邊的 more_vert 動作選單,再按一下「刪除」

gcloud

如要刪除邏輯檢視區塊,請使用 gcloud bigtable logical-views delete 指令。

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

更改下列內容:

  • VIEW:要更新的邏輯檢視區塊 ID
  • INSTANCE:包含邏輯檢視區塊的例項 ID

取得執行個體的邏輯檢視區塊清單

您可以查看執行個體的邏輯檢視區塊清單。

主控台

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

    開啟執行個體清單

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

  3. 在導覽窗格中,按一下「Bigtable Studio」。檔案總管會顯示檢視畫面清單。

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

gcloud

如要查看執行個體的邏輯檢視區塊清單,請使用 gcloud bigtable logical-views list 指令。

gcloud bigtable logical-views list --instance=INSTANCE

INSTANCE 替換為執行個體 ID。

描述邏輯檢視畫面

如要取得邏輯檢視區塊的詳細資料,請使用 gcloud bigtable logical-views describe 指令。

  gcloud bigtable logical-views describe VIEW \
      --instance=INSTANCE

終端機顯示的詳細資料類似於下列內容:

  createTime: '2025-03-07T19:49:56.316578Z'
  etag: W/"/v1/17919275593532352351"
  name: projects/my-project/instances/my-instance/logicalViews/my-view
  query: SELECT street FROM addresses
  updateTime: '2025-03-07T19:49:56.316578Z'
  deletion_protection: true

修改防刪除設定

防刪除功能可防止刪除邏輯檢視區塊。如要啟用或停用邏輯檢視區的防刪除功能,您必須具備必要權限。詳情請參閱本文的「必要角色」一節。

gcloud

如要為邏輯檢視區啟用刪除保護功能,請執行 gcloud bigtable logical-views update 指令:

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

如要停用邏輯檢視區塊的刪除保護機制,請執行下列指令:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --no-deletion-protection

更改下列內容:

  • VIEW:邏輯檢視區塊的 ID,最多 128 個字元。這個 ID 在執行個體中不得與其他資料表和檢視區塊 ID 重複。
  • INSTANCE:要更新邏輯檢視區塊的執行個體 ID。

後續步驟