資料與儲存 2026 年 6 月 19 日

2026-06-19 — pgfmt 2.1 原地格式化、ClickHouse 即時分析七原則與托管 PostgreSQL 新增 RBAC 及 Terraform 支援

primary=https://www.postgresql.org/about/news/pgfmt-21-in-place-formatting-and-pg_dump-compatible-output-3321/ primary=https://github.com/gmr/pgfmt/releases/tag/v2.1.7 primary=https://clickhouse.com/blog/why-everyone-is-talking-about-real-analytics-yellow-company primary=https://clickhouse.com/blog/postgres-managed-by-clickhouse-rbac-terraform-clickpipes-extensions primary=https://clickhouse.com/docs/cloud/managed-postgres/rbac

pgfmt 2.1:原地格式化與 pg_dump 相容輸出,SQL 程式碼管理更一致

PostgreSQL News · 2026-06-18

pgfmt 2.1 於 2026 年 6 月 18 日正式發布,這是一款以 Rust 撰寫的開源 PostgreSQL SQL 格式化工具,本次版本帶來兩項重大新功能:原地格式化(--inplace)與仿照 PostgreSQL 內部解析器風格的 pg_dump 相容輸出模式。最新版本為 v2.1.7,可透過 Homebrew、Cargo 或預編譯二進位檔安裝。

原地格式化:直接改寫原始檔案

過去 pgfmt 只能將格式化結果輸出至 stdout,若要更新原始檔案需搭配 shell 重新導向。新增的 --inplace(短選項 -i)旗標讓工具直接將格式化結果寫回來源檔案,並保留原始的檔案權限。此功能支援在單一指令中一次處理多個檔案,大幅簡化 CI 流程中的 linting 步驟。

