資料表和檢視表
在 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 |
可寫入 | 否 | 否 | 是 |
儲存空間 | 資料仍會保留在來源資料表中 | 資料經過複製、彙整或轉換後,會儲存在新的唯讀資料表中 | 資料仍會保留在來源資料表中 |
使用費 | 運算處理作業,執行查詢 | 同步處理時的運算處理、儲存空間費用 | 運算處理作業,執行查詢 |