這很重要
新專案不再支援適用於 PostgreSQL 的 Azure Cosmos DB。 請勿將此服務用於新專案。 請改用下列兩項服務之一:
使用 Azure Cosmos DB for NoSQL 作為專為高規模應用場景設計的分散式資料庫解決方案,其特色包括99.999% 的可用性服務等級協定(SLA)、即時自動調整,以及跨多個區域的自動容錯移轉。
針對使用開放原始碼超大規模 (Citus) 延伸模組的分區化 PostgreSQL 使用適用於 PostgreSQL 的 Azure 資料庫的彈性叢集功能。
PostgreSQL 會使用延伸模組擴充資料庫的功能。 擴充功能可在單一封裝中一併統合多個相關的 SQL 物件,其可使用單一命令從您的資料庫加以載入或移除。 載入到資料庫之後,延伸模組即可發揮和內建功能一樣的作用。 如需 PostgreSQL 擴充功能的詳細資訊,請參閱將相關物件封裝成擴充功能 (英文)。
使用 PostgreSQL 擴充功能
您必須先在資料庫中安裝 PostgreSQL 擴充功能,然後才能使用它們。 若要安裝特定的擴充功能,請從 psql 工具執行 CREATE EXTENSION 命令,以將封裝的物件載入至您的資料庫。
附註
如果 CREATE EXTENSION 失敗併發生權限拒絕錯誤,請改為嘗試 create_extension() 函式。 例如:
SELECT create_extension('postgis');
若要移除以這種方式安裝的擴充功能,請使用 drop_extension()。
Azure Cosmos DB for PostgreSQL 目前支援的部分重要延伸模組如下所列。 不支援所列出以外的擴充功能。 您無法透過 Azure Cosmos DB for PostgreSQL 自行建立延伸模組。
Azure Cosmos DB for PostgreSQL 支援的延伸模組
下表列出Azure Cosmos DB for PostgreSQL 上支援的標準 PostgreSQL 擴充功能。 此資訊也可以藉由執行 SELECT * FROM pg_available_extensions; 來取得。
叢集中安裝的每個延伸模組版本有時會根據 PostgreSQL 版本 (11, 12, 13, 14, 15, 或 16) 而有所不同。 資料表會列出每個資料庫版本的擴充功能版本。
Citus 擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| citus | Citus 分散式資料庫。 | 9.5 | 10.2 | 11.3 | 12.1 | 12.1 | 12.1 |
資料類型擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| citext | 提供不區分大小寫的字元字串類型。 | 1.5 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
| 立方體 | 提供多維度 Cube 的資料類型。 | 1.4 | 1.4 | 1.4 | 1.5 | 1.5 | 1.5 |
| hll | 提供 HyperLogLog 資料結構。 | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 |
| hstore | 提供用來儲存鍵值對集合的資料類型。 | 1.5 | 1.6 | 1.7 | 1.8 | 1.8 | 1.8 |
| isn | 提供國際產品編號標準的資料類型。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| lo | 大型物件維護。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| ltree | 提供階層式樹狀結構的資料類型。 | 1.1 | 1.1 | 1.2 | 1.2 | 1.2 | 1.2 |
| seg | 表示路徑線段或浮點間隔的資料類型。 | 1.3 | 1.3 | 1.3 | 1.4 | 1.4 | 1.4 |
| tdigest | 以順位為基礎的統計資料進行線上累積的資料類型,例如分位數和修剪的方法。 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 |
| topn | 前 n 個 JSONB 的類型。 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 |
全文檢索搜尋擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| dict_int | 提供整數的文字搜尋字典範本。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| dict_xsyn | 用於擴充同義字處理的文字搜尋字典範本。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| unaccent | 文字搜尋字典,可從詞彙中移除重音符號 (變音符號)。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
函數擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 15 頁 |
|---|---|---|---|---|---|---|---|
| autoinc | 自動遞增欄位的函式。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| earthdistance | 提供方法來計算地球表面上的大圓距離。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| fuzzystrmatch | 提供數個函數來判斷字串之間的相似性與距離。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.2 |
| insert_username | 追蹤變更資料表人員的函式。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| intagg | 整數匯總工具和列舉程式 (過時)。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| intarray | 提供函數和運算子來操作無 null 的整數陣列。 | 1.2 | 1.2 | 1.3 | 1.5 | 1.5 | 1.5 |
| moddatetime | 追蹤上次修改時間的功能。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| orafce | 模擬函式和套件子集 (來 Oracle RDBMS) 的函式和運算子。 | 4.9 | 4.9 | 4.9 | |||
| pg_partman | 依時間或識別碼管理分割的資料表。 | 4.7.4 | 4.7.4 | 4.7.4 | 5.1.0 | 5.1.0 | 5.1.0 |
| pg_surgery | 用來對受損的關係執行修復的函式。 | 1.0 | 1.0 | 1.0 | |||
| pg_trgm | 提供可根據三併詞比對判斷英數文字相似度的函式和運算子。 | 1.4 | 1.4 | 1.5 | 1.6 | 1.6 | 1.6 |
| pgcrypto | 提供密碼編譯函式。 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
| refint | 用於實現參考完整性的函數 (已過時)。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| tablefunc | 提供操縱整個資料表 (包括交叉資料表) 的函式。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| tcn | 觸發的變更通知。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| timetravel | 實作時間移動的函式。 | 1.0 | |||||
| uuid-ossp | 產生通用唯一識別碼 (UUID)。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
索引類型擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| 綻放 | Bloom 存取方法 - 簽章檔案型索引。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| btree_gin | 提供範例 GIN 運算子類別,可針對特定資料類型實作類似 B 型樹狀結構的行為。 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
| btree_gist | 提供可實作 B 型樹狀結構的 GiST 索引運算子類別。 | 1.5 | 1.5 | 1.5 | 1.6 | 1.7 | 1.7 |
語言擴充套件
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| plpgsql | PL/pgSQL 可載入的程序性語言。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
其他擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| amcheck | 用來驗證關聯完整性的函式。 | 1.1 | 1.2 | 1.2 | 1.3 | 1.3 | 1.3 |
| dblink | 支援從資料庫工作階段連線至其他 PostgreSQL 資料庫的模組。 如需此擴充功能的相關資訊,請參閱「dblink 與 postgres_fdw」一節。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| old_snapshot | 允許檢查用來實作 old_snapshot_threshold 的伺服器狀態。 | 1.0 | 1.0 | 1.0 | |||
| pageinspect | 檢查低層級的資料庫頁面內容。 | 1.7 | 1.7 | 1.8 | 1.9 | 1.11 | 1.12 |
| pg_azure_storage | 適用於 PostgreSQL 的 Azure 整合。 | 1.3 | 1.3 | 1.3 | 1.3 | ||
| pg_buffercache | 提供一種方法,即時檢查共用緩衝區快取中發生的狀況。 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.4 |
| pg_cron | PostgreSQL 的工作排程器。 | 1.5 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
| pg_freespacemap | 檢查可用空間對應 (FSM)。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| pg_prewarm | 提供一種方式,來將關聯資料載入至緩衝區快取。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| pg_stat_statements | 提供一種方法,來追蹤伺服器所執行之所有 SQL 陳述式的執行統計資料。 如需此擴充功能的相關資訊,請參閱「pg_stat_statements」一節。 | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.10 |
| pg_visibility | 檢查可見性對應 (VM) 和頁面層級可見性資訊。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| pgrowlocks | 提供方法來顯示資料列層級鎖定的資訊。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| pgstattuple | 提供方法來顯示 Tuple 層級統計資料。 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 |
| postgres_fdw | 可用來存取儲存於外部 PostgreSQL 伺服器之資料的外部資料包裝函式。 如需此擴充功能的相關資訊,請參閱「dblink 與 postgres_fdw」一節。 | 1.0 | 1.0 | 1.0 | 1.1 | 1.1 | 1.1 |
| sslinfo | TLS/SSL 憑證的相關資訊。 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| tsm_system_rows | TABLESAMPLE 方法,接受資料列數目做為限制。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| tsm_system_time | TABLESAMPLE 方法,接受以毫秒為單位的時間做為限制。 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| xml2 | XPath 查詢和 XSLT。 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
Pgvector 延伸模組
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| pgvector | 開放原始碼的向量相似度搜尋工具適用於Postgres | 0.5.1 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 |
PostGIS 擴充功能
| 擴展功能 | 說明 | 第 11 頁 | 第 12 頁 | PG 13 | 第 14 頁 | 第 15 頁 | 第 16 頁 |
|---|---|---|---|---|---|---|---|
| PostGIS | 適用於 PostgreSQL 的空間與地理物件。 | 3.3.4 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 |
| address_standardizer | 用來將位址剖析為組成項目。 用來支援對位址進行地理編碼的正規化步驟。 | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
| postgis_sfcgal | PostGIS SFCGAL 函式。 | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
| postgis_topology | PostGIS 拓撲空間類型和函式。 | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
pg_stat_statements
每個 Azure Cosmos DB for PostgreSQL 叢集都已預先載入 pg_stat_statements 延伸模組,讓您可以追蹤 SQL 陳述式的執行統計資料。
pg_stat_statements.track 設定會控制擴充功能所計算的陳述式。 其預設為 top,這表示會追蹤用戶端直接發出的所有陳述式。 另外兩個追蹤層級是none和all。
pg_stat_statements 提供查詢執行資訊,不過會對於伺服器效能造成影響,因為其會記錄每個 SQL 陳述式。 如果您不主動使用 pg_stat_statements 延伸模組,我們建議您將 pg_stat_statements.track 設定為 none。 某些協力廠商監視服務可能依賴 pg_stat_statements 來提供查詢效能相關的見解,因此請確認這是否適用於您。
dblink 和 postgres_fdw
您可以使用 dblink 和 postgres_fdw 從一個 PostgreSQL 伺服器連線至另一個伺服器,或連線至相同伺服器中的另一個資料庫。 接收端伺服器必須允許來自傳送端伺服器通過其防火牆的連線。 若要使用這些擴充功能,在具有公用存取的 Azure Cosmos DB for PostgreSQL 叢集之間連線,請將允許 Azure 服務和資源存取此叢集 (或伺服器) 設為 ON。 如果您想要使用擴充功能來回送回相同的伺服器,則也需要將此設定 [開啟]。 前往叢集的 Azure 入口網站頁面,在 [網路] 底下可找到 [允許 Azure 服務和資源存取此叢集] 設定。 目前不支援來自 Azure Cosmos DB for PostgreSQL 的輸出連線。
orafce 延伸模組
utl_file 函式在 orafce 延伸模組中停用。