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 介面。
  • 如果掃描結果缺少選擇性篩選器,改善幅度可能較小。

後續步驟