分層儲存空間簡介

本頁面說明 Spanner 的分層儲存空間運作方式。這項功能支援 GoogleSQL 方言資料庫和 PostgreSQL 方言資料庫。

Spanner 分層儲存空間是全代管儲存空間功能,可讓您選擇將資料儲存在固態硬碟 (SSD) 或一般硬碟 (HDD)。預設情況下,如果未使用分層儲存空間,資料會儲存在 SSD 儲存空間。視資料的使用或存取頻率而定,您或許可以考慮使用分層儲存空間,並將資料儲存在 SSD 和 HDD 儲存空間中。

  • 在大多數情況下,SSD 儲存空間是效能最高 (每秒查詢次數較多) 且最具成本效益的選擇。您應使用這個類別儲存寫入和讀取總處理量高的現用資料,以及需要低延遲資料存取的資料。
  • 如果資料集龐大、對延遲不敏感、不常存取,或是儲存空間成本是重要考量因素,有時適合使用 HDD 儲存空間

使用分層儲存空間,您就能同時享有 SSD 儲存空間的優勢 (支援高效能的現用資料),以及 HDD 儲存空間的優勢 (支援不常存取的資料,且費用較低)。

選擇 SSD 或 HDD 儲存空間

下表列出 SSD 和 HDD 儲存空間的異同之處。如有疑問,建議選擇 SSD 儲存空間。

SSD 儲存空間 HDD 儲存空間
目標用途 需要高讀寫處理量和低延遲資料存取的資料 大型資料集 (對延遲不敏感或不常存取)
每個節點的預期處理量
區域設定
最多每秒讀取 22,500 次
最多每秒寫入 3,500 次
最多每秒讀取 1,500 次
最多每秒寫入 3,500 次
每個節點的預期處理量
雙區域和多區域設定
每個地區最多每秒查詢 15,000 次
最多每秒寫入 2,700 次
每個區域最多 1,000 QPS 的讀取量
最多 2,700 QPS 的寫入量
支援的作業 讀取、寫入、更新及刪除 讀取、寫入、更新及刪除

使用處理量最佳化寫入,將寫入處理量提升至超出表格中的數字。詳情請參閱「成效總覽」。

優點

透過分層儲存空間,您可以使用 SSD 和 HDD 儲存空間,享有下列優點:

  • 大幅降低總擁有成本:HDD 儲存空間可做為低成本選項,用於儲存對延遲不敏感或不常存取的大型資料集。
  • 管理容易:提供全代管分層服務,不必處理額外管道和分割邏輯的複雜性。
  • 一致的整合式體驗:提供整合式資料存取權,以及熱資料和 (可變動) 冷資料的單一指標集
  • 提升效能:將資料整理到不同的區域群組,提供跨資料欄的資料區域性和隔離性,藉此提升查詢效能。同一區域群組中的資料會儲存在實體上相近的位置。

分層儲存空間的運作方式

根據預設,建立新執行個體時,資料只會儲存在 SSD 儲存空間。同樣地,現有執行個體中的資料也只會儲存在 SSD 儲存空間。

如果您選擇使用分層儲存空間將部分資料儲存在硬碟儲存空間中,則必須建立區域群組,用於定義結構定義中資料的分層儲存空間政策。建立區域群組時,您可以定義儲存空間類型,即 ssdhdd。您也可以選擇定義資料在移至 HDD 儲存空間前,於 SSD 儲存空間的存放時間長度。指定時間過後,Spanner 會在正常壓縮週期內將資料遷移至 HDD 儲存空間,通常會在指定時間後的七天內完成。這就是所謂的「以存在時間為準的分層儲存空間政策」。使用以時間為準的階層式儲存空間政策時,資料必須在 SSD 上儲存至少一小時,才會移至 HDD 儲存空間。

定義區域群組後,您可以在建立資料表時,於資料庫、資料表、資料欄或次要索引層級設定分層儲存空間政策。分層儲存空間政策會決定資料的儲存方式和位置。如需操作說明,請參閱「建立及管理地區群組」。

