什麼是 Visual Studio Code 的 PostgreSQL 擴充功能? (預覽)

Visual Studio Code 的 PostgreSQL 擴充功能簡化了 PostgreSQL 資料庫的管理與開發。 你可以連接 PostgreSQL 資料庫,撰寫並執行查詢,並管理資料庫物件,而不必離開 Visual Studio Code。

該擴充套件可整合 Azure 管理的 PostgreSQL 服務,包括:

  • Azure HorizonDB - 一項為一級企業工作負載打造的雲端原生 PostgreSQL 服務。 HorizonDB 具備儲存與計算分離架構、低延遲提交、快速容錯移轉、透過可讀取的高可用性複本進行負載平衡的讀取水平擴充,以及深度 AI 整合。

同一個擴充功能可用於這兩項服務。 若行為有所不同(例如連線端點或支援的認證方法),會在後續章節中說明。

如何安裝擴充功能

你可以直接從 Visual Studio Code 的擴充市場安裝 PostgreSQL 擴充功能。 請遵循下列步驟:

  1. 在 Visual Studio Code 中開啟擴充功能檢視,方法是在活動列中選擇 Extensions 圖示,或使用 View: Extensions 指令。
  2. 在延伸模組 Marketplace 中搜尋 PostgreSQL 。
  3. 選取Microsoft所撰寫的 PostgreSQL 擴充功能,然後選取 [ 安裝]。

安裝擴充功能後,Visual Studio Code 側邊欄會出現一個大象圖示,代表 PostgreSQL 頁面。

Features

Visual Studio Code 的 PostgreSQL 擴充功能為 Azure HorizonDB 提供以下功能。

連線管理員

連接管理器可簡化連線到本機和雲端裝載的 PostgreSQL 資料庫。 重要功能包括:

  • 支援多種連線配置,讓你能同時連接並管理多個 PostgreSQL 實例,包括混合的 Azure HorizonDB 叢集。
  • 連線字串解析,無論你是連接本地資料庫還是 Azure HorizonDB 叢集,都能實現無縫連接。
  • 與 Azure HorizonDB 整合,可直接瀏覽並依訂閱、資源群組、伺服器/叢集及資料庫篩選實例。

Azure HorizonDB 連線端點

Azure HorizonDB 會暴露兩個端點,你可以在擴充功能中分別新增為獨立的連線設定檔:

  • 讀寫端點 - 連接主端點,主端接受讀寫交易。 使用此端點進行應用程式寫入、架構變更,以及任何需要最新提交資料的讀取工作負載。 端點會列在叢集Overview頁面,以及Azure入口網站的Replicas頁面上。
  • 讀取端點 - 自動將唯讀連線負載平衡至叢集中所有可讀取的 HA 複本。 使用此端點用於讀取向外擴充工作負載、報表和分析。 目前最多支援四個可讀的 HA 複本(增加至 8 個),每個副本大小與主記憶體相同。

典型的做法是在 連線管理員 中儲存兩個設定檔——一個指向讀寫端點,一個指向讀取端點——然後根據手頭的任務在 物件總管 中切換。

物件總管

強化版的物件探索器提供資料庫物件的階層式視圖,讓瀏覽和管理結構、資料表、檢視與函式變得更為方便。 值得注意的功能包括:

  • 進階篩選選項,快速定位特定物件。
  • 建立、修改和刪除資料庫物件的功能,例如數據表、檢視表和預存程式。
  • 以視覺效果呈現資料庫架構和關聯性,讓瀏覽簡化。
  • 對於 Azure HorizonDB,你可以直接從 查詢編輯器 透過 pg_available_extensions 目錄檢視表,查看叢集上可用的超過 55 個允許清單中的擴充功能。

查詢編輯器

查詢編輯器會透過以下面向改善查詢撰寫和執行的體驗:

  • 具有內容感知功能的 IntelliSense,可自動完成 SQL 關鍵字、資料表名稱和函式。
  • 語法醒目提示和自動格式化,以提升查詢可讀性。
  • 查詢歷史追蹤,讓你能重用先前執行的查詢。

結果檢視器

結果檢視器讓你能透過以下功能與查詢結果互動:

  • 將結果匯出至 CSV、JSON 或 Excel 格式。
  • 搜尋、篩選和排序選項,以有效率地分析數據。
  • 持續性資料檢視會在索引標籤之間瀏覽時保留內容。

結構視覺化

Schema Visualizer 提供你一個互動式、基於圖表的資料庫結構視圖,無需撰寫任何 SQL。 在物件總管中右鍵點擊資料庫(或其下方的任何物件),選擇 Visualize Schema啟動視覺化工具。

主要能力包括:

  • 完整表格視圖 - 每張表格都會以卡片形式呈現,顯示其欄位與資料型態。
  • 關係線 ——表格間的外鍵關係會以連接線形式繪製,讓你一眼就能看到資料模型如何拼接在一起。
  • 基於結構的組織 - 資料表依其父結構分組(例如 public、 、hrecom),方便在大型資料庫中導航。
  • 依結構顯示/隱藏 - 切換整個結構,只聚焦你關心的模型部分,並保持圖表在大型資料庫中可讀。
  • 平移與縮放 - 使用標準平移、縮放及貼合螢幕控制,導航大型圖表。

