AlloyDB Omni 簡介

AlloyDB Omni 是可供下載的資料庫軟體套件,可讓您在自己管理的運算環境中,部署簡化版的 AlloyDB for PostgreSQL。AlloyDB Omni 和 Google Cloud上的全代管 AlloyDB 服務共用相同的核心元件。AlloyDB 使用雲端原生分離式儲存層,而 AlloyDB Omni 則部署在您選擇的儲存空間。

AlloyDB Omni 具備可攜性,因此可在許多環境中執行,包括:

  • 您的私人資料中心
  • 任何公有雲
  • 筆電
  • 雲端 VM 執行個體

除了標準 PostgreSQL,AlloyDB Omni 還提供多項強化功能,支援擴充性、可用性、可靠性、效能、AI 和自然語言。詳情請參閱「AlloyDB Omni additions to standard PostgreSQL」。

AlloyDB Omni 用途

AlloyDB Omni 非常適合下列情境:

  • 您需要可擴充的高效能 PostgreSQL 版本,但由於法規或資料主權要求,您必須在地端部署環境中執行。
  • 您需要一個資料庫,即使與網際網路中斷連線,也能繼續運作。
  • 您想從老舊資料庫遷移,但不想使用 AlloyDB for PostgreSQL 等全代管雲端服務。

主要功能與特色

  • 與 PostgreSQL 完全相容的資料庫伺服器。
  • 支援 AlloyDB AI,協助您使用營運資料建構企業級生成式 AI 應用程式。
  • 與 Google Cloud AI 生態系統整合,包括 Vertex AI Model Garden 和開放原始碼生成式 AI 工具。
  • 支援 AlloyDB for PostgreSQL 的自動駕駛功能,讓 AlloyDB Omni 自行管理及調整。Google Cloud

    舉例來說,AlloyDB Omni 支援自動記憶體管理,以及自動清理過時資料。

  • AlloyDB Omni 資料欄引擎,可將相關資料以記憶體中的資料欄格式保存,加快分析查詢、報表、混合型交易和分析處理 (HTAP) 工作負載的效能。

根據效能測試結果,AlloyDB Omni 處理交易工作負載的速度比標準 PostgreSQL 快 2 倍以上,處理分析查詢的速度最多快 100 倍。

AlloyDB Omni 部署選項

您可以透過下列任一部署選項安裝 AlloyDB Omni:

AlloyDB Omni 的部署選項

  • 使用容器的 AlloyDB Omni:獨立資料庫容器。在 Linux 系統上執行 AlloyDB Omni,並使用 SSD 儲存空間,且每個 CPU 至少有 8 GB 的記憶體。

  • 使用容器自動化調度管理工具的 AlloyDB Omni:Kubernetes 環境中容器的一部分。AlloyDB Omni Kubernetes 運算子是 Kubernetes API 的擴充功能,可讓您在多數符合 CNCF 規範的 Kubernetes 環境中執行 AlloyDB Omni。

    AlloyDB Omni 運算子可簡化基本資料庫作業,讓您自動執行單一或高可用性 (HA) 部署作業,以及備份、還原、容錯移轉和設定跨區域災難復原 (DR) 等第 2 天作業。

  • 使用 RPM 編排器部署 AlloyDB Omni (預先發布版):適用於 VM 或裸機伺服器的 Red Hat 套件管理員 (RPM) 部署作業。這個選項包含調度管理平台,可在非 Kubernetes 環境中自動部署及管理。可將類似雲端的彈性擴展至您選擇的基礎架構,不必使用 Docker 等容器化層。

  • 使用 RPM 的 AlloyDB Omni (預先發布版):可直接在 VM 或裸機中執行的獨立套件。使用 RPM 的 AlloyDB Omni 會直接在主機作業系統上,以一組整合軟體元件的形式執行。它使用標準 Linux 檔案系統進行儲存,讓您能沿用現有的儲存基礎架構和管理做法。

應用程式會連線至 AlloyDB Omni 資料庫並與之通訊,就像應用程式連線至標準 PostgreSQL 資料庫伺服器並與之通訊一樣。使用者存取權控管也依據 PostgreSQL 標準。

