Spanner 資料欄引擎總覽

本頁面提供 Spanner 資料欄引擎總覽,並說明如何使用該引擎。

營運資料庫通常會擷取、轉換及載入 (ETL) 資料至 OLAP 系統,以供分析。這個系統通常是資料倉儲的一部分。Spanner 已經透過Data Boost 分隔分析運算資源,確保交易穩定性。

資料欄引擎是一種儲存技術,與以批次為基礎的掃描相比,分析系統使用這項技術可加快掃描速度。Spanner 資料欄引擎可讓您對最新的作業資料執行分析,效能大幅提升。Spanner 資料欄引擎可將掃描效能提升高達 200 倍,讓您無須執行 ETL,同時維持強烈一致性。

Spanner 的 Ressi 格式採用跨分區屬性 (PAX) 的直向配置,可在資料區塊內有效率地掃描。不過,這種格式會將資料列的所有資料欄放在指定區塊中,方便快速查詢單一資料列。與 Ressi 不同,Spanner 的資料欄引擎會將一連串的區塊專用於單一資料欄。這種做法更適合循序掃描,因為 Spanner 只需要讀取查詢中參照的資料欄。

Spanner 會在背景建構資料欄表示法 (做為壓縮程序的一部分),並在查詢時自動將表示法與最新更新合併,以提供同步一致性。如果查詢無法從直欄式儲存空間獲益,仍可繼續使用 PAX。

下列工作負載適合使用資料欄引擎:

  • 作業報表會從最新的作業資料中,擷取即時的商業智慧資訊。
  • 透過互動式延遲,提供強大的數據分析資訊主頁和自訂向下切入功能。
  • 聯邦式分析功能可將 Spanner 和其他來源的資料無縫整合至 BigQuery。

Spanner 執行個體備份不包含直欄格式。

使用資料欄引擎的最佳做法

本節說明使用資料欄引擎的最佳做法。

大型掃描最佳化

資料欄引擎會掃描大量資料,並對查詢進行最佳化。如果是較小的資料掃描或查詢,或查詢的 LIMIT 子句很快就能滿足條件,則以列為基礎的掃描可能更有效率。

必要欄

如果您使用 SELECT *,Spanner 會從直欄式儲存空間讀取所有資料欄。為爭取最高成效,請只指定必要的資料欄。例如:SELECT column1, column2 FROM ...

找出效能瓶頸

資料欄引擎適合掃描繫結工作負載。如要找出受掃描作業限制的工作負載,請檢查「Table scan」(資料表掃描) 節點的查詢計畫,確認延遲程度是否偏高。如果查詢並非掃描繫結,請優先進行其他最佳化作業。如果最佳化作業使查詢受掃描限制,資料欄引擎稍後可提供優勢。

最佳資料欄涵蓋範圍

在已包含資料的資料庫上啟用單欄式引擎後,Spanner 的自動壓縮程序會在背景將資料非同步轉換為單欄式儲存空間。如要瞭解查詢的效益,請查看查詢計畫中的資料欄讀取作業占比百分比

高流失率資料管理

更新或隨機插入作業的高寫入率可能會影響資料欄引擎的效能。使用直欄引擎對僅附加的工作負載影響最小。壓縮是背景程序,通常會持續多天,但如果資料庫大小大幅增加,壓縮程序可能會提早完成。或者,您也可以設計結構定義,在分割層級偏好僅限附加的寫入作業。詳情請參閱「在 Spanner 中針對依時間戳記排序的資料進行資料分割」。

定價

Spanner 資料欄引擎的計費依據為儲存空間用量。啟用 Spanner 欄狀引擎後,Spanner 會完成資料壓縮作業,此時儲存空間用量會增加,以納入新的欄狀表示法。資料欄引擎提供儲存空間指標,方便您監控儲存空間的影響。詳情請參閱資料欄式資料儲存空間指標

Spanner 欄狀引擎不會受到每個儲存格 8 個位元組的額外負荷影響。

試閱限制

  • 您必須使用明確提示,才能為直接向 Spanner 提出的查詢或使用 BigQuery EXTERNAL_QUERY 提出的查詢啟用直欄讀取作業。詳情請參閱「查詢資料欄資料」。
  • 資料欄引擎僅支援 GoogleSQL 介面。
  • 如果掃描結果缺少選擇性篩選器,改善幅度可能較小。

後續步驟