PostgreSQL 適用的 AlloyDB 是與 PostgreSQL 相容的全代管資料庫服務。這項服務結合 Google 打造的資料庫引擎與雲端式多節點架構,可為要求最嚴苛的應用程式提供企業級效能、可靠性和可用性。
AlloyDB 的用途
AlloyDB 是可擴充的替代方案,可取代自行管理的 PostgreSQL。如果您想減少管理基礎架構的時間,將心力投注在建構應用程式,請使用 AlloyDB。
AlloyDB 專為要求嚴苛的工作負載而設計,包括:
- 混合型交易與分析處理 (HTAP):針對即時交易資料執行複雜的分析查詢,不會影響效能或可用性。
- 低延遲 AI 應用程式:運用 AlloyDB AI 建構生成式 AI 應用程式,直接在資料庫引擎中整合向量搜尋和機器學習模型呼叫,不必進行高延遲的外部資料移動。
- 企業級重要業務工作負載:部署需要最高效能、可靠性和可用性的應用程式,並透過涵蓋多個可用區的非聚合式運算和儲存空間架構提供支援。
AlloyDB 提供的功能
AlloyDB 提供許多服務,因此您不必自行建構及維護。您可以專心處理資料,讓 AlloyDB 處理下列作業:
- 備份:透過隨選備份、自動排程備份和持續復原系統保護資料,並啟用時間點復原功能。
- 高可用性:確保服務持續運作,方法是在不同可用區中設置備援節點,並在節點之間自動容錯移轉。
- 資源管理:系統會視需要自動分配及釋放記憶體和儲存空間,以提升效能和效率。
- 查詢最佳化:使用索引建議工具 (可建議改善結構定義) 和資料欄引擎 (可加速分析查詢),提升資料庫效能。
- 安全性和加密:使用 Google 預設加密或客戶自行管理的加密金鑰 (CMEK) 保護靜態資料,並透過整合式 Google Cloud 身分與存取權管理 (IAM) 服務管理存取權。
資料庫管理
AlloyDB 會管理資料庫的基礎架構,例如自動備份、安全性修補程式和資源分配。不過,AlloyDB 並非獨立的資料庫管理工具,您仍需使用管理工具,管理資料庫中的結構定義、資料和使用者。
您可以使用下列工具連線及管理資料庫:
- AlloyDB Studio:直接內建於 Google Google Cloud 控制台的網頁工具,可讓您透過互動式 SQL 介面探索及管理資料。
- PostgreSQL 用戶端:AlloyDB 完全與 PostgreSQL 相容,因此您可以使用標準管理用戶端和指令列工具 (例如 psql 和 pgAdmin) 來處理資料庫。
AlloyDB 定價
AlloyDB 採用按用量計費模式,因此您只需支付所用資源的費用。AlloyDB 的價格會因設定而異,並取決於下列因素:
- 執行個體資源:為主要和讀取集區執行個體選取的機器類型 (vCPU 數量和 RAM 容量)。
- 儲存空間:叢集彈性儲存層中儲存的資料量。
- 網路:執行個體輸出的網路流量。
詳情請參閱 AlloyDB for PostgreSQL 定價
AlloyDB 的運作方式
應用程式會使用標準 PostgreSQL 通訊協定連線至 AlloyDB 執行個體。
在底層,AlloyDB 使用非聚合式架構和資源階層,盡可能提高可用性和效能。
與標準 PostgreSQL 的架構差異
傳統 PostgreSQL 會將處理查詢的資料庫引擎與儲存空間耦合在同一部伺服器上。AlloyDB 採用分離式架構,運算和儲存層各自獨立,可獨立調度資源。
- 運算:處理查詢的虛擬機器或節點。
- 儲存空間:雲端原生分散式儲存引擎,可將資料儲存在多個可用區,並隨著資料量增加自動擴充。
AlloyDB 資源階層
AlloyDB 會將資源分為三個層級:叢集、執行個體和節點。
下圖說明 AlloyDB 資源階層,其中叢集已調度資源,包含主要執行個體和多個負載平衡的讀取集區執行個體:
- 叢集:頂層資源,可做為區域內資料庫、記錄和其他中繼資料的邏輯容器。您可以在同一個專案和區域中建立多個叢集。
- 執行個體:叢集包含一或多個執行個體。執行個體是應用程式的連線點。
- 節點:執行個體由一或多個節點提供支援。節點是專門用於執行資料庫引擎的虛擬機器 (VM)。
什麼是 AlloyDB 執行個體?
AlloyDB 執行個體是資料庫的存取點。每個執行個體在虛擬私有雲中都有一個私有靜態 IP 位址。應用程式將查詢傳送至這個 IP 位址時,執行個體會將要求轉送至基礎節點進行處理。
AlloyDB 使用兩種類型的執行個體:
主要執行個體:提供資料的讀取和寫入權限。每個叢集都只有一個主要執行個體。主要執行個體可以是高可用性 (HA) 或基本執行個體。
高可用性:包含兩個節點,一個是作用中節點,另一個是待命節點,這兩個節點位於不同區域,可進行自動容錯移轉。
基本執行個體:包含單一節點,適用於不需要高可用性的非實際工作環境。基本執行個體只有一個節點,沒有待命節點。詳情請參閱「使用基本執行個體降低成本」。
讀取集區執行個體:提供唯讀存取權,可調度工作負載資源。您可以新增一或多個讀取集區執行個體,每個執行個體在叢集中最多可包含 20 個節點。AlloyDB 會自動在讀取集區的節點之間,進行要求負載平衡。
主要功能與特色
除了前述多節點架構固有的垂直和水平擴充優勢之外,AlloyDB 與標準 PostgreSQL 安裝作業的不同之處還包括:以下各節將深入探討 AlloyDB 的主要功能。
自動化和適應性資料庫功能
為每個 AlloyDB 節點提供支援的資料庫引擎與 PostgreSQL 完全相容,並具備多項功能,可持續分析執行個體處理的查詢結構和頻率,然後根據這項資訊建議改善結構定義,或自動套用最佳化設定:
索引建議可根據您的使用模式,找出可使用新索引最佳化資料庫結構定義的機會。
資料欄引擎可使用資料欄格式將資料儲存在記憶體中,藉此提升數據分析查詢的效能。這樣一來,AlloyDB 就能在需要時使用進階處理技術,有效率地掃描大量資料表資料。
PostgreSQL 過時資料自動清理功能的適應性變體會自動調整與清理作業相關的參數,以配合工作負載的形狀。
自動記憶體和儲存空間管理系統會充分運用 AlloyDB 執行的 Google 建構雲端環境,持續視需要分配及釋出記憶體和儲存空間,確保叢集以最佳效能和資源效率運作。
高可用性
根據預設,AlloyDB 叢集會透過主要執行個體的備援節點提供可用性 (高可用性),這些節點位於兩個不同的可用區,並具備自動容錯移轉功能。
在非正式環境中運作的叢集,如果不需要高可用性,也可以選擇使用基本單一可用區主要執行個體。
新增至少包含兩個節點的讀取集區執行個體,可進一步建立負載平衡的多可用區高可用性資料存取點。所有讀取集區執行個體都會獨立於主要執行個體執行。
如要進一步瞭解特定地區的注意事項,請參閱「地理位置與區域」一文。
資料備份與災害復原
AlloyDB 具有持續備份與復原系統,可讓您根據可調整保留期限內的任何時間點建立新叢集。這樣一來,您就能在資料遺失時快速復原。
此外,AlloyDB 可以視需要或依排程建立及儲存叢集資料的完整備份。您隨時可以從備份還原至新的 AlloyDB 叢集,其中包含備份建立時原始叢集的所有資料。
詳情請參閱「關於備份」。
如要進一步進行災難復原,您可以在不同 Google Cloud區域建立次要叢集,藉此進行跨區域複製。AlloyDB 會將指定主要叢集的資料非同步串流至每個次要叢集。如有需要,您可以將次要叢集升級為功能齊全的 AlloyDB 叢集,其中包含主要和讀取集區執行個體。
詳情請參閱「關於跨區域複製」。
安全性和存取控管
您可以將叢集設定為必須透過安全的 AlloyDB Auth Proxy 連線,該 Proxy 會使用 Google Cloud 身分與存取權管理 (IAM) 控管存取權。詳情請參閱「授權」。
AlloyDB 使用標準 PostgreSQL 使用者角色系統進行驗證,並導入少數 AlloyDB 專屬的額外角色。詳情請參閱「管理 AlloyDB 使用者角色」。
加密
根據預設,AlloyDB 會使用 Google 的加密方法保護所有靜態資料。如要改用您提供的金鑰加密資料,可以在建立叢集時指定客戶自行管理的加密金鑰 (CMEK)。AlloyDB 接著會使用 CMEK 金鑰,加密寫入該叢集的所有資料。
CMEK 也適用於備份。建立隨選備份、設定備份排程或從備份還原時,您可以指定 CMEK 金鑰。
詳情請參閱「關於 CMEK」。
維護與更新
在 AlloyDB 叢集的生命週期內,可能會發生兩種類型的更新:
- 系統更新:Google 會定期執行系統更新,確保基礎硬體和軟體穩定可靠、安全無虞,並發揮最佳效能。包括安全性修補程式、作業系統升級,以及 PostgreSQL 伺服器版本微幅更新。
- 更新設定:您手動對叢集或執行個體進行的變更,以因應不斷變化的工作負載需求。例如調整執行個體的 vCPU 和記憶體數量,或修改資料庫標記。
AlloyDB 維護作業不會中斷服務。做法是準備好替代伺服器,並在就緒時快速替換現用伺服器。在此過程中,主要執行個體通常只會停機不到一秒,讀取集區則會持續可用。資料庫的任何有效連線都會暫時中斷,但您在整個過程中仍可正常使用資料庫。
如要立即套用更新,即使停機時間較長也沒關係,可以使用 FORCE_APPLY 資料庫旗標。
AlloyDB AI
AlloyDB AI 會將一系列 AI 和機器學習功能直接整合至 AlloyDB 資料庫。過去,建構 AI 應用程式需要複雜的資料管道和 ETL 程序,才能將資料從作業資料庫移至專用的 AI/機器學習平台。這種方法會導致資料傳輸延遲時間增加、管理不同系統的作業負擔提高,以及儲存空間重複等問題。AlloyDB AI 直接將 AI 功能整合至資料庫,因此不需要大量移動外部資料。
為方便開發 AI 應用程式,AlloyDB AI 提供下列擴充功能:
vector(為 AlloyDB AI 自訂的pgvector版本):儲存及建立向量嵌入的索引,以供語意搜尋。支援執行混合型查詢和相似度搜尋。如要開始使用向量搜尋,請參閱「執行向量搜尋」。alloydb_scann:實作由 ScaNN 演算法驅動的高效率最鄰近索引,提供高效能的近似最鄰近搜尋。詳情請參閱「建立 ScaNN 索引」。google_ml_integration:提供 AI 函式存取權,可從 AlloyDB 叫用機器學習模型,執行產生嵌入、語意排序、AI 輔助篩選器和聯結,以及生成和摘要文字等工作。模型端點管理功能可註冊及叫用 AI 模型,包括 OpenAI 或 Anthropic 的外部模型。詳情請參閱「註冊模型端點」和「使用 AI 運算子評估語意查詢」。alloydb_ai_nl:使用自然語言與資料庫互動。應用程式開發人員可藉此根據自然語言問題生成準確且安全的 SQL 查詢,讓不熟悉 SQL 的使用者也能存取資料。詳情請參閱「自然語言總覽」。
如需 AlloyDB AI 功能的用途清單,請參閱「建構生成式 AI 應用程式」。
擴充功能支援
AlloyDB 支援多種熱門的 PostgreSQL 擴充功能。如需完整清單,請參閱「支援的資料庫擴充功能」。
自架主機替代方案:AlloyDB Omni
Google 提供 AlloyDB Omni,做為在 Google Cloud 中執行 AlloyDB 的替代方案。 Google Cloud這個精簡的可下載版 AlloyDB 可讓您在自己的 Linux 架構運算環境中執行強大的資料庫引擎,無論該環境位於何處。
詳情請參閱「關於 AlloyDB Omni」。