資料表和檢視表

在 Bigtable 中,您可以將資料儲存在資料表中,並建立多種資料表檢視畫面。您使用的檢視畫面類型取決於您的用途。

資料表

Bigtable 資料表是經過排序的鍵/值對應關係,可將資料儲存在資料列和資料欄中。每個資料列都由單一專屬的資料列索引鍵建立索引。彼此關聯的資料欄通常會分組為「資料欄系列」

Bigtable 具有彈性的資料模型,且資料表稀疏。也就是說,如果資料列中未使用某個資料欄,系統就不會儲存該資料欄的資料。您不需要像關聯式資料庫一樣,為未使用的資料欄儲存 NULL 值。在 Bigtable 資料表中,某個資料列可能只有一個資料欄,而旁邊的資料列則有 100 個資料欄。

在資料列中,一個資料欄可包含多個儲存格,每個儲存格都以四元組 (資料列索引鍵、資料欄系列、資料欄限定詞、時間戳記) 識別。在資料欄中儲存多個儲存格,可記錄該資料列和資料欄的儲存資料歷來變化。

Bigtable 資料表不支援聯結,且僅支援單一資料列內的交易。

資料表是執行個體層級的資源,會自動複製到執行個體中的每個叢集。資料保留時間是透過在資料欄系列層級設定的垃圾收集政策控管。

詳情請參閱「Bigtable 總覽」和「結構定義設計最佳做法」。

瀏覽次數

Bigtable 支援三種資料表檢視畫面:邏輯檢視畫面、 持續性 materialized view 和授權 view。您可以透過檢視表與特定使用者和群組共用資料表資料,而不必授予基礎來源資料的存取權。

邏輯檢視表

邏輯檢視表 (通常簡稱為「檢視表」) 是指 SQL 查詢的結果。這個檢視表會做為虛擬資料表,供其他 SQL 查詢使用。詳情請參閱「建立及管理邏輯檢視區塊」。

持續性 materialized view

持續性具體化檢視區塊是透過對 Bigtable 資料表持續執行 SQL 查詢所建立。Bigtable 會根據查詢輸出內容建立新資料表,並與來源資料表保持同步。

持續性 materialized view 有助於提升查詢效能。新資料表 (即連續具體化檢視區塊) 的結構定義與來源資料表不同,其中包含預先匯總或轉換的資料,可針對不同查詢進行最佳化,而非來源資料表使用的查詢。

持續性具體化檢視表為唯讀。系統會針對持續具體化檢視區塊的儲存空間,以及建立第二個資料表、與來源資料表保持同步,以及複製資料表所進行的處理作業向您收費。

詳情請參閱「持續具體化檢視區塊」。

授權檢視表

授權檢視表是資料表檢視表,可設定為只包含特定資料表資料,並單獨授予存取權,不必與來源資料表相同。授權檢視表是由 JSON 格式的定義檔所定義。

與持續性具體化檢視區塊或邏輯檢視區塊不同,Bigtable 授權檢視區塊可用於控管讀取和寫入權限。

如果您在 Bigtable 資料表中儲存多位客戶的資料,並希望只授予每位客戶存取權,讓他們只能存取包含自己資料的資料表子集,授權 view 就非常實用。

授權檢視不會產生額外儲存費用。

詳情請參閱授權檢視表總覽

比較

下表提供更多資訊,說明 Bigtable 資料表檢視區塊之間的差異。

邏輯檢視畫面 持續性 materialized view 授權觀看次數
結構 代表 SQL 查詢結果的虛擬資料表 以來源資料表為基礎的唯讀資料表 資料表子集
定義 SQL 查詢 SQL 查詢 JSON 定義檔案
與來源資料表保持一致 查詢執行時保持一致 最終一致性 查詢執行時保持一致
查詢選項 必須使用 SQL SQL 或 Bigtable Data API Bigtable Data API
可寫入
儲存空間 資料仍會保留在來源資料表中 資料經過複製、彙整或轉換後,會儲存在新的唯讀資料表中 資料仍會保留在來源資料表中
使用費 運算處理作業,執行查詢 同步處理時的運算處理、儲存空間費用 運算處理作業,執行查詢

後續步驟