# 一次格式化並回寫多個 SQL 檔案
pgfmt -i query1.sql query2.sql migrations/*.sql

原地格式化特別適合搭配 git pre-commit hook 使用,可確保每次提交的 SQL 程式碼都維持一致風格。不再需要額外的包裝腳本來完成「格式化後替換原檔」的動作,顯著降低維護負擔。

pg_dump 相容風格:與 PostgreSQL 系統目錄輸出位元組一致

新增的 --style pg_dump(亦可使用別名 pgdumppostgres)能夠重現 PostgreSQL 內部 ruleutils.c 解析器所產生的排版格式。此風格與 pg_get_viewdef()pg_get_functiondef() 的輸出達到位元組層級的一致性(byte-idempotent),意味著對系統目錄的 dump 內容重新格式化後,可以得到完全相同的位元組輸出。

-- 以 pg_dump 相容風格格式化
pgfmt --style pg_dump view_definition.sql

-- 使用別名亦可
pgfmt --style postgres migration.sql

此特性對於需要比對 migration 腳本與 PostgreSQL 儲存定義的開發者來說非常實用。透過 diff 工具比較 migration 與實際系統目錄輸出時,不再因格式差異產生雜訊,能更精準地判斷 schema 是否真的發生變更。先前無法正常格式化的系統目錄 dump 視圖與函數,在新版中也能順利處理。

其他修正與安裝方式

v2.1.x 系列版本同步擴大了 SQL 和 PL/pgSQL 的格式化涵蓋範圍,並修復多項正確性問題。最值得注意的 bug 修復是型別字串字面值(typed string literals)的處理,例如 INTERVAL '2 days' 在舊版中會被意外刪除,現已修正。

  • Homebrew(2.1 新增):brew tap gmr/pgfmt && brew install pgfmt
  • Cargo:cargo install pgfmt
  • 預編譯二進位檔:GitHub Releases
  • 專案說明文件:gmr.github.io/pgfmt

原始來源:PostgreSQL 官方新聞GitHub Release v2.1.7


即時分析不是一個開關,而是七項架構設計決策——ClickHouse 的定義框架

ClickHouse Blog · 2026-06

「即時分析」這個詞彙近年被廣泛使用,但各家廠商的定義差異甚大。ClickHouse 近期發表深度文章,從客戶面向分析、可觀測性、詐欺偵測到 AI agent 工作負載,系統性地定義了什麼才算是「真正的即時分析」,並提出七項可供工程師實際評估系統的技術特性。文章的核心論點是:即時分析是一組必須在整個系統架構中一致落實的設計決策,而非單一功能旗標。

資料新鮮度與寫入查詢獨立性

文章將「資料在寫入後數毫秒至數秒內即可查詢」定義為即時分析的核心指標,並強調這個延遲必須在真實規模(realistic scale)下達成,而非只在小型測試資料集或快取命中的情況下成立。這個區別對於評估資料庫產品的宣傳數字至關重要,因為許多「即時」宣稱的效能數字往往只在精心設計的測試條件下才成立。

寫入與查詢的獨立性(Ingestion-Query Independence)被列為首要特性。持續寫入不應降低查詢效能,ClickHouse 透過 Keeper 的共識協調機制,在高並行寫入情況下仍能維持可預測的尾端延遲(tail latency)。這與傳統 HTAP 架構採用分離讀寫路徑的做法有本質上的不同。

七項技術特性:從架構設計到效能量測

文章提出的框架涵蓋從底層儲存到上層 API 的各個層面,為工程師提供具體的評估標準:

  • 寫入查詢獨立性:高並行寫入不影響查詢尾端延遲
  • 資料新鮮度:寫入後秒級可查詢,毫秒級為最佳目標
  • 增量轉換:物化視圖(materialized view)與預聚合使用 AggregatingMergeTree 在每次插入時更新,而非按排程批次執行
  • 可配置的讀寫權衡:允許在讀取最佳化或寫入最佳化之間調整,索引維護不阻塞資料寫入
  • 統一引擎架構:文字搜尋、向量相似度、JSON 與結構化分析在同一個儲存與查詢引擎中共存
  • 熱資料效能:對剛寫入的資料的查詢效能,比對已快取舊資料更具代表性
  • 線性資源效率:效能隨工作負載線性擴展,避免延遲或成本呈指數增長

基準測試的透明度要求

文章另一個核心主張是對基準測試方法論的嚴格要求。ClickHouse 主張開放、可重現的基準測試才有意義,並提供 ClickBench、CostBench、PostgresBench 與 JSONBench 等公開方法論供外界驗證。這對工程師在評估不同 OLAP 系統時,能夠避免被廠商選擇性展示的數字誤導。

文章特別指出,「效能應在熱資料(hot data)上量測,而非只在快取資料上」這個標準往往被業界忽略。許多系統在反覆查詢同一批舊資料時表現出色,但在查詢剛寫入的最新資料時效能大幅下降。對於需要即時監控、詐欺偵測或 AI agent 工作負載的應用場景,這個差異直接影響系統是否可用。

原始來源:ClickHouse Blog


ClickHouse 托管 PostgreSQL 重大更新:RBAC 存取控制、Terraform 支援、ClickPipes 遷移整合

ClickHouse Blog · 2026-06-18

ClickHouse 於 2026 年 5 月啟動公開測試(public beta)的托管 PostgreSQL 服務(Postgres Managed by ClickHouse)在短短一個月內迎來大規模功能更新。本次更新涵蓋細粒度存取控制(RBAC)、Terraform provider alpha 版、ClickPipes 遷移整合,以及多項擴充套件改善,標誌著這個結合 NVMe 儲存與 ClickHouse 生態系的全托管 PostgreSQL 服務進入更成熟的階段。

細粒度存取控制(RBAC):View 與 Manage 兩個權限層級

新增的 RBAC 功能為托管 PostgreSQL 服務引入兩個基本權限層級。View Postgres services 允許查看服務詳情但無法修改,Manage Postgres services 則開放完整管理權限,包含擴容、設定變更與密碼輪換。敏感資料如連線密碼,對僅有 View 權限的使用者會自動隱藏。

權限管理透過 Cloud Console 的角色系統實作,管理員可建立自訂角色並指定 Postgres Service 為對象類型。使用者可同時持有多個角色以組合所需的存取設定,且此機制同時適用於 Console 介面與 REST API,確保自動化流程中的存取控制一致性。目前此功能仍在 beta 階段,建立新 Postgres 服務仍需具備組織層級的 manage 權限。

Terraform Provider Alpha:以 IaC 管理完整生命週期

Alpha 版 Terraform provider 讓工程師可以透過基礎設施即程式碼(IaC)管理整個 PostgreSQL 實例的生命週期。支援的操作涵蓋建立、擴容、高可用設定、密碼輪換、串流讀取副本(streaming read replicas)以及時間點還原(PITR)。

resource "clickhouse_postgres_service" "example" {
  name              = "my-postgres"
  region            = "us-east-1"
  tier              = "production"
  high_availability = true
}

動態 AWS On-Demand Capacity Reservations 支援確保大型實例在各可用區(availability zone)皆能順利佈建。對於已在使用 ClickHouse Cloud 其他資源的 Terraform 使用者,可立即將托管 PostgreSQL 整合至現有的基礎設施管理流程中。

ClickPipes 遷移整合與擴充套件更新

ClickPipes 的 Postgres-to-Postgres 遷移功能新增了自動 schema 遷移,並在遷移完成後自動重置序列(sequence)。遷移管道的自動化程度提升,讓切換至新服務的流程更為順暢,減少人工介入的需求。

擴充套件方面的更新值得關注:

  • pg_clickhouse:從 clickhouse-cpp 改用 header-only 的 clickhouse-c 函式庫,編譯後大小從 4.9 MB 降至 1.4 MB(縮減約 71%)
  • pg_re2 v0.2.0:基於 Google RE2 引擎的正規表達式支援,效能與安全性更穩定
  • pg_stat_ch:將 PostgreSQL 統計資料匯出至 ClickHouse,支援集中監控

計費系統於 2026 年 6 月 15 日升級為統一帳單(unified billing),以 beta 定價提供服務,每個服務的計費細項涵蓋運算、儲存、備份、ClickPipes 與資料傳輸。新增的 Stripe Connect 整合讓平台型客戶可以在不自建支付基礎設施的情況下,直接為終端客戶提供托管 PostgreSQL 服務。

原始來源:ClickHouse BlogRBAC 官方文件


End of article
0
Would love your thoughts, please comment.x
()
x