備份與還原

您可以使用 Spanner 備份來備份及還原資料。 備份內容包含所有儲存空間結構定義資訊,包括INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS,其中指定每個地區群組的儲存空間類型。如要將含有區域群組的備份檔還原至新執行個體,目的地執行個體必須使用 Spanner Enterprise 版或 Spanner Enterprise Plus 版。

Data Boost

您可以使用 Spanner Data Boost 存取 SSD 或 HDD 儲存空間中的資料。查詢 HDD 上的資料時,會使用執行個體的 HDD 磁碟負載容量,這是運算容量的一部分。

搜尋索引

全文搜尋向量索引會沿用資料庫物件上設定的區域性群組。

觀測能力

分層儲存空間提供下列可觀測性功能。

Cloud Monitoring 指標

Spanner 提供下列指標,協助您使用 Cloud Monitoring 監控分層儲存空間用量和資料:

  • spanner.googleapis.com/instance/storage/used_bytes (儲存空間總量):顯示儲存在 SSD 和 HDD 儲存空間的資料總位元組數。
  • spanner.googleapis.com/instance/storage/combined/limit_bytes:顯示 SSD 和 HDD 的總儲存空間上限。
  • spanner.googleapis.com/instance/storage/combined/limit_bytes_per_processing_unit: 顯示每個處理單元的 SSD 和 HDD 儲存空間總限制。
  • spanner.googleapis.com/instance/storage/combined/utilization:顯示 SSD 和 HDD 的總儲存空間用量,並與總儲存空間上限進行比較。
  • spanner.googleapis.com/instance/disk_load:以百分比顯示硬碟使用量。如果執行個體的硬碟磁碟負載達到 100%,延遲時間就會大幅增加。

如果現有查詢會依 storage_class:ssd 篩選現有指標,您必須移除篩選器,才能查看硬碟用量。

如要進一步瞭解如何監控 Spanner 資源,請參閱「透過系統洞察資訊監控執行個體」和「透過 Cloud Monitoring 監控執行個體」。

資訊結構定義

INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS 包含 Spanner 資料庫中的區域群組和選項清單。其中包含default地區群組的資訊。詳情請參閱 locality_group_options (適用於 GoogleSQL 方言資料庫)locality_group_options (適用於 PostgreSQL 方言資料庫)

內建統計資料表

使用分層儲存空間的資料庫可使用下列內建統計資料表:

  • SPANNER_SYS.TABLE_SIZES_STATS_1HOUR:顯示資料庫中每個資料表的 HDD 和 SSD 儲存空間用量。
  • SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR:顯示資料庫中每個地區群組的 HDD 和 SSD 儲存空間用量。

詳情請參閱「資料表大小統計資料」。

查詢統計資料和讀取統計資料表包含下列與分層儲存空間相關的資料欄:

  • AVG_DISK_IO_COST:這項查詢的平均費用,以 Spanner HDD 磁碟負載表示。您可以使用這個值,比較在資料庫中執行的讀取作業之間,相對的硬碟 I/O 費用。值越高表示您使用的 HDD 磁碟負載越多,查詢速度可能比在 SSD 上執行時慢。此外,如果硬碟磁碟負載達到容量上限,查詢效能可能會進一步受到影響。

詳情請參閱「查詢統計資料」和「讀取統計資料」。

定價

使用分層儲存空間不會產生額外費用,系統會根據執行個體使用的運算資源量和資料庫使用的儲存空間量,按照標準 Spanner 定價收費。儲存在 SSD 和 HDD 的資料會分別按照各自的儲存空間費率計費。在 SSD 和 HDD 儲存空間之間移動資料時,不會產生費用。查詢硬碟上的資料時,會使用執行個體的 HDD 磁碟負載容量,這屬於運算容量定價的一部分。詳情請參閱 Spanner 定價

後續步驟