AlloyDB 總覽

AlloyDB for PostgreSQL 是與 PostgreSQL 相容的全代管資料庫服務。這項服務結合 Google 打造的資料庫引擎與雲端式多節點架構,可為要求最嚴苛的應用程式提供企業級效能、可靠性和可用性。

AlloyDB 的用途

AlloyDB 是可擴充的替代方案,可取代自行管理的標準 PostgreSQL。如果想減少管理基礎架構的時間,並將更多時間用於建構應用程式,請使用 AlloyDB。

AlloyDB 專為要求嚴苛的工作負載而設計,包括:

  • 混合型交易與數據分析處理 (HTAP):對即時交易資料執行複雜的分析查詢,不會影響效能或可用性。
  • 低延遲 AI 應用程式:使用 AlloyDB AI 建構生成式 AI 應用程式,將向量搜尋和機器學習模型叫用功能直接整合至資料庫引擎,不必進行高延遲的外部資料遷移作業。
  • 企業級重要業務工作負載:部署需要最高效能、可靠性和可用性的應用程式,並由跨多個可用性區域的分離式運算和儲存架構提供支援。

AlloyDB 提供的功能

AlloyDB 提供多項服務,您不必自行建構及維護。您可以專注於資料,讓 AlloyDB 處理下列作業:

  • 備份:透過隨選和自動排定的備份,以及可復原至特定時間點的持續復原系統,保護資料。
  • 高可用性:透過位於不同可用區的備援節點,確保服務不中斷,並在節點之間自動容錯移轉。
  • 資源管理:系統會視需要自動分配及釋出記憶體和儲存空間,提升效能和效率。
  • 查詢最佳化:使用索引建議工具建議結構定義改善項目,並透過資料欄引擎加快分析查詢,提升資料庫效能。
  • 安全性與加密:使用 Google-owned and Google-managed encryption keys 或客戶自行管理的加密金鑰 (CMEK) 保護靜態資料,並透過整合式 Identity and Access Management (IAM) 管理存取權。

資料庫管理

AlloyDB 會管理資料庫的基礎架構,例如自動備份、安全性修補程式和資源分配。不過,AlloyDB 並非獨立的資料庫管理工具。您仍需要管理工具,才能管理資料庫中的結構定義、資料和使用者。

您可以使用下列工具連線及管理資料庫:

  • AlloyDB Studio:直接內建於 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 執行個體是資料庫的存取點。每個執行個體在虛擬私有雲 (VPC) 網路中都有私人靜態 IP 位址。應用程式向這個 IP 位址傳送查詢時,執行個體會將要求轉送至基礎節點處理。

AlloyDB 使用兩種執行個體:

  • 主要執行個體:提供資料的讀取和寫入權限。每個叢集都只有一個主要執行個體。主要執行個體可以是高可用性 (HA) 或基本執行個體。

    • 高可用性:包含兩個節點 (一個使用中節點和一個待命節點),位於不同可用區,可自動容錯移轉。

    • 基本執行個體:包含單一節點,適用於不需要高可用性的非正式環境。基本執行個體只有一個節點,沒有待命節點。詳情請參閱「使用基本執行個體降低成本」。

  • 讀取集區執行個體:提供唯讀存取權,可調度工作負載資源。您可以新增一或多個讀取集區執行個體,每個執行個體在叢集中最多可包含 20 個節點。AlloyDB 會自動在讀取集區中的節點之間平衡要求負載。

主要功能與特色

AlloyDB 與標準 PostgreSQL 安裝作業有許多不同之處,除了先前所述的多節點架構固有的垂直和水平擴充優勢外,以下各節將深入探討 AlloyDB 的主要功能。

自動調整的資料庫功能

為每個 AlloyDB 節點提供支援的資料庫引擎與 PostgreSQL 完全相容,具備多項功能,可持續分析執行個體處理的查詢結構和頻率,並根據這項資訊建議結構定義改善措施,或自動套用最佳化設定:

  • 索引建議工具可協助您根據使用模式,找出使用新索引最佳化資料庫結構定義的機會。

  • 資料欄引擎會以資料欄格式將資料儲存在記憶體中,加快數據分析查詢的效能。AlloyDB 就能視需要使用進階處理技術,有效率地掃描大量資料表資料。

  • PostgreSQL 過時資料自動清理功能的自動調整變化版本,會自動調整清理相關參數,以最適合工作負載的形式運作。

  • 自動記憶體和儲存空間管理系統會利用 AlloyDB 運作的 Google 建構雲端式環境,視需要持續分配及釋出記憶體和儲存空間,讓叢集以最佳效能和資源效率運作。

高可用性

根據預設,AlloyDB 叢集會透過主要執行個體的備援節點 (位於兩個不同可用區) 提供高可用性 (HA),並具備自動容錯移轉功能。

如果叢集在非正式環境中運作,且不需要高可用性,則可改用基本的單一可用區主要執行個體。

新增包含至少兩個節點的讀取集區執行個體,可進一步建立負載平衡、多可用區、高可用性的資料存取點。所有讀取集區執行個體都會獨立於主要執行個體運作。

如要進一步瞭解特定區域的注意事項,請參閱「地理位置與區域」一文。

資料備份與災害復原

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

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

詳情請參閱「關於備份」。

如要進一步進行災難復原,您可以在不同的 Google Cloud區域建立次要叢集,藉此進行跨區域複製。AlloyDB 會以非同步方式,將資料從指定的主要叢集串流至各個次要叢集。您隨時可以將次要叢集升級為主要叢集,或執行跨區域容錯移轉 (預先發布版),在服務中斷期間自動維護複製拓撲。

詳情請參閱「關於跨區域複製」。

安全性和存取控管

您可以設定叢集,要求使用安全的 AlloyDB Auth Proxy 連線,該 Proxy 會使用 IAM 控管存取權。詳情請參閱「授權」。

AlloyDB 使用標準 PostgreSQL 使用者角色系統進行驗證,並導入 AlloyDB 專屬的幾個額外角色。詳情請參閱「管理 AlloyDB 使用者角色」。

加密

AlloyDB 預設會使用 Google-owned and Google-managed encryption keys保護所有靜態資料。如果需要使用您提供的金鑰加密資料,可以在建立叢集時指定客戶自行管理的加密金鑰 (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 Cloud中執行 AlloyDB,您也可以選擇 Google 提供的 AlloyDB Omni。這個精簡、可下載的 AlloyDB 版本,可讓您在自己的 Linux 運算環境中執行強大的資料庫引擎,無論環境位於何處。

如要在Google Cloud 控制台中探索部署選項、程式碼實驗室及管理訂閱項目,請前往 AlloyDB Omni 控制台頁面。

詳情請參閱「AlloyDB Omni 總覽」。

後續步驟