Schema Visualization 適用於任何連接的資料庫,包括本地 PostgreSQL 和 Azure HorizonDB 叢集。

Apache AGE 圖形視覺化

Apache AGE 圖視覺化工具讓你能執行 Apache AGE 密碼查詢,並以互動式節點邊圖的形式探索結果。 該擴充功能自動偵測圖形查詢結果,並在視覺化瀏覽器中呈現,具備每節點提示、縮放與平移控制、匯出支援及配合主題的樣式。

age 擴充功能在 Azure HorizonDB 預設為允許清單,因此圖形工作負載可在 HorizonDB 叢集上執行,無需額外設定。 當你在 HorizonDB 上撰寫 Cypher 查詢時,同樣的要求也適用:

  • 回傳完整物件,而非純量屬性 ——圖視覺化器需要完整的頂點與邊物件。 擷取純量屬性()RETURN p.name, p.title的查詢會回傳純文字值,無法在視覺化器中呈現。 取而代之的是回傳完整物件並將關聯變數命名為:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • 設定 disp_label 為有意義的節點文字 ——沒有 disp_label,節點會顯示內部 ID。 設定此屬性,使視覺化工具顯示有用的標籤:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        SET a.disp_label = a.title
        SET b.disp_label = b.title
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • 將輸出欄位與回傳物件匹配 ——包裝 AS (...) 子句必須每個回傳物件有一欄。 對於多跳查詢,請納入每個中間節點和邊:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r1:BOUGHT_TOGETHER]->(mid:Product)-[r2:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r1, mid, r2, b
    $$) AS (a agtype, r1 agtype, mid agtype, r2 agtype, b agtype);
    

AI integration (Azure HorizonDB)

連接 Azure HorizonDB 叢集時,該擴充套件提供 HorizonDB AI 功能的第一級創作面,這些功能以標準 PostgreSQL 擴充功能形式公開:

  • pgvector
    • 向量資料型態與相似度運算子。
  • pg_diskann
    • 高效能向量索引搭配 進階過濾,能在向量圖遍歷過程中評估 WHERE 謂詞,使過濾後的相似性查詢能更快且更一致地返回。
  • azure_ai
    • AI 功能,例如 azure_ai.generate()、azure_ai.is_true()、azure_ai.extract() 和 azure_openai.create_embeddings()。
  • AI 模型管理(有限預覽)
    • 當叢集啟用時,HorizonDB 會自動透過 Microsoft Foundry 配置預設聊天模型(gpt-5)及預設嵌入模型(text-embedding-3-small),安裝並設定 azure_ai,並將 AI 功能接線至這些管理模型——無需手動操作金鑰。 你也可以註冊自己的 Microsoft Foundry 部署(Bring Your Own Model),並從相同的 AI Functions 中透過別名呼叫這些部署。

你可以直接從 查詢編輯器 撰寫並執行這些 AI 工作負載,結果檢視器會將向量和 JSONB 輸出以內嵌方式呈現。

管線與工作流程

當連接至 Azure HorizonDB 叢集並具備 AI 管線或pg_durable工作流程時,該擴充功能提供管線與工作流程檢視,用來檢查執行歷史並監控執行狀態。

請透過右鍵點擊資料庫並選擇 「管線與工作流程」來存取。 你會看到兩個分頁:

  • AI 管線:查看管線定義、檢查執行,並追蹤以顏色編碼步驟類型的執行圖(藍色代表來源/匯,綠色代表處理,粉紅色代表外部呼叫)。 用它來驗證管線行為,檢查運行狀態、運行 ID、開始時間和持續時間。
  • 工作流程: pg_durable 檢查工作流程實例,並設有圖表、時序分析及結果的分頁。 從工作流程執行導覽到相關的管線定義,以便比較與排除故障。

此視圖省去在 SQL 查詢與編輯器間切換的需求,方便監控長期運行的 AI 工作負載與 pg_durable 協調。

GitHub Copilot 整合

此延伸模組與 GitHub Copilot 整合,以提供專為 PostgreSQL 開發量身打造的 AI 導向協助。 透過像 @pgsql 這類指令,你可以查詢資料庫、優化結構,並請求Copilot對 Azure HorizonDB 叢集執行特定 SQL 操作。 Copilot 會取得即時連線內容,包括目標上安裝的延伸模組,因此在 HorizonDB 連線上的建議會了解pgvector、pg_diskann、 azure_ai 和age。

支援的作業系統

PostgreSQL 擴充功能適用於以下作業系統:

  • Windows 作業系統
  • macOS
  • Linux

此擴充套件支援多種 Linux 發行版,包括 Ubuntu、Fedora 及 Red Hat Enterprise Linux。

意見反應與支援

針對 Bug、功能要求和問題,請使用 Visual Studio Code 中的內建意見反應工具。 您可以透過 Visual Studio Code 說明選單或 PGSQL 指令面板完成此回饋。

  • 說明功能表
    • 移至 [說明] > [報告問題]
  • 命令選擇區
    • 使用 Ctrl + Shift + P 開啟命令選擇區並執行: PGSQL: Report Issue