使用支援的 Spanner 功能,透過 Spanner Omni 開發應用程式。雖然 Spanner Omni 與 Spanner 共用許多功能,但兩者在用戶端程式庫、指令列介面 (CLI) 和控制台功能方面有所不同。
支援的 Spanner 開發功能包括:
主要差異
雖然 Spanner Omni 適用於大部分的 Spanner 開發體驗,但下列領域有所不同:
支援的用戶端程式庫:Spanner Omni 支援 Java、Go 和 Python 用戶端程式庫。
指令列介面 (CLI):Spanner Omni CLI 是專用工具,與 Google Cloud CLI 不同。雖然語法類似,但執行指令時,您不需要提供
--instance旗標。控制台限制:Spanner Omni 控制台為唯讀,因此無法用來修改部署作業或資料庫。
下列 Spanner 功能和最佳做法適用於 Spanner Omni。
最佳做法與應用實例
請按照下列最佳做法和用途,為 Spanner Omni 設計及最佳化應用程式。
Spanner 做為遊戲資料庫: 運用 Spanner 的擴充性和一致性,打造遊戲後端。
SQL 最佳做法:盡量提升查詢效能和效率。大多數概念都適用於 Spanner Omni。由於 Spanner Omni 不支援分層儲存空間,因此時間戳記述詞下推等概念可能不完全適用。此外,Spanner Omni 沒有查詢計畫視覺化功能。
語言架構
將 Spanner Omni 與熱門語言架構整合:
Hibernate ORM
使用 Hibernate 物件關聯對應 (ORM),將 Java 物件對應至 Spanner Omni 資料表。如要瞭解詳情,請參考下列資源:
請參閱 Spanner 說明文件中的「整合 Hibernate ORM (PostgreSQL)」。
請參閱 Spanner 說明文件,瞭解如何編寫連線至 Spanner 的 Hibernate 應用程式。
GORM
將 Spanner Omni 與 GORM 整合,這是 Go 程式設計語言適用的物件關聯對應 (ORM) 工具。在 Go 應用程式中使用 GORM 的物件關聯對應功能。詳情請參閱下列文章:
請參閱 Spanner 說明文件中的「與 GORM (GoogleSQL) 整合」。
請參閱 Spanner 說明文件中的「與 GORM (PostgreSQL) 整合」。
交易和並行
Spanner Omni 支援下列交易管理功能:
交易總覽:瞭解讀寫和唯讀交易。
時間戳記界限:控制讀取作業的陳舊程度。如果是 Spanner Omni,您可以將版本保留期限 (
version_retention_period) 最多設為 30 天。在 Spanner 中,您可以將這項設定設為最多一週。瞭解 GoogleSQL 資料庫和 PostgreSQL 資料庫中的提交時間戳記。
TrueTime 與外部一致性:瞭解 Spanner 如何在部署作業中維持一致性。
隔離層級
瞭解 Spanner Omni 支援的不同隔離層級,確保資料一致性。
最佳化
運用這些技術,盡可能提升交易效能和處理量。
鎖定
瞭解如何使用明確鎖定功能,管理資料的並行存取權。
資料存取權和修改
使用標準 Spanner 方法存取及修改資料,包括用戶端程式庫、CLI 和 DML。
如要瞭解用戶端程式庫如何管理工作階段,請參閱「工作階段」。雖然基礎工作階段概念適用於 Spanner Omni,但它僅支援多工工作階段。
讀取資料
使用各種方法從 Spanner Omni 讀取資料,包括過時讀取和導向讀取。
修改資料
使用 DML、變異或 CLI 修改資料。
資料類型
Spanner Omni 支援下列資料類型,可代表應用程式的資料:
在 GoogleSQL 和 PostgreSQL 中使用陣列。
開發和測試
設定開發環境和應用程式行為,確保效能穩定可靠,並妥善處理錯誤。
串流輸出資料變更
Spanner 變更串流會近乎即時地追蹤資料庫變更,例如插入、更新和刪除。這些詳細資料由 DDL 管理,可擷取整個資料庫或特定資料表的主鍵和修訂時間戳記等詳細資料。Spanner 和 Spanner Omni 的功能幾乎相同,但 Spanner Omni 不支援 Dataflow。
詳情請參閱:
全文搜尋
使用 Spanner 全文搜尋 (FTS) 功能,在資料表中搜尋字詞、詞組或數字。FTS 會讀取最新提交的資料。
FTS 的主要功能包括:
如要使用 FTS,請在要搜尋的資料欄上建立搜尋索引。 Spanner 會將這些資料欄中的資料拆解為個別字詞。新增資料時,系統會立即更新索引。
FTS 搜尋功能提供標準文字比對以外的進階功能,例如:
Spanner 和 Spanner Omni 的 FTS 功能一致。
Spanner 中的全文搜尋差異
Spanner 支援 Spanner 中的核心 FTS 功能,但有下列差異:
Spanner Omni 不支援加強查詢模式。