您可以使用資料庫標記設定 AlloyDB Omni 資料庫行為,包括記錄、清除和資料欄引擎。詳情請參閱「可用的 AlloyDB Omni 下載與安裝選項」。

以容器形式執行的 AlloyDB Omni

Google 會以容器形式發布 AlloyDB Omni,您可以使用 Docker 和 Podman 等容器執行階段執行。您也可以在 Kubernetes 環境中部署 AlloyDB Omni 容器,並自動執行許多基本作業。

在作業方面,容器具有下列優點:

  • 透明的依附元件管理:所有必要依附元件都會封裝在容器中,並由 Google 測試,確保與 AlloyDB Omni 完全相容。
  • 可攜性:AlloyDB Omni 可在不同環境中穩定運作。
  • 安全隔離:您可以選擇 AlloyDB Omni 容器在主體機器上可存取的項目。
  • 資源管理:您可以定義 AlloyDB Omni 容器要使用的運算資源量。
  • 無縫修補及升級:如要修補容器,請以新映像檔取代現有映像檔。

RHEL 環境中的 AlloyDB Omni

AlloyDB Omni 為 RHEL 環境提供兩種部署選項,視您的自動化和資源調度需求而定。

使用 RPM 的 AlloyDB Omni

RPM 部署選項 (預覽版) 是獨立的 Red Hat Package Manager (RPM) 安裝作業,適用於需要非容器化 AlloyDB Omni 資料庫的環境。這個選項支援 RHEL 9 和 Rocky Linux 9。

  • 直接整合 OS:以一組整合式軟體元件的形式,直接在主機作業系統 (OS) 上執行。
  • 現有儲存空間:使用標準 Linux 檔案系統 (ext4 和 xfs),支援現有儲存基礎架構和管理做法。
  • 簡單:非常適合單一執行個體設定,這類設定需要與主機 OS 深度整合,且不需要額外的自動化調度管理層。

RPM 自動調度管理工具

RPM 協調器部署選項 (搶先版) 使用的 RPM 套件與 AlloyDB Omni (使用 RPM) 相同,但新增了協調平台,可在非 Kubernetes 環境中自動管理。

  • 雲端般的彈性:將自動化功能擴展至地端部署基礎架構,處理啟動程序、容錯移轉和生命週期管理。
  • 自動化架構:與 Ansible 等熱門工具整合,讓團隊運用現有技能。您也可以使用專為此用途打造的指令列工具。
  • 企業功能:專為透過集中式叢集管理員支援高可用性 (HA) 和災難復原 (DR) 而設計。

資料備份與災害復原

AlloyDB Omni 具有持續備份和復原系統,可讓您根據可調整保留期限內的任何時間點,建立新的資料庫叢集。這樣一來,您就能在資料遺失時復原。

此外,AlloyDB Omni 還能視需求或定期建立及儲存資料庫叢集資料的完整備份。您可以隨時從備份還原至 AlloyDB Omni 資料庫叢集,其中包含建立備份時原始資料庫叢集的所有資料。

您可以在不同的資料中心建立次要資料庫叢集,進一步進行災難復原,實現跨資料中心複製。AlloyDB Omni 會將指定主要資料庫叢集的資料,非同步串流至每個次要叢集。如有需要,您可以將次要資料庫叢集升級為主要 AlloyDB Omni 資料庫叢集。

AlloyDB Omni 元件

AlloyDB Omni 包含兩組架構元件:PostgreSQL 元件 (含 AlloyDB Omni 強化功能) 和 AlloyDB Omni 專屬元件。

下圖顯示兩組元件,包括元件所在的基礎架構層,以及每個元件的功能。

AlloyDB Omni 架構,顯示 AlloyDB for PostgreSQL 專屬和 PostgreSQL 元件。

資料儲存

AlloyDB Omni 會將資料儲存在固定大小的頁面中,這些頁面會儲存在基礎檔案系統中。查詢需要存取資料時,AlloyDB Omni 會先檢查緩衝區集區。如果緩衝區集區中找不到包含必要資料的頁面,AlloyDB Omni 就會從檔案系統讀取必要頁面。

從緩衝區集區存取資料的速度,遠比從檔案系統讀取資料快。盡量擴大應用程式存取資料的緩衝區集區大小,是重要的考量因素。您也可以視需要新增超高速快取層,進一步提升查詢效能。

資源管理

AlloyDB Omni 採用自動動態記憶體管理機制,可讓緩衝區集區在設定的界限內,根據系統的記憶體需求動態擴增和縮減。因此不需要調整緩衝區集區大小。診斷效能問題時,請先考慮緩衝區集區命中率和讀取率等指標,判斷應用程式是否受益於緩衝區集區。如果不是,表示應用程式的資料集不適合緩衝區集區,您可能需要調整大小,改用記憶體較多的較大機器。

擷取、篩選、彙整、排序及投射資料的程序,都需要資料庫伺服器上的 CPU 資源。如要減少這個程序所需的 CPU 資源量,請盡量減少要操控的資料量。監控資料庫伺服器的 CPU 使用率,確保穩定狀態的使用率約為 70%。這個金額在伺服器上留有足夠的空間,可因應使用率尖峰或存取模式隨時間變化的情況。如果使用率接近 100%,會因程序排程和內容切換而產生額外負擔,並可能在系統的其他部分造成瓶頸。高 CPU 使用率是另一個重要指標,可做為決定機器規格的依據。

每秒輸入/輸出作業數 (IOPS) 是影響資料庫應用程式效能的重要因素,可衡量基礎儲存裝置每秒可為資料庫提供的輸入或輸出作業數。為避免超出資料庫儲存空間的 IOPS 上限,請盡量減少讀取和寫入儲存空間的次數。盡量增加緩衝區集區或快取層可容納的資料量。

資料欄引擎

內建的資料欄引擎可加快分析查詢處理速度,這類查詢通常會涉及完整資料表掃描、複雜的聯結和彙整。

  • 記憶體內資料欄儲存庫:內含所選資料欄的資料表和具體化檢視資料,並依據資料欄導向格式編排。根據預設,資料欄儲存空間會耗用 30% 的可用記憶體。如要變更資料欄儲存庫可用的記憶體量,請在 AlloyDB Omni 執行個體使用的 postgresql.conf 中設定 google_columnar_engine.memory_size_in_mb 參數。

  • 資料欄查詢規劃工具和執行引擎:支援在查詢中使用資料欄儲存庫。

詳情請參閱「關於 AlloyDB for PostgreSQL 資料欄引擎」。

自動記憶體管理

自動記憶體管理工具會持續監控及最佳化整個 AlloyDB Omni 執行個體的記憶體用量。執行工作負載時,這個模組會根據記憶體壓力調整共用緩衝區快取大小。

根據預設,自動記憶體管理工具會將上限設為系統記憶體的 80%,並為共用緩衝區快取分配 10% 的系統記憶體。如要變更共用緩衝區快取大小的上限,請在 AlloyDB Omni 執行個體使用的 postgresql.conf 中設定 shared_buffers 參數。

自動調整自動真空

可調整的自動清理功能會根據資料庫工作負載分析作業,並自動調整清理作業的頻率。這項自動調整功能可協助資料庫維持最佳效能,即使工作負載有所變化,也不會受到清除程序干擾。

自動調節自動清除功能會根據下列因素,決定清除作業的頻率和強度:

  • 資料庫大小
  • 資料庫中無效元組的個數
  • 資料庫中資料的年齡
  • 每秒交易數與預估的清除速度
  • 資源使用率

AI/機器學習工作人員

在 AlloyDB Omni 中,AI/機器學習背景工作人員提供必要功能,可直接從資料庫呼叫 Vertex AI 模型。AI/機器學習工作者會以 omni ml worker 程序的形式執行。

自動化調度管理工具控制層

RPM 自動調度管理工具部署選項會使用集中式叢集管理工具,自動執行叢集範圍的作業,包括啟動程序和容錯移轉。

管理介面

RPM 編排器部署選項提供指令列公用程式 (alloydbctl) 和 Ansible 角色,可大規模管理一或多個叢集。

效能最佳化

RPM 編排器部署選項內建 PgBouncer 連線集區支援功能,以及 HAProxy 負載平衡功能,可跨讀寫和唯讀端點進行負載平衡。

後續步驟