Spanner Omni 是 Spanner 的可下載版本,可讓您在地端部署資料中心、公有雲和筆記型電腦上部署 Google 的分散式資料庫技術。這項服務採用以 Paxos 為基礎的複製、自動分片和軟體定義的 TrueTime API,提供 Spanner 的核心功能,包括水平擴充、高可用性、ACID 規範和嚴格的外部一致性。
Spanner Omni 整合了關聯式、圖形、向量和鍵/值資料模型,並提供全文和作業分析功能。與 Spanner 相同,Spanner Omni 支援 GoogleSQL、PostgreSQL 和 Spanner Graph Language。您可以跨環境達成復原能力、應用程式可攜性,以及在各種環境中保持一致的開發堆疊。Spanner Omni 支援的部署選項包括:
- 虛擬機器
- Linux 容器
- Kubernetes 叢集
Spanner Omni 的預覽版本包含 Spanner 的核心功能,但不含企業級安全性和資料保護功能。如要搶先體驗完整功能版本,請與 Google 聯絡。
主要功能與特色
Spanner Omni 提供下列功能:
部署彈性:在 Linux 或 macOS 上執行 Spanner Omni。Spanner Omni 支援公有雲環境,例如Google Cloud (Google Kubernetes Engine (GKE) 和 Cloud Storage) 和 Amazon Elastic Kubernetes Service (Amazon EKS) 和 Amazon Elastic Compute Cloud (Amazon EC2)、地端部署和筆電。
高擴充性:Spanner Omni 可自動將資料分片,並平衡分片,以實現讀取和寫入作業的彈性擴充。
高可用性:Spanner Omni 提供多種部署拓撲。Spanner Omni 提供多可用區和多叢集部署作業,在可用區或叢集發生故障時,可確保高可用性。
強大的外部一致性:Spanner Omni 使用軟體型 TrueTime,可在任何環境中部署,提供全域交易一致性。
互通多模型:Spanner Omni 支援多種資料模型 (關聯式、鍵/值、圖形、向量) 和功能 (全文搜尋、分析處理),並提供跨模型查詢,以及不同資料模型間符合 ACID 標準的交易。
熟悉介面:使用 Spanner CLI 與資料互動,包括用於互動式查詢的 SQL Shell。Spanner Omni 支援 GoogleSQL、PostgreSQL 方言和 GQL,方便您遷移現有應用程式。
部署拓撲
Spanner Omni 會使用地區、區域和伺服器的階層,定義部署設定。Spanner Omni 提供下列部署設定:
單一伺服器 - Spanner Omni 在單一機器上執行。 這個拓撲會在單一機器上執行,因此很適合用於本機開發。升級這個拓撲會導致停機。
單一可用區 (或可用區):所有 Spanner Omni 伺服器都屬於一個可用區。這項部署設定至少需要三部伺服器。為確保正常運作時間,這個拓撲的可用性目標較低,因為單一區域發生故障就可能導致服務中斷。
多區域 (或地區):Spanner Omni 會將伺服器分散到多個區域。所有區域都位於單一位置。如果是多區域部署,請至少使用三個區域。每個區域至少要有一部伺服器。建議在每個區域使用三部伺服器。相較於單一可用區部署作業,這項部署設定的可用性更高。
多叢集 (或多區域) - Spanner Omni 伺服器位於多個叢集的多個區域。如要達到高可用性,請在兩個以上的叢集中使用三個區域,並為每個區域設定三部以上的伺服器。
系統需求
如要發揮最佳效能,請使用下列伺服器部署作業的最低建議需求:
| 環境 | 作業系統或平台 | 硬體建議 |
|---|---|---|
| 地端部署 | Linux (RHEL 9、Ubuntu 22) | 每個 vCPU 4 GB RAM,20 GB 以上的磁碟空間 |
| 雲端 (Google Cloud 和 AWS) | VM 或 Kubernetes Pod | 每個 VM 或 Kubernetes Pod 4 個 vCPU、16 GB RAM |
| 開發人員 (筆電、桌機) | macOS (M1、M2、M3) | 4 GB RAM、10 GB 磁碟空間 |
建議使用 ext4 檔案系統的專用固態硬碟 (SSD) 做為儲存空間。
連線與開發
如要連線至 Spanner Omni 並開發應用程式,請考慮使用下列工具:
用戶端程式庫:您可以指定 Spanner Omni 端點,使用現有的 Java 和 Go 適用的 Spanner 用戶端程式庫。舉例來說,在 Java 中,請設定
setExperimentalHost("http://localhost:15000")。PGAdapter:這個 Proxy 可讓現有的 PostgreSQL 應用程式使用標準 PostgreSQL 連線協定,連線至 Spanner Omni PostgreSQL 方言資料庫。
診斷:專屬的
spanner admin diagnostics create指令會收集記錄、追蹤記錄和執行緒堆疊,以利進行疑難排解。