Spanner Omni 總覽

Spanner Omni 是 Spanner 的隨處部署版本,可讓您在地端部署資料中心、公有雲 (例如 Google Cloud、Amazon Web Services (AWS)) 和筆記型電腦上,執行 Google 的分散式資料庫技術。透過以 Paxos 為基礎的複製、自動分片和軟體定義的 TrueTime API,提供 Spanner 的核心功能,包括水平擴充能力、高可用性、ACID 一致性,以及強大的外部一致性。

Spanner Omni 整合關聯式、圖形、向量和鍵/值資料模型,並提供全文和作業分析功能。與 Spanner 相同,Spanner Omni 支援 GoogleSQL、PostgreSQL 和 Spanner Graph Language。您可以在各種環境中實現跨環境復原能力、應用程式可攜性,以及一致的開發堆疊。Spanner Omni 支援的部署選項包括:

  • 虛擬機器
  • Linux 容器
  • Kubernetes 叢集

主要功能與特色

Spanner Omni 提供下列功能:

  • 部署彈性:在 Linux 或 macOS 上執行 Spanner Omni。Spanner Omni 支援公有雲環境,例如(Google Kubernetes Engine (GKE) 和 Google Cloud 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 在單一機器上執行。 這種拓撲非常適合用於本機開發。 如果部署在單一伺服器設定中,且 vCPU 數量為四個或更少,即可不受限制地使用 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 磁碟空間

建議使用專屬固態硬碟 (SSD) 儲存空間,並採用 ext4 檔案系統。

連線與開發

如要連線至 Spanner Omni 並開發應用程式,請考慮使用下列工具:

  • 用戶端程式庫:您可以指定 Spanner Omni 端點,使用現有的 Java 和 Go 適用的 Spanner 用戶端程式庫。舉例來說,在 Java 中,請設定 setExperimentalHost("http://localhost:15000")。

  • PGAdapter:這個 Proxy 可讓現有的 PostgreSQL 應用程式使用標準 PostgreSQL 連線協定,連線至 Spanner Omni PostgreSQL 方言資料庫。

  • 診斷:專用的 spanner admin diagnostics create 指令會收集記錄、追蹤記錄和執行緒堆疊,以利排解問題。