<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EDB 產品資訊 彙整 - 歐立威科技</title>
	<atom:link href="https://www.omniwaresoft.com.tw/product-news/edb-news/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.omniwaresoft.com.tw/product-news/edb-news/</link>
	<description>歐立威科技 Omniwaresoft｜全方位企業級開源軟體解決方案</description>
	<lastBuildDate>Tue, 02 Jun 2026 08:29:26 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.4</generator>

<image>
	<url>https://www.omniwaresoft.com.tw/wp-content/uploads/2022/12/android-icon-192x192-1.png</url>
	<title>EDB 產品資訊 彙整 - 歐立威科技</title>
	<link>https://www.omniwaresoft.com.tw/product-news/edb-news/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">242464019</site>	<item>
		<title>什麼是 Model Context Protocol (MCP)？PostgreSQL 打造即時 AI 應用的關鍵技術</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/what-is-model-context-protocol-mcp-postgresql/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Tue, 02 Jun 2026 07:47:26 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=46618</guid>

					<description><![CDATA[Model Context Protocol (MCP) 透過 pg_catalog 提供 PostgreSQL 即時結構，並利用 FastMCP 封裝業務邏輯與安全機制（唯讀與 RLS），徹底解決 LLM 執行 SQL 時的結構與語義幻覺。]]></description>
										<content:encoded><![CDATA[
<p>模型上下文協定（Model Context Protocol, MCP）是由 Anthropic 釋出的開放標準，它就像 AI 界的 USB-C，提供了一個統一的協定，<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">讓大型語言模型（LLM）能夠安全、即時地連接外部資料來源與開發工具</span>。</p>



<p>如果要求 LLM 針對正式環境資料庫寫 SQL，寫出來的結構通常看起來正確，但可能引用了不存在的資料表、半年前就改名的欄位，或憑空捏造 JOIN 條件。這會導致查詢直接失敗，甚至面臨更糟情況：指令成功執行，卻回傳了錯誤的數據。</p>



<p>為了解決 LLM 亂寫 SQL 的問題，目前的作法是透過 MCP，利用 PostgreSQL 的原生架構來確保查詢的準確性。</p>



<h2 class="wp-block-heading">技術背景與初步嘗試</h2>



<p>在 2024 年初還沒有 MCP 或 AI Agent 的概念。為了讓聊天機器人能串接 API 取得即時資料，當時通常採用比較拼湊的流程：</p>



<ol start="1" class="wp-block-list">
<li>把 OpenAPI spec 餵給 LLM。</li>



<li>要求 LLM 只能回傳 <code>curl</code>&nbsp;指令。</li>



<li>透過 Go 函式去執行這個 <code>curl</code> 指令。</li>



<li>把執行的結果再丟回給 LLM，讓它轉換成一般人看得懂的回答。</li>
</ol>



<pre class="wp-block-code"><code>User: "What's the CPU usage and total DB connections right now?"
 -&gt; LLM + API Spec -&gt; curl -X GET https://portal.curiousone.in/api/v1/metrics?names=cpu,db_conn
 -&gt; execute() -&gt; { cpu: 72%, conn: 84 }
 -&gt; LLM: "CPU is at 72% and there are 84 active DB connections."</code></pre>



<p>這做法雖然可行，但完全無法擴充。每增加一個新資料來源，就得寫一套新的 parser；而且 Prompt 工程脆弱，必須針對每一種 spec 或 schema 重新調整。</p>



<p>後來也發現不少團隊在開發這類應用時，也都面臨一模一樣的挑戰。直到 Anthropic 釋出 MCP作為開放標準，問題才得到解決。</p>



<h2 class="wp-block-heading">為何 LLM 總是寫錯 SQL？</h2>



<p>LLM 其實看得懂 SQL 語法，也能寫出包含 CTE、子查詢的複雜指令。但它無法得知資料表名稱、欄位名稱或關聯性，只能單純根據訓練資料的盲猜。</p>



<p>對比如下：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>LLM 生成的內容</strong></td><td><strong>正式環境實際存在的內容</strong></td></tr></thead><tbody><tr><td><code><span class="sme-bg-color has-white-background-color">SELECT u.name, o.total FROM users u JOIN orders o ON u.id = o.user_id</span></code></td><td><code>SELECT c.full_name, o.total_price FROM app_customers c JOIN customer_orders o ON c.id = o.customer_id</code></td></tr><tr><td><strong>結果：</strong> <code>ERROR: relation “users” does not exist</code></td><td><strong>結果：</strong> <code>SUCCESS: 47 rows returned</code></td></tr></tbody></table></figure>



<p>LLM 猜測資料表叫 <code>users</code>，但實際上是 <code>app_customers</code>；猜測欄位叫 <code>name</code>，但實際上是 <code>full_name</code>；猜測外鍵（Foreign Key）是 <code>o.user_id</code>，但實際上是 <code>o.customer_id</code>。它的每一次猜測聽起來都很合理，但結果全都是錯的。</p>



<h3 class="wp-block-heading">上下文斷層（Context Gap）</h3>



<p>這類錯誤歸根究底，都是因為缺乏上下文所導致的：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>錯誤類型</strong></td><td><strong>範例</strong></td><td><strong>缺少的上下文</strong></td></tr></thead><tbody><tr><td><strong>資料表錯誤</strong></td><td><code>FROM users</code></td><td>實際的資料表是 <code>app_customers</code></td></tr><tr><td><strong>欄位錯誤</strong></td><td><code>SELECT email FROM orders</code></td><td>該資料表根本沒有這個欄位</td></tr><tr><td><strong>JOIN 錯誤</strong></td><td><code>ON users.id = orders.id</code></td><td>應該要是 <code>orders.user_id</code></td></tr><tr><td><strong>型態錯誤</strong></td><td><code>WHERE created_at = '2024'</code></td><td>該欄位是 <code>timestamptz</code>，而不是字串（String）</td></tr><tr><td><strong>資料庫語系錯誤</strong></td><td><code>DATEADD(day, 7, now())</code></td><td>這是 SQL Server 的語法，不是 Postgres</td></tr></tbody></table></figure>



<p>解決這個問題的關鍵並不是去寫更好的 Prompt，而是要在 LLM 進行查詢的當下，直接讓它讀取到真實的資料庫 Schema。</p>



<h2 class="wp-block-heading">解決方案：Model Context Protocol (MCP)</h2>



<p>MCP 是一種開放標準，主要用來連接 AI 模型與外部資料來源和工具。</p>



<p>在技術架構上的核心特點是：單一 MCP 用戶端可以連接多個 MCP 伺服器，而每個伺服器各自封裝不同的資料來源。以 Postgres 運作來說，代表同一個 AI 助理可以同時存取多個資料來源，例如：</p>



<pre class="wp-block-code"><code>                    ┌─ Postgres MCP Server ──→ PostgreSQL (live schema &amp; queries)
                    │
MCP Client ─────────┼─ Filesystem MCP Server ─→ PG Logs (log file analysis)
(Claude, IDEs)      │
                    └─ Prometheus MCP Server ─→ Telemetry (metrics &amp; alerting data)</code></pre>



<p>在這個架構中，Client 端就是 AI 應用程式，而每個 Server 端則提供工具供 LLM 呼叫，彼此透過 stdio 或 SSE 傳輸協定來跑 JSON-RPC 2.0。LLM 會根據使用者的問題，自己決定要呼叫哪一個 Server。</p>



<p>舉例來說：如果詢問的是 Schema 相關問題，它會去找 Postgres MCP；但如果問的是「為什麼昨天晚上資料庫變慢？」，就可能同時呼叫 Filesystem MCP（去看 Log 紀錄）和 Prometheus MCP（去抓指標數據）。</p>



<h3 class="wp-block-heading">核心組成要素</h3>



<p>在 MCP 的三種基本元件中，資料庫應用最核心的是 Tools：</p>



<ul class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Tools</span>： 這是供 LLM 呼叫的函式，會直接回傳即時結果。例如 <code>execute_sql</code>、<code>list_schemas</code>、<code>list_objects</code> 等，這類工具回傳的是最新狀態，而不是過期的快照。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Resources</span>： 透過 URI 提供的唯讀靜態資料。如果把資料庫 Schema 當成這種靜態資源發布，資訊很快就會過期，因此並不適合用來處理動態的資料庫元資料。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Prompts</span>： 封裝了上下文與指令的重複使用範本。雖然實用，但在資料庫的操作中屬於輔助角色。</li>
</ul>



<h2 class="wp-block-heading">PostgreSQL 結合 MCP：pg-airman-mcp</h2>



<p>pg-airman-mcp 是一款針對 PostgreSQL 設計的 MCP 伺服器，能讓 LLM 即時存取資料庫的結構與資料。以下是它所提供的核心工具：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>工具名稱</strong></td><td><strong>功能說明</strong></td></tr></thead><tbody><tr><td><strong>list_schemas</strong></td><td>列出所有資料庫 Schema，並自動區分為系統或使用者，是讓 LLM 探索資料庫結構的起點。</td></tr><tr><td><strong>list_objects</strong></td><td>列出特定 Schema 內的資料表、檢視表、序列、函式以及相關註解。</td></tr><tr><td><strong>get_object_details</strong></td><td>獲取特定物件的詳細資訊，包含欄位、資料型態、條件約束、索引以及註解。</td></tr><tr><td><strong>explain_query</strong></td><td>執行 <code>EXPLAIN</code> 執行計畫，並能在不實際建立索引的情況下，透過 HypoPG 模擬虛擬索引的效果。</td></tr><tr><td><strong>execute_sql</strong></td><td>執行 SQL 查詢，具備可自訂的存取控制、唯讀模式與安全的 SQL 解析機制。</td></tr><tr><td><strong>analyze_query_indexes</strong></td><td>評估上千種可能的索引組合，找出最符合當前工作負載的最佳化配置。</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">查詢流程</h4>



<p>當使用者詢問「幫我列出營收前五名的客戶」時，LLM 不再用盲猜的方式，而是依序執行以下步驟：</p>



<ol start="1" class="wp-block-list">
<li><strong>呼叫 <code>list_schemas</code></strong>： 確認目前有哪些可用的 Schema。</li>



<li><strong>呼叫 <code>list_objects</code></strong>： 取得真實的資料表與檢視表（View）名稱。</li>



<li><strong>呼叫 <code>get_object_details</code></strong>： 掌握欄位、資料型態、條件約束與索引。</li>



<li><strong>呼叫 <code>explain_query</code></strong>： 驗證執行計畫並檢查效能。</li>



<li><strong>呼叫 <code>execute_sql</code></strong>： 在具備存取控制與安全解析的機制下執行查詢。</li>
</ol>



<p>到了第 3 步，LLM 已經明確知道資料表叫 <code>app_customers</code>、欄位是 <code>full_name</code>，且外鍵是 <code>customer_id</code>。整個過程完全不需要任何猜測。</p>



<h2 class="wp-block-heading">透過 pg_catalog 讓 Postgres 自行維護元資料</h2>



<p>這套架構最核心的優勢，在於 Postgres 本身就已經完整記錄了所有需要的元資料。MCP 伺服器完全不需要依賴外部的設定檔、Schema 傾印檔案，或是常常忘記更新的系統文件。它只需要直接查詢 Postgres 的系統目錄：</p>



<ul class="wp-block-list">
<li><strong>pg_class</strong>：記錄所有的資料表、檢視表與序列。</li>



<li><strong>pg_attribute</strong>：記錄欄位名稱與資料型態。</li>



<li><strong>pg_constraint</strong>：記錄主鍵（PK）、外鍵（FK）與 CHECK 條件約束。</li>



<li><strong>pg_index</strong>：記錄用於查詢最佳化的索引資訊。</li>



<li><strong>pg_namespace</strong>：記錄 Schema。</li>



<li><strong>pg_description</strong>：記錄 <code>COMMENT ON</code> 的註解內容（這能直接當作 LLM 的文件說明）。</li>
</ul>



<p>在底層運作上，MCP 伺服器就是透過執行這類的查詢來獲取即時資訊：</p>



<pre class="wp-block-code is-style-sme-block-code-wrap"><code>-- list_schemas
SELECT
  schema_name, schema_owner,
  CASE
    WHEN schema_name LIKE 'pg_%' THEN 'System Schema'
    WHEN schema_name = 'information_schema' THEN 'System Info Schema'
    ELSE 'User Schema'
  END AS schema_type
FROM information_schema.schemata
ORDER BY schema_type, schema_name;
-- list_objects
SELECT
  CASE c.relkind
    WHEN 'r' THEN 'table'
    WHEN 'v' THEN 'view'
  END AS object_type,
  n.nspname AS table_schema,
  c.relname AS table_name,
  d.description AS comment
FROM pg_catalog.pg_class c
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_catalog.pg_description d
  ON d.objoid = c.oid AND d.objsubid = 0
WHERE n.nspname = $1 AND c.relkind IN ('r','v')
ORDER BY c.relname;
-- get_object_details
SELECT
  column_name, data_type,
  is_nullable, column_default
FROM information_schema.columns
WHERE table_schema = $1
  AND table_name = $2
ORDER BY ordinal_position;</code></pre>



<p></p>



<p>這些查詢是直接針對線上資料庫即時執行。不論欄位是新增、改名或刪除，MCP 伺服器都能在第一時間同步反應最新狀態。</p>



<h2 class="wp-block-heading">透過 EXPLAIN 最佳化查詢</h2>



<p>掌握正確的資料表與欄位是第一步，接下來還必須確保寫出來的查詢具備良好的執行效率。</p>



<p>透過 <code>explain_query</code> 工具，系統會把 LLM 生成的 SQL 先丟給 Postgres 的查詢規劃器（Query Planner）進行評估。如果 <code>EXPLAIN</code> 的結果顯示該執行計畫不夠理想，LLM 就能在幾毫秒內、在使用者完全沒有察覺的情況下，重寫並修正語法，才正式執行。</p>



<p>例如，以下是 LLM 的第一次嘗試：</p>



<pre class="wp-block-code"><code>SELECT c.full_name, SUM(o.total_price)
FROM   app_customers c
JOIN   customer_orders o ON c.id = o.customer_id
GROUP BY c.full_name
ORDER BY total DESC;</code></pre>



<p>透過 <code>EXPLAIN</code> 的分析發現：這段查詢會對約 50 萬筆資料進行全表掃描，且沒有設定日期篩選（導致掃描了歷史至今的所有訂單），執行時間長達近 3,000 毫秒。</p>



<p>LLM 讀取 <code>EXPLAIN</code> 的輸出結果後，便會主動重寫 SQL：</p>



<pre class="wp-block-code"><code>SELECT c.full_name, SUM(o.total_price)
FROM   app_customers c
JOIN   customer_orders o ON c.id = o.customer_id
WHERE  o.created_at &gt;= NOW() - INTERVAL '90 days'
GROUP BY c.id, c.full_name
ORDER BY total DESC
LIMIT 10;</code></pre>



<p>優化後轉為索引掃描，掃描筆數縮減至約 3,000 筆，執行時間縮短到 20 毫秒，速度提升了約 150 倍。</p>



<p>在這個過程中，LLM 透過分析 <code>EXPLAIN</code> 執行計畫的結果，主動加上了日期篩選條件、修正了 <code>GROUP BY</code>（納入 <code>c.id</code> 以確保資料正確性），並加上了 <code>LIMIT</code>。這完全是基於即時的執行計畫評估，而不是死背硬記的最佳化規則。</p>



<h2 class="wp-block-heading">安全防護機制（Guardrails）</h2>



<p>要讓 LLM 能夠存取資料庫，必須部署多層安全機制。以下是推薦的標準配置方法：</p>



<p>首先，從配置唯讀帳號開始，並且只授予 <code>GRANT SELECT</code> 權限。這樣一來，即使 LLM 生成了 <code>DROP TABLE</code> 這類的指令，Postgres 也會在資料庫引擎層級直接拒絕執行。</p>



<pre class="wp-block-code"><code>CREATE ROLE mcp_reader LOGIN PASSWORD '...';
GRANT CONNECT ON DATABASE mydb TO mcp_reader;
GRANT USAGE ON SCHEMA public TO mcp_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_reader;</code></pre>



<p>針對多租戶架構的資料庫，可以啟用資料列級安全性（Row-Level Security, RLS）。這能直接在 Postgres 引擎層級強制隔離資料，即使面臨 SQL 注入（SQL Injection）攻擊也無法繞過這層防禦。</p>



<pre class="wp-block-code"><code>ALTER TABLE customer_orders ENABLE ROW LEVEL SECURITY;

CREATE POLICY tenant_isolation ON customer_orders
  FOR SELECT USING (
    tenant_id = current_setting('app.tenant_id')::int
  );</code></pre>



<p><code>execute_sql</code> 工具本身也提供了可自訂的存取控制、強制唯讀模式、安全的 SQL 解析機制，以及針對長時間異常查詢的 <code>statement_timeout</code> 限制。系統也會為每筆查詢記錄包含上下文的 Log，並強制執行速率限制。</p>



<p>這些安全機制並非選配，而是將 MCP 應用在任何真實資料庫時都必須具備的基本防線。</p>



<h2 class="wp-block-heading">開始使用 pg-airman-mcp</h2>



<p>只花幾分鐘，就能完成 pg-airman-mcp 的設定。請將以下內容新增到 MCP 用戶端設定檔中：</p>



<pre class="wp-block-code"><code>{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": &#91;
        "run",
        "-i",
        "--rm",
        "-e",
        "AIRMAN_MCP_DATABASE_URL",
        "enterprisedb/pg-airman-mcp",
        "--access-mode=unrestricted"
      ],
      "env": {
        "AIRMAN_MCP_DATABASE_URL": "postgresql://mcp_reader:pass@localhost:5432/mydb"
      }
    }
  }
}</code></pre>



<p>在正式環境中，請使用 <code>--access-mode=restricted</code>（受限模式）。完成後重新啟動你的 MCP 用戶端，接下來就能自由進行任何查詢了。（<a href="https://github.com/EnterpriseDB/pg-airman-mcp#quick-start" target="_blank" rel="noreferrer noopener">更多設定説明</a>）</p>



<h2 class="wp-block-heading">更棘手的問題：悄悄出錯的查詢</h2>



<p>Schema 探索機制只能解決表面上的明顯錯誤，例如寫錯資料表、漏掉欄位或語法錯誤的 <code>JOIN</code>。但還有另一個問題是它無法解決的。</p>



<p>當你詢問 LLM：「我們這個月的營收是多少？」時，SQL 順利執行了，跑出來的數據看起來也非常合理。但實際上，那個數字是錯的。</p>



<pre class="wp-block-code"><code>-- What the LLM generates
SELECT SUM(o.total_price)
FROM   customer_orders o
WHERE  o.created_at &gt;= '2026-04-01'</code></pre>



<p>這段查詢能正常執行，也會回傳一個數字。但這個數字卻把「已取消的訂單」、「已退款的訂單」，以及 <code>is_deleted = true</code> 的軟刪除（Soft-deleted）資料全都算進去了。</p>



<p>正確的查詢應該是：</p>



<pre class="wp-block-code"><code>-- What the query should be
SELECT SUM(o.total_price)
FROM   customer_orders o
WHERE  o.created_at &gt;= '2026-04-01'
  AND  o.status != 'cancelled'
  AND  o.is_deleted = false
  AND  o.is_refunded = false</code></pre>



<p>這就是所謂的「內部潛規則」。這些邏輯只存在於開發人員的腦袋裡，根本沒有寫進 Schema。不論再怎麼去查 <code>pg_catalog</code>，系統目錄也絕對不會告訴你：只要查詢 <code>customer_orders</code>，就必須一律加上 <code>is_deleted = false</code> 這個篩選條件。</p>



<h2 class="wp-block-heading">解決方案：利用 FastMCP 客製化 MCP 伺服器</h2>



<p>解決這個問題的方法，是將業務邏輯直接封裝進 MCP 工具中。讓 LLM 直接呼叫一個早已寫好規則的工具，而不是讓它從頭開始盲寫 SQL。</p>



<pre class="wp-block-code"><code>from fastmcp import FastMCP
import psycopg2

mcp = FastMCP("revenue-server")

@mcp.tool()
def get_monthly_revenue(month: str, year: int) -&gt; dict:
    """Get actual revenue excluding cancelled,
    refunded, and soft-deleted orders."""
    conn = psycopg2.connect(DB_URL)
    cur = conn.cursor()
    cur.execute("""
        SELECT SUM(o.total_price)
        FROM   customer_orders o
        WHERE  DATE_TRUNC('month', o.created_at)
               = DATE_TRUNC('month', %s::date)
        AND    o.status != 'cancelled'
        AND    o.is_deleted = false
        AND    o.is_refunded = false
    """, &#91;f"{year}-{month}-01"])
    result = cur.fetchone()
    return {"revenue": float(result&#91;0] or 0)}

if __name__ == "__main__":
    mcp.run()</code></pre>



<p>透過 Python 的 Docstring（文件字串），我們可以直接告訴 LLM 這個工具的功能；而真實的業務規則則已經寫死在函式實作中。這樣一來，當 LLM 遇到營收相關的問題時，它會直接呼叫 <code>get_monthly_revenue</code>，而不是自己瞎猜語法。</p>



<h2 class="wp-block-heading">混合模式</h2>



<p>在實際應用中，這兩種做法缺一不可，必須搭配使用。</p>



<ul class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Postgres MCP 負責結構層</span>： 處理 Schema、資料表、欄位與外鍵，告訴 LLM 資料庫裡「存在哪些東西」，防止 LLM 產生結構上的幻覺（Structural Hallucinations）。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">客製化 MCP 負責邏輯層</span>： 封裝了業務邏輯、篩選條件、合規規則與團隊內部的潛規則，告訴 LLM 這些資料「代表什麼意思」，杜絕語義上的幻覺（Semantic Hallucinations）。</li>
</ul>



<p><strong>實際運作時的互補效果：</strong></p>



<ul class="wp-block-list">
<li>面對欄位命名古怪的舊系統？由 Postgres MCP 即時探索結構。</li>



<li>面對複雜的狀態旗標或潛規則 JOIN？由客製化 MCP 內建規則。</li>
</ul>



<h2 class="wp-block-heading">為什麼不直接用其他方法？</h2>



<p>要把資料庫的 Context 提供給 LLM，其實還有其他幾種做法。以下是它們與 MCP 的對比：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>作法 </strong></td><td><strong>資料即時性 </strong></td><td><strong>擴充性</strong></td><td><strong>最終評語 </strong></td></tr></thead><tbody><tr><td><strong>直接把 Schema 貼進提示詞</strong></td><td>瞬間過期</td><td>浪費 Token</td><td>僅適合微型專案或快速測試</td></tr><tr><td><strong>對文件進行 RAG</strong></td><td>向量資料易與真實 Schema 脫節</td><td>良好</td><td>適合處理語義，不適合精準的結構</td></tr><tr><td><strong>微調模型 (Fine-tuning)</strong></td><td>部署的瞬間就開始過期</td><td>成本高昂</td><td>用來記 Schema 太大材小用</td></tr><tr><td><strong>MCP (即時連線)</strong></td><td><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">永遠保持最新狀態</span></td><td><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">模組化、易組合</span></td><td><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">處理結構資訊的最佳解</span></td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li>直接貼 Schema： 這種做法玩玩小專案還可以，一旦資料表結構發生變化就直接破功。</li>



<li>RAG 模式： 適合用來對文件進行語義搜尋，但面對需要百分之百精準的「結構化元資料」時，表現並不理想。</li>



<li>微調模型<strong>：</strong> 等於是把 Schema 的硬編碼進模型裡，只要資料庫一版更，模型懂的知識就過期了。</li>



<li>MCP 機制： 每次遇到提問，都是直接去查當下最即時的線上資料庫。</li>
</ul>



<h2 class="wp-block-heading">核心結論</h2>



<ul class="wp-block-list">
<li>精準的 Prompt 無法解決幻覺： LLM 會寫出錯誤的 SQL，核心原因在於它們缺乏資料庫的即時上下文，這一點光靠優化提示詞是無法根治的。</li>



<li>MCP 是橋接的關鍵： MCP 是一個將 LLM 連接到外部資料的開放協定。<code>pg-airman-mcp</code> 正是利用了 <code>pg_catalog</code> 與 <code>information_schema</code>，將 Postgres 原生的「自我認知」直接轉化為 LLM 的背景知識。</li>



<li>客製化 MCP 補足盲點： 透過 FastMCP 建立的客製化 MCP 伺服器，能進一步將業務邏輯與團隊內部的「潛規則」封裝起來，解決單靠結構探索無法得知的業務語義。</li>



<li>雙劍合璧才是正解： 運用 Postgres MCP 搞定結構，加上 客製化 MCP 搞定語義 —— 這種混合模式才是讓 LLM 真正落地、搞定企業級複雜資料庫的終極方案。</li>
</ul>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/building-real-time-data-aware-intelligence-postgres-and-model-context-protocol" target="_blank" rel="noreferrer noopener">Building Real-Time, Data-Aware Intelligence with Postgres and the Model Context Protocol</a></p>



<p>參考資料：</p>



<ul class="wp-block-list">
<li><a href="https://modelcontextprotocol.io/docs/getting-started/intro" target="_blank" rel="noreferrer noopener">Model Context Protocol Specification</a></li>



<li><a href="https://github.com/EnterpriseDB/pg-airman-mcp" target="_blank" rel="noreferrer noopener">pg-airman-mcp</a></li>



<li><a href="https://www.postgresql.org/docs/current/catalogs.html" target="_blank" rel="noreferrer noopener">PostgreSQL System Catalogs</a></li>
</ul>



<p>想瞭解更多？<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">46618</post-id>	</item>
		<item>
		<title>EDB Postgres AI Factory：開發 AI Agent 的技術架構重點</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/edb-postgres-ai-factory-agent/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Tue, 07 Apr 2026 01:39:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=46258</guid>

					<description><![CDATA[本文解析 EDB Postgres AI Factory 如何透過新一代技術架構，整合視覺化開發工具 Agent Studio 與高效向量資料庫引擎 VectorChord，協助企業在確保資料主權的前提下，克服 AI 落地斷層，打造穩定、可擴展的企業級 AI 應用基礎架構。]]></description>
										<content:encoded><![CDATA[
<p>AI Agent 的開發不缺原型，但真正能進入生產環境的案例寥寥無幾。從開發雛型到落實為穩定、可信的企業級應用，中間存在著技術斷層，而核心問題在於資料。</p>



<p>針對這個挑戰，EDB 推出新一代 EDB Postgres AI Factory，協助企業在完全掌控資料的前提下，落實生成式 AI（GenAI）的推論應用。市場趨勢顯示，領先企業已不再將 AI 視為單一專案，而是將其納入基礎架構的一環。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">推薦閲讀</span>：<a href="https://www.omniwaresoft.com.tw/product-news/edb-news/edb-postgres-ai-q1-2026-highlights/" target="_blank" rel="noreferrer noopener">EDB Postgres® AI 2026 第一季新功能亮點</a></p>



<h2 class="wp-block-heading"><strong>成功關鍵：資料主權與架構</strong></h2>



<p>根據一項針對全球 2,050 位企業領袖的調查，雖然 95% 企業計畫在三年內建立自有的 AI 與資料平台，但僅 13% 能真正產生效益。他們的 ROI 是同業的 5 倍，在生產環境中部署的 AI Agent 數量也是兩倍以上。其優勢在於對「資料主權」的掌控：能完全管理資料的儲存、存取方式與 AI 運作邏輯，同時解決安全性、合規與規模化擴展的難題，而不必在技術間權衡取捨。</p>



<p>EDB Postgres AI 是為了解決這些挑戰而設計，新一代 AI Factory 則進一步強化了這項能力。</p>



<p>Gartner 報告指出，具備生成式 AI 功能的資料庫管理系統（DBMS）支出預計到 2028 年將成長三倍，且超過 75% 的企業將 AI-ready data 列為首要投資項目。Gartner 將 EDB 列為企業級 AI Agent 的代表性供應商，並強調資料庫在架構中扮演的三大關鍵角色：<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Agent 記憶</span>（Memory）、<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">知識來源</span>（Knowledge source）與<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">任務執行</span>（Task execution）。目前的挑戰在於：如何在不產生技術債的情況下，滿足開發需求並將應用推向生產環境。</p>



<h2 class="wp-block-heading">AI Agent 適用場景與分層模型</h2>



<p>AI Agent 能處理自動化網路監控、多步驟客服流程及即時營運情資，其商業價值在於處理開放式任務、模糊輸入與跨系統調度。</p>



<p>例如：在處理資料庫效能問題時，Agent 能在秒級內分析慢查詢日誌、檢查鎖定表並提供分析假設，這類高價值的推理能力是其優勢。</p>



<p>然而，針對具備明確邏輯的任務，如系統擴展、故障轉移或組態變更，過度使用 Agent 反而會增加複雜度與風險。這類任務應採用<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">確定性的策略引擎</span>，而非機率性的 AI 模型，以避免合規風險與難以除錯的行為。</p>



<p>成熟的技術架構不應是「全 Agent 化」，而是採用分層模型：</p>



<ul class="wp-block-list">
<li><strong>Agent 層</strong>：分析、建議與綜合資訊</li>



<li><strong>策略引擎層</strong>：驗證與最終決策</li>



<li><strong>執行層</strong>：具體行動</li>
</ul>



<p>此架構能確保在需要的地方發揮智慧，在關鍵的地方保持掌控。企業需要的解決方案應能輕鬆開發基於真實資料的 Agent，而非僅能在測試環境運作的原型，並彈性地將 Agent 置於合適的架構層級中。</p>



<p>日本電信商 NTT East 便採用 EDB Postgres AI Factory，在完全私有的環境中部署用於網路維運的 AI Agent，實現自動化偵測與問題回應。這證明了技術信心不僅來自模型，更來自底層的基礎架構。</p>



<h2 class="wp-block-heading">Agent Studio：視覺化開發與整合</h2>



<p>EDB AI Factory 最顯著的演進是重塑了 Agent Studio。它採用 Langflow 作為視覺化整合開發環境（IDE），並基於產業標準的 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">LangChain</span> 生態系建構而成。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" width="1024" height="576" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-4.png?resize=1024%2C576&#038;ssl=1" alt="" class="wp-image-46259" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-4.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-4.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-4.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-4.png?resize=1536%2C864&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-4.png?resize=2048%2C1152&amp;ssl=1 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>許多企業的 AI 計畫在從概念驗證（PoC）轉向生產環境時，常因開發環境與實際基礎架構脫節，導致需重新設計架構，耗費大量時間與預算。</p>



<p>Agent Studio 解決了這個斷層：在視覺化介面開發的原型即是產品，每個 Flow 都能直接轉換為 REST API 端點，無需額外的工程交接即可部署。</p>



<h4 class="wp-block-heading"><strong>視覺化開發與 Python 擴充性</strong></h4>



<p>透過拖拉式介面，開發者能快速串接 LLM、儲存空間與資料源，並在部署前驗證邏輯。</p>



<p>當需求變得複雜時，系統也支援完整的 Python 擴充性，確保開發不受限。這種設計<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">兼顧了開發效率（拖拉式）與細膩控制（寫程式）</span>，讓企業能根據需求彈性選擇。</p>



<h4 class="wp-block-heading"><strong>企業級部署的核心能力：</strong></h4>



<ul class="wp-block-list">
<li><strong>MCP (Model Context Protocol) 支援</strong>：任何 Flow 都能作為 MCP 伺服器供其他 Agent 或應用程式調用，支援企業建構模組化的多 Agent 協作架構。</li>



<li><strong>安全 Agent 記憶體</strong>：將中間狀態與工具輸出儲存在本地的 Postgres 中，避免敏感資料傳輸至公用 LLM，滿足金融、醫療與電信等高度合規產業的需求。</li>



<li><strong>Agent 生命週期管理</strong>：整合 LangSmith、Langfuse 等觀測性工具，並內建 Agent Lifecycle Toolkit (ALTK)，在進入生產環境前預先識別推理邏輯或輸出品質的問題。</li>
</ul>



<p>EDB 選擇以 Langflow 為基礎，反映了其擁抱開源技術的原則。這讓開發團隊能利用活躍的社群生態快速迭代，同時避免被單一廠商綁定，確保技術架構能跟上 AI 領域的快速演進。</p>



<h2 class="wp-block-heading">向量資料庫升級：VectorChord 雙架構</h2>



<p>AI Agent 的表現取決於資料的即時性與索引品質。</p>



<p>為了滿足不同規模的技術需求，新一代 AI Factory 對內建的向量資料庫功能進行了重大升級：在保留 pgvector 的同時，新<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">增了 <a href="https://www.enterprisedb.com/docs/pg_extensions/vectorchord/" target="_blank" rel="noreferrer noopener">VectorChord</a> 索引選項</span>，讓 Postgres 在單一平台上展現專用向量資料庫的效能。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" width="1024" height="576" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-5.png?resize=1024%2C576&#038;ssl=1" alt="" class="wp-image-46260" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-5.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-5.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-5.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-5.png?resize=1536%2C864&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-5.png?resize=2048%2C1152&amp;ssl=1 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>適應不同規模的索引選擇</strong></h4>



<p>對於多數企業的 RAG 應用，pgvector 仍是首選，能穩定處理千萬級別的向量資料。</p>



<p>然而，當 AI 應用規模擴展至「億級」向量、維度更高且需支撐數百個並發查詢時，傳統的 HNSW 索引在建立時間、記憶體消耗與吞吐量上會面臨挑戰。</p>



<p>VectorChord 正是為了突破此瓶頸而設計，其具備以下技術優勢：</p>



<ul class="wp-block-list">
<li><strong>超越專用向量資料庫的效能：</strong>採用 IVF-RaBitQ 索引架構，索引速度較 pgvector 快 100 倍，並在維持 95% 以上召回率（Recall）的前提下，提供 5 倍快的查詢速度。</li>



<li><strong>高效率資源利用</strong>：處理 1 億筆 768 維向量時，在僅 32GB 記憶體的環境下，P50 延遲僅為 35ms。與**專用向量資料庫（如 Pinecone）**相比，每一塊錢能處理的向量數量高出 6 倍。</li>



<li><strong>無痛升級</strong>：完全相容 pgvector 的資料型態與語法。企業可根據需求隨時切換索引，無需修改應用程式程式碼或遷移至其他資料庫。</li>
</ul>



<h4 class="wp-block-heading"><strong>三大效益：</strong></h4>



<ol start="1" class="wp-block-list">
<li><strong>即時性與響應速度</strong>：更快的索引速度縮短了知識庫更新的延遲，讓 Agent 能基於最新資料運作，提升輸出的準確度與用戶體驗。</li>



<li><strong>資料主權與掌控</strong>：所有向量資料原生儲存在 Postgres 中，<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">無需額外維護外部向量資料庫</span>，降低資料外洩風險與治理成本，適合地端或隔離環境部署。</li>



<li><strong>規模化下的成本優勢</strong>：VectorChord 優異的儲存與記憶體效率，讓企業無需投資昂貴的專用硬體，即可在現有的 Postgres 環境中運行十億級規模的 AI 工作負載，實現資料庫架構的精簡與整合。</li>
</ol>



<h2 class="wp-block-heading">在可控資料架構下落實 AI 應用</h2>



<p>AI Agent 的競爭關鍵在於穩定、安全且具備規模化的技術架構。EDB Postgres AI Factory 透過整合視覺化開發工具、高效能向量引擎與自動化 Pipeline，協助企業在完全掌控資料的前提下，大幅縮短從原型開發到生產環境的部署時程。</p>



<p>這套整合方案讓團隊能隨著 AI 技術演進靈活切換模型，且無需更動底層基礎架構，確保 AI 計畫能真正落地並產生實質的商業價值。</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/B4bWw4Xb-eo?si=spH7VpF4kAteip4q" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/next-generation-edb-postgres-ai-factory-built-agent-era" target="_blank" rel="noreferrer noopener">The Next Generation of EDB Postgres AI Factory: Built for the Agent Era</a></p>



<p>想瞭解更多？<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">46258</post-id>	</item>
		<item>
		<title>EDB Postgres® AI 2026 第一季新功能亮點</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/edb-postgres-ai-q1-2026-highlights/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 03:56:16 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=46239</guid>

					<description><![CDATA[EDB Postgres® AI 最新發布！針對 AI Agent 時代提供 PB 級向量引擎與 WarehousePG 效能優化，相較雲端資料倉儲可節省 58% TCO。本文解析如何透過 Agent Studio 視覺化開發 AI 應用，並整合 NVIDIA GPU 加速與 Red Hat Ansible 自動化維運，實現 99.999% 高可用性。想瞭解 EDB 如何驅動企業 AI 轉型？歡迎聯繫我們。]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">數位轉型核心：EDB Postgres® AI</h2>



<p>目前僅 13% 的企業成功將 AI Agent 專案導入生產環境，主因在於基礎設施限制。根據 EDB 的調查，企業急需一個能直接掌控，並統一處理交易、分析與 AI 工作負載的平台。</p>



<p>傳統資料堆疊因拼湊舊系統與各家雲端平台，導致資料自主權風險、效能不穩且成本難以預測。EDB Postgres® AI 提供 PB 級效能並節省 58% 成本，且無供應商鎖定（Vendor lock-in）。</p>



<h2 class="wp-block-heading">PB 級分析：穩定效能與可預測成本</h2>



<h3 class="wp-block-heading"><strong>全方位資料倉儲監控與管理</strong></h3>



<p>EDB 致力於提升 Postgres 的分析引擎實力。根據 McKnight Consulting Group 的測試，<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">WarehousePG</span> 對比 Snowflake 與 Databricks 等雲端資料倉儲，表現如下：</p>



<ul class="wp-block-list">
<li>成本效益： <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">TCO 最高節省 58%</span>，採用可預測成本模型，無隱藏費用。</li>



<li>高穩定性： 在高併發負載下，效能穩定度高出 52%。</li>



<li>部署彈性： 支援雲端、地端、隔離環境（Air gapped）或混合雲。</li>
</ul>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" width="1024" height="576" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image.png?resize=1024%2C576&#038;ssl=1" alt="" class="wp-image-46240" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image.png?resize=1536%2C864&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image.png?resize=2048%2C1152&amp;ssl=1 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center">圖 1：EDB Postgres AI 對比雲端資料倉儲可節省 58% TCO。</p>



<p>維運優化：WarehousePG Enterprise Manager (WEM)</p>



<p>測試證實，PB 級分析不需依賴封閉平台或雲端綁定。為簡化維運，EDB 推出 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">WEM 管理工具</span>，提供視覺化介面取代複雜的指令列，讓叢集管理與監控更直覺。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" width="1024" height="731" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-1.png?resize=1024%2C731&#038;ssl=1" alt="" class="wp-image-46241" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-1.png?resize=1024%2C731&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-1.png?resize=300%2C214&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-1.png?resize=768%2C549&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-1.png?w=1379&amp;ssl=1 1379w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center">圖 2：WEM 視覺化介面提供單一窗口管理與監控 WarehousePG 叢集。</p>



<p>WEM 整合了即時遙測、AI 輔助開發與互動式配置功能，將複雜的分散式資料庫操作整合至單一管理介面。管理者可直接進行叢集健康檢查、SQL 效能調校，並在高效能環境中管理安全性。</p>



<p>透過大規模擴展能力與簡化管理的結合，EDB Postgres AI for WarehousePG 為 AI Agent 時代的維運需求提供了更簡便的標準。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">推薦閲讀</span>：<a href="https://www.omniwaresoft.com.tw/product-news/edb-news/edb-warehousepg-bi/" target="_blank" rel="noreferrer noopener">分析型資料庫一定要多叢集？EDB WarehousePG 有不同做法</a></p>



<h3 class="wp-block-heading">GPU 加速讓分析效能提升 91 倍</h3>



<p>除了強化資料倉儲，EDB 也持續提升維運資料的分析速度。上個月在 NVIDIA GTC 大會上，EDB 發佈了 PGAA 擴充功能與 NVIDIA RAPIDS for Apache Spark 的深度整合。</p>



<p>透過 Spark 的橫向擴展能力，並將計算密集型的分析工作負載卸載至 NVIDIA GPU，企業可消除傳統 CPU 的效能瓶頸。此 GPU 加速技術讓即時維運資料的分析查詢速度提升高達 91 倍，提供 AI Agent 即時處理與決策所需的高吞吐量與次秒級延遲。</p>



<h2 class="wp-block-heading">使用 EDB Postgres AI 構建自主 Agent</h2>



<p>根據 Gartner 預測，企業在 AI 資料庫系統的支出將於 2028 年增長三倍。Gartner 在報告中肯定了 EDB 具備 AI Agent 資料庫的三大關鍵角色：作為<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">長期記憶</span>、<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">核心知識來源</span>，以及<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">任務執行的可靠引擎</span>。</p>



<p>本季度 EDB Postgres AI 推出新一代更新，簡化了直接在現有資料上構建 Agent 的流程。這些功能旨在提供整合工具，協助團隊銜接原型開發（Prototype）與生產環境（Production）之間的差距，並有效地驅動資料與編排 Agent 行為。</p>



<h3 class="wp-block-heading">EDB 向量資料庫</h3>



<p>AI Agent 的工作流品質，完全取決於底層向量資料庫知識庫的效能。本季度 EDB 強化了內建的向量引擎，推出高效能的 VectorChord，為企業提供更強大的 Postgres 向量資料庫解決方案，作為 pgvector 的高階補充方案。</p>



<p>此次更新為不同工作負載提供彈性的索引策略：</p>



<ul class="wp-block-list">
<li>pgvector： 仍為多數 RAG 應用的標準規格。</li>



<li>VectorChord： 專為規模達十億級向量的企業級向量資料庫需求設計，提供隨插即用的升級體驗。<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">其索引速度提升 100 倍</span>，具備高併發多 Agent 系統所需的次秒級延遲。</li>
</ul>



<h3 class="wp-block-heading">Agent Studio 實現視覺化 AI 開發</h3>



<p>EDB Postgres AI 的 Agent Studio 現已與 Langflow 整合，提供直觀的視覺化拖拉介面來構建、測試與部署 Agent。使用者可從零開始設計，或使用開源模板與自定義組件。</p>



<p>為強化 Agent 編排與資料之間的連結，EDB 在 Langflow 中引入了 MCP Server、資料庫與嵌入組件。透過 MCP（Model Context Protocol） 開放標準，Agent 能直接將 Postgres 資料庫作為工具進行互動，大幅消除自定義整合的障礙並提升連線安全性。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" width="1024" height="546" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-2.png?resize=1024%2C546&#038;ssl=1" alt="" class="wp-image-46242" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-2.png?resize=1024%2C546&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-2.png?resize=300%2C160&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-2.png?resize=768%2C410&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-2.png?resize=1536%2C820&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-2.png?w=1591&amp;ssl=1 1591w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center">圖 3：EDB Postgres AI 的 Agent Studio 整合 Langflow 拖拉式介面，支援從零開始構建、使用開源範本或自定義模板，快速開發與部署 AI Agent。</p>



<p>AI Pipelines 現已支援多步驟流程的點選式配置（Point-and-click），統一資料準備與嵌入步驟，達成「一次構建、統一維護」。針對 SQL 使用者，AIDB 擴充功能強化了 PDF 解析與資料庫內建 LLM 能力，僅需幾行 SQL 指令即可原生導入複雜文件，並將非結構化資料自動摘要為具參考價值的資訊。</p>



<p>此外，模型推論（Model serving）功能現在可直接連接 Hugging Face 等供應商，無需手動編寫整合代碼（Glue code）。將模型直接對接平台，能有效減少資料移動、提升安全性，並確保 AI 堆疊的自主掌控權。</p>



<h2 class="wp-block-heading">大規模 AI 基礎設施管理</h2>



<p>AI Agent 時代不僅改變了開發模式，也改變了維運與基礎設施的管理邏輯。EDB 透過自然語言與業界標準自動化技術，簡化了企業對整體資料環境與基礎設施的管理流程。</p>



<h3 class="wp-block-heading">自然語言簡化維運流程</h3>



<p>EDB Postgres AI 現已內建聊天機器人（Chatbot），支援透過自然語言管理平台，無需編寫腳本。管理員可直接透過對話簡化以下任務：</p>



<ul class="wp-block-list">
<li>建立或編輯遷移專案</li>



<li>修改使用者角色與權限</li>



<li>直接獲取效能與健康檢查建議</li>
</ul>



<p>這項功能將手動操作轉化為互動式對話，朝向自動化管理邁進，讓團隊能專注於更具策略性的工作。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" width="1024" height="496" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?resize=1024%2C496&#038;ssl=1" alt="" class="wp-image-46467" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?resize=1024%2C496&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?resize=300%2C145&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?resize=768%2C372&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?resize=1536%2C744&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?resize=2048%2C992&amp;ssl=1 2048w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/04/image-17.png?w=2340&amp;ssl=1 2340w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center">圖 4：EDB Postgres AI 內建聊天機器人，支援以自然語言提問並獲取資料庫與整體環境的建議，無需編寫程式碼即可快速獲得分析資訊。</p>



<p>瞭解，這段關於自動化與高可用性的內容，我將其併入前面的段落，並維持極簡、技術導向的風格：</p>



<p>此外，EDB 推出了<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">自動化存儲擴展（Autonomous storage scaling）</span>，能根據工作負載自動增加容量。管理員可預設維護視窗或存儲上限，無需手動干預或預先配置過多資源，即可確保應用程式持續運行。</p>



<p>針對無法容忍停機的關鍵任務，Hybrid Manager 現已支援三地部署，提供 99.999% 的高可用性。這確保企業營運不會因單一區域或資料中心故障而中斷，強化業務連續性。</p>



<h3 class="wp-block-heading">Red Hat Ansible 認證的自動化架構</h3>



<p>EDB 與 Red Hat 共同驗證了參考架構，為 Red Hat Ansible Automation Platform (AAP) 提供高韌性的資料層。針對關鍵任務的自動化平台，穩固的基礎設施是確保業務流程不中斷的核心。</p>



<p>EDB Postgres AI 與 AAP 整合提供以下優勢：</p>



<ul class="wp-block-list">
<li>高可用性（HA）： 支援多可用區（Multi-AZ）韌性，可在 30 秒內完成自動容錯移轉。</li>



<li>災難復原（DR）： 提供強大的跨區域保護，確保營運不中斷。</li>



<li>無縫部署： 原生整合 Ansible，支援全堆疊自動化流程。</li>
</ul>



<p>目前每一版 AAP 釋出前皆會針對 EDB Postgres AI 進行完整測試，確保企業具備經認證、可投入生產環境的大規模自動化基礎。</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/B4bWw4Xb-eo?si=spH7VpF4kAteip4q" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/edb-postgres-ai-q1-2026-release-highlights" target="_blank" rel="noreferrer noopener">EDB Postgres® AI Q1 2026 Release Highlights</a></p>



<p>想瞭解更多 EDB Postgres® AI 的應用與導入建議？<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">46239</post-id>	</item>
		<item>
		<title>分析型資料庫一定要多叢集？EDB WarehousePG 有不同做法</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/edb-warehousepg-bi/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Tue, 03 Mar 2026 00:05:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45908</guid>

					<description><![CDATA[高併發 BI 查詢容易讓雲端資料倉儲成本飆升。EDB WarehousePG 採用 Postgres MPP 架構，單叢集即可穩定處理高併發工作負載，提供可預測效能與成本，並支援即時資料流與向量化分析。]]></description>
										<content:encoded><![CDATA[
<p>在雲端資料倉儲（Cloud Data Warehouse）的高併發 BI 查詢場景下，傳統按量計價模式常導致成本失控，每一次的儀表板刷新都是預算負擔。</p>



<p>面對激增的資料量與使用者需求，傳統「多叢集架構」的管理難度與效能優化挑戰日益嚴峻，分析團隊往往陷入「控管預算」而非「產出洞察」的困境。</p>



<p>本文將探討 EDB WarehousePG 的創新架構，如何在不增加運算成本的前提下，完美支撐高併發查詢。</p>



<h2 class="wp-block-heading">為何傳統雲端架構難以應付 BI 工作負載？</h2>



<p>雲端資料倉儲是為了處理大規模資料工程與排程分析而設計，目的是在執行批次 ETL 或機器學習任務時能有效利用資源。用量計價的模式可以讓系統在任務執行時使用資源，完成後自動釋放，降低不必要的成本。</p>



<h3 class="wp-block-heading">商業智慧（BI）系統的使用節奏</h3>



<p>BI 與傳統排程分析不同。業務人員全天刷新儀表板、資料科學家執行探索性查詢、財務分析師生成報表，AI agent 也同時提供對話式分析。這種同時操作的模式對系統資源與效能管理帶來極大挑戰。</p>



<p>不同平台在處理高併發 BI 使用者時的資源分配方式差異很大：有些平台會啟動多個叢集，有些只需要少量叢集；排隊時間可能從瞬間到 30 秒以上；查詢失敗率最高可達 4%。</p>



<p>即便是相同工作負載，成本也可能因自動擴展方式不同而差異高達 73%。這些都顯示，高併發 BI 的架構設計對成本與效能影響非常明顯。</p>



<h3 class="wp-block-heading">AI 自動化查詢帶來的挑戰</h3>



<p>BI 不只來自人類使用者，AI agent 也會自動查詢資料庫，增加更多併發負載。</p>



<p>每個 AI agent 像超級使用者，數秒內執行數百筆查詢，並根據結果決定是否發出更多查詢。即便資料倉儲能跟上，高併發 BI 也會讓成本迅速飆升，迫使分析團隊將時間花在控管資源，而非專注於產出洞察。</p>



<h2 class="wp-block-heading">架構為何影響高併發工作負載？</h2>



<p>雲端資料倉儲原本針對間歇性任務設計，能在突發需求時快速擴充運算資源，任務完成後再自動釋放。這對批次 ETL、機器學習訓練或週期性分析非常適合，彈性架構與用量計價相輔相成。</p>



<p>但高併發 BI 工作負載並非突發，而是可預測的持續需求。即便有 AI agent 參與，整體查詢模式仍高度可預測：你大致知道上班時間內有多少分析師與 agent 同時查詢資料。</p>



<p>問題在於：當為突發負載設計的平台遇到可預測的高併發查詢時，成本反而難以控制。使用者越多，啟動的叢集越多，帳單越高，即便實際使用模式沒有改變。</p>



<p>簡單來說：<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">彈性架構會帶來彈性成本，而非彈性的工作負載反而造成錯配。</span></p>



<h2 class="wp-block-heading">Postgres 替代方案：可預測的效能與成本</h2>



<p>Postgres 為基礎的資料倉儲採取了完全不同的方法。基於 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">MPP（Massively Parallel Processing）大規模平行處理架構</span>，經過數十年驗證技術，可以在不需要多叢集協調的情況下處理高併發工作負載。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" width="1024" height="576" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/02/image-3.png?resize=1024%2C576&#038;ssl=1" alt="" class="wp-image-45910" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/02/image-3.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/02/image-3.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/02/image-3.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/02/image-3.png?resize=1536%2C864&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2026/02/image-3.png?resize=2048%2C1152&amp;ssl=1 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center">圖 1：MPP 架構透過將資料列與運算分散到多個獨立的 segment 主機上來擴展效能</p>



<p>Segment 協調器會建立最佳執行計畫，指示每個 segment 如何並行處理其專屬的資料區塊（例如 16 個 segment 各自處理 16M 列資料表中的 1M 列）。</p>



<p>獨立基準測試顯示這種方法效果非常顯著。初步結果指出，Postgres 架構在高併發、高容量分析工作負載下可節省成本高達 62%，在併發擴展效率上比主流雲端資料倉儲高出 63%，同時維持可預測的成本結構與一致的使用者體驗。完整基準結果將在未來幾週公開。</p>



<p>對於關鍵業務操作來說，穩定性至關重要。MNTN，一個管理 PB 級資料的領先連網電視廣告技術平台，多年來一直使用 Postgres 資料倉儲。他們對效能一直滿意，但需要一個開源替代方案以及企業夥伴，來保證營運不中斷並提供快速支援。EDB Postgres AI for WarehousePG 就是他們的解決方案。MNTN 的資料主管 Greg Spiegelberg 表示：「效能穩定，系統可靠，支援快速，正如應有的。我很安心，即使半夜遇到問題，也有人能協助我，不必自己手動修改開源程式碼來恢復資料庫。」</p>



<h2 class="wp-block-heading">EDB WarehousePG：單叢集處理高併發 BI</h2>



<p>當你掌握每天的儀表板刷新、定期報表週期以及分析師查詢模式時，高併發 BI 工作負載其實是可預測的，無需冒高風險去更換基礎架構。</p>



<p>差異在於可預測性：</p>



<ul class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">用量型平台（Consumption-based）</span>：針對突發、不可預測的負載優化，你按使用量付費，但「實際使用量」會受到隱藏變數影響，例如平台自動擴縮的積極程度、叢集保持活躍的時間、查詢是排隊還是立即執行，以及為應對併發需求啟動了多少叢集。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">容量型平台（Capacity-based）</span>：針對已知負載優化，你根據併發需求配置運算核心，無論執行 1,000 筆還是 100,000 筆查詢，成本都保持固定。當平台需要啟動 3~5 個額外叢集應對高峰併發時，容量型成本不受影響。</li>
</ul>



<p>對大多數已建立 BI 工作負載的企業而言，可預測性往往比彈性更重要。</p>



<p>轉換到容量型平台不代表必須拆掉現有架構。WarehousePG 基於 Postgres，團隊可立即使用熟悉的 SQL 技能。對於已在使用 Greenplum 的組織，轉換只需簡單的二進位替換（binary swap），可在數小時內完成，而非數月。</p>



<p>歐洲泛歐市場基礎設施 Euronext FX 就採用了這種轉換，藉此避免被既有 Greenplum 供應商綁定。Euronext FX 全球 CTO Grigoriy Zeleniy 表示：「我們很高興能與 EDB Postgres AI 合作。它對 Greenplum 工作負載的支援，讓我們能掌控開源軟體的部署位置與方式。」WarehousePG 提供了無縫二進位替換，並在四個全球資料中心提供卓越企業支援與開源控制。</p>



<p>在 GDPR、資料存放地要求以及日益嚴格的法規監管下，這種掌控力非常重要。組織必須確切知道資料存放位置與存取權限，同時不犧牲效能與可預測性。</p>



<p>除了成本可預測性，WarehousePG 的 MPP 架構 可處理大量報表與高併發 BI，並透過工作負載管理優先處理關鍵查詢。內建 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">向量化功能（pgvector）</span> 支援 AI 特徵工程與模型訓練，可直接在資料上操作，不需將資料移到其他基礎架構。即時資料流（streaming ingestion）支援即時日誌與事件分析，跨資料湖的聯邦查詢打破資料孤島，無需複雜 ETL 流程。</p>



<p><strong>推薦閲讀：</strong><a href="https://www.omniwaresoft.com.tw/product-news/edb-news/edb-postgres-vector-search/" target="_blank" rel="noreferrer noopener">EDB Postgres 向量搜尋怎麼做？核心技巧公開</a></p>



<h2 class="wp-block-heading">選擇適合的架構與定價模式</h2>



<p>如果高併發 BI 工作負載出現不可預測的成本，你並不孤單。雲端資料倉儲的用量計價模式，雖然對資料工程非常吸引人，但對商業智慧分析而言，經濟效益可能不同。</p>



<p>透過容量型架構與 <strong>EDB Postgres AI for WarehousePG</strong>，獲得明確的優勢：</p>



<ul class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">成本可預測</span>：按核心計價，取代用量計費</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">操作簡化</span>：管理的系統元件減少，小型團隊也能輕鬆維護</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">效能提升</span>：與 Tableau 直接連線，無需額外抽取流程</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">維持資料主權</span>：資料可留在 VPC 中，符合法規要求</li>
</ul>



<p>重點不在於現代雲端平台能否擴展（它們當然可以）。關鍵是，你是否為多叢集與彈性擴縮付費，而你實際需要的只是可預測的效能與可控成本。</p>



<p>立即體驗 <strong><a href="https://www.enterprisedb.com/products/warehousepg?_gl=1*1uc8u9*_gcl_au*MjA0MzA5NTAuMTc3MjUwMTEyMA..*_ga*R0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjEuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIuR0ExLjIu*_ga_ND3EP1ME7G*czE3Nzg2NTQ3NzUkbzMyJGcxJHQxNzc4NjU0Nzg2JGo0OSRsMCRoMjg0NzI0NzYy" target="_blank" rel="noreferrer noopener">EDB Postgres AI for WarehousePG</a></strong>！看看 Postgres 架構如何處理高併發 BI 工作負載並保持成本可預測，或聯繫我們的團隊進行工作負載評估。</p>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/edb-pg-ai-for-warehousepg" target="_blank" rel="noreferrer noopener">Why Your Analytical Database Needs Multiple Clusters to Do What WarehousePG Does With One</a></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45908</post-id>	</item>
		<item>
		<title>EDB Postgres 向量搜尋怎麼做？核心技巧公開</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/edb-postgres-vector-search/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 01:25:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45887</guid>

					<description><![CDATA[EDB Postgres 搭配 pgvector，讓企業可以直接在資料庫中進行向量搜尋，依語意而非文字找到最相關內容。透過將文字、圖片或音訊轉成向量，系統能支援語意搜尋、文件比對、圖像相似搜尋與推薦系統；結合餘弦相似度、歐氏距離與向量索引技術，即使資料量龐大也能快速精準檢索，並享有 Postgres 的可靠性與擴充性。]]></description>
										<content:encoded><![CDATA[
<p>在生成式 AI（GenAI）時代，使用者期待系統能理解語意與意圖，而非僅比對文字。向量搜尋正是實現這種智慧搜尋的關鍵技術，可將資料轉換成向量，捕捉語意與特徵，為現代 AI 應用提供基礎。</p>



<h2 class="wp-block-heading"><strong>什麼是向量搜尋？為什麼重要</strong>？</h2>



<p>向量搜尋依據語意或資料特徵找到相似內容，即使文字或數值完全不相符。</p>



<p>例如，查詢「如何重設密碼？」時，系統仍能找到《登入憑證重設步驟》，即使字詞不同。這種以語意而非文字匹配的能力，是建構智慧應用的關鍵。</p>



<p>向量搜尋應用廣泛，包括：</p>



<ul class="wp-block-list">
<li><strong>語意搜尋</strong>：理解查詢意圖，超越關鍵字比對。像客服平台輸入「無法登入」，仍可找到「密碼重設」文章。</li>



<li><strong>文件檢索</strong>：將報告、知識庫或工單轉為向量，快速找到最相關內容，並支援 RAG 提供上下文答案。</li>



<li><strong>文件比較</strong>：銀行、保險或稽核可比對大量文件，即使改寫或重組，也能找出重複或相似內容。</li>



<li><strong>圖像相似性搜尋</strong>：向量可表示視覺特徵，電商推薦相似商品，媒體檢測重複或近似圖片。</li>



<li><strong>推薦系統</strong>：將使用者與商品向量存於 Postgres，依語意相似度推薦商品、電影或文章，考量偏好、購買紀錄或評論情感。</li>
</ul>



<p>透過 EDB Postgres 的 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">pgvector 擴充功能</span>，向量資料可直接存放、索引與查詢，讓 AI 任務與企業現有交易或分析工作無縫整合。</p>



<h2 class="wp-block-heading">向量搜尋如何運作？</h2>



<p>向量搜尋的運作方式，是<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">將資料轉成向量（embedding），再依相似度找出最相關內容</span>。具體流程可分為四個步驟：</p>



<ol class="wp-block-list">
<li><strong>向量生成</strong>：使用模型（如 OpenAI、BERT、CLIP）將文字、圖片或音訊轉為多維浮點數向量，就像為語意建立「GPS座標」，概念相似的向量會聚在一起。</li>



<li><strong>存放於 Postgres</strong>：透過 pgvector 將向量存入專用欄位，每列對應一份文件、圖片或資料紀錄。</li>



<li><strong>相似度搜尋</strong>：查詢先轉為向量，再比對資料庫向量的相似度（如餘弦距離或歐氏距離）。</li>



<li><strong>排序與回傳</strong>：系統依相似度分數排序，回傳最相關結果。</li>
</ol>



<p>這種架構簡單卻強大，將結構化資料、非結構化資料與向量搜尋整合在同一 Postgres 平台中，實現高效、統一的搜尋體驗。</p>



<h2 class="wp-block-heading">向量搜尋的相似度指標</h2>



<p>向量搜尋的核心在於比較向量，找出哪些已存向量最接近查詢向量。不同的距離指標決定了「相似度」的計算方式。</p>



<p>兩個最常用的指標是 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">餘弦相似度 (Cosine Similarity)</span> 與 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">歐氏距離 (Euclidean Distance)</span>，兩者皆由 pgvector 原生支援。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>方面</th><th>餘弦相似度 (Cosine Similarity)</th><th>歐氏距離 (Euclidean Distance)</th></tr></thead><tbody><tr><td><strong>定義</strong></td><td>比較兩向量夾角，只看方向，忽略長度</td><td>比較兩向量直線距離（L2 範數），考慮方向與長度</td></tr><tr><td><strong>值範圍</strong></td><td>-1 到 1（實務上多為 0~1），越高越相似</td><td>0 到 ∞，越低越相似</td></tr><tr><td><strong>對向量長度影響</strong></td><td>忽略長度差異，方向相同視為相似</td><td>對長度敏感，尺度差異會影響距離</td></tr><tr><td><strong>適用場景</strong></td><td>文字向量，語意在方向上，適合已標準化特徵空間</td><td>圖像或特徵集，數值大小有意義（如像素強度、顏色直方圖）</td></tr><tr><td><strong>文字搜尋</strong></td><td>適合句子/詞向量（BERT、OpenAI、fastText），效果佳</td><td>可用，但若向量尺度不同可能結果不準確</td></tr><tr><td><strong>影像搜尋</strong></td><td>適合標準化深度特徵向量（CLIP、ResNet），尺度不影響</td><td>適合原始或未標準化特徵，特別是像素空間或未縮放 CNN 輸出</td></tr><tr><td><strong>計算成本</strong></td><td>標準化後與歐氏距離相似，通常更快</td><td>複雜度類似，可能需先標準化以公平比較</td></tr><tr><td><strong>對資料縮放敏感度</strong></td><td>不受統一縮放影響</td><td>對縮放敏感，需要預處理/標準化</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">向量搜尋的索引與擴充</h2>



<p>當資料量從數千筆向量增加到數百萬筆時，逐一比對每個向量的「暴力搜尋」成本太高，這時向量索引就很重要。</p>



<h3 class="wp-block-heading"><strong>什麼是向量索引？</strong></h3>



<p>向量索引會將向量依特徵分群或組織，讓系統能快速找到相似向量，而不需掃描整個資料集。</p>



<h3 class="wp-block-heading"><strong>常見向量索引類型</strong></h3>



<ul class="wp-block-list">
<li><strong>IVF（Inverted File Index）</strong>：將向量分成多個群集，僅在最相關群集內搜尋。</li>



<li><strong>HNSW（Hierarchical Navigable Small World）</strong>：圖結構索引，將相似向量連結，提供超快查詢速度。</li>



<li><strong>PQ（Product Quantization）</strong>：將向量壓縮成較小表示，降低儲存與計算成本。</li>
</ul>



<h3 class="wp-block-heading"><strong>近似最近鄰搜尋（ANN）</strong></h3>



<p>ANN 能有效擴充向量搜尋規模，不必找出精確最近鄰，只找到「近似最近鄰」，以極小精度換取大幅效能提升。</p>



<p>對於即時 AI 場景，如：聊天機器人、推薦系統或語意搜尋等，ANN 索引提供了速度與精準度的理想平衡。</p>



<h2 class="wp-block-heading">EDB Postgres AI 向量搜尋</h2>



<p>雖然市面上出現許多新向量資料庫（如 Pinecone、Milvus、Weaviate 等），企業仍偏好 EDB Postgres，原因包括：</p>



<ul class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">統一平台</span><br>利用 pgvector，無需額外資料庫存放向量，AI 工作負載可直接在處理交易或分析資料的 Postgres 實例中運行，架構更簡單。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">企業級可靠性</span><br>EDB Postgres 延續 Postgres 多年的穩定性，提供企業級可靠性、複寫與高可用性，適合關鍵任務，不同於實驗性向量資料庫。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">無縫整合</span><br>支援各種擴充套件、FDW 與整合框架，讓結構化資料、向量與外部 AI 模型能混合分析。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">彈性擴充</span><br>搭配 EDB Postgres Advanced Server、WarehousePG 或 Postgres Distributed，可跨節點擴充向量運算，同時兼顧分析效能與向量相似度搜尋。</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">治理與安全</span><br>金融、公共單位等行業對資料治理與自主管控要求高，在 EDB Postgres 上執行向量搜尋可確保資料主權、稽核與合規性。</li>
</ul>



<iframe width="560" height="315" src="https://www.youtube.com/embed/vFEFaN3qqsI?si=vP5yc03fWVP6iUjz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<h2 class="wp-block-heading"><strong>結語</strong></h2>



<p>在生成式 AI 的應用中，向量搜尋是核心，但穩定性才是落地關鍵。透過 EDB Postgres 與 pgvector 的整合，你可以在熟悉的 SQL 環境中處理語意搜尋與 RAG，不需要額外維護一套複雜的專用向量資料庫。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">推薦閲讀</span>：<a href="https://www.omniwaresoft.com.tw/product-news/edb-news/navigating-legacy-database-migration/" target="_blank" rel="noreferrer noopener">資料庫遷移全攻略：掌握變更管理一次看懂</a></p>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/getting-started-vector-search-edb-postgres" target="_blank" rel="noreferrer noopener">Getting Started with Vector Search in EDB Postgres</a></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45887</post-id>	</item>
		<item>
		<title>PostgreSQL 高可用怎麼做？EDB PEM 監控平台的 HA 設計解析</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/postgresql-ha-edb-pem/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 01:35:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45430</guid>

					<description><![CDATA[PostgreSQL 高可用性（HA）不應僅止於資料庫層級，作為運作中樞的 EDB PEM 監控平台同樣需要穩健的 HA 架構設計。一旦 PEM 系統發生單點故障，企業將面臨告警中斷、效能監測真空及自動化管理失效等風險。透過實作 PostgreSQL / EPAS 的全方位備援方案，能確保在大型資料庫叢集中，監控與管理能力不因意外停機而受限。]]></description>
										<content:encoded><![CDATA[
<p>在規劃企業資料庫時，大家通常會優先搞定 Data 層的 HA，畢竟資料庫掛了，上層應用做得再強也只是空中樓閣。我們習慣了實作複寫、自動切換與備份，卻常忽略一個致命傷：「如果監控系統自己先掛了怎麼辦？」</p>



<p>EDB PEM 是管理 PostgreSQL/EPAS 的大腦。雖然 PEM 當機不影響資料運作，但維運團隊會瞬間變成「瞎子」，失去告警與自動化管理能力。要達成真正的全時穩定，PEM 本身的 HA 設計，才是完整方案中不可或缺的最後一哩路。</p>



<h2 class="wp-block-heading"><strong>為什麼需要 PEM HA？</strong></h2>



<p>簡單來說，當監控系統癱瘓時，維運團隊就失去了判斷現況的「眼睛」。 在 EDB 的企業級架構中，PEM 不僅是個看板，更是核心的神經中樞：</p>



<ul class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">集中式監控</span>：收集所有 Postgres / EPAS、Barman、pgBouncer … 等資訊</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">告警（Alerting）</span>：發出 Email、SNMP、Webhook 告警</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">效能診斷</span>（Performance Diagnostics）</li>
</ul>



<p>一旦 PEM Server 無法提供服務：</p>



<ul class="wp-block-list">
<li>通知與告警中斷</li>



<li>監控與歷史趨勢資料中斷</li>



<li>自動化工作無法執行</li>



<li>監控代理 PEM Agent 無法上傳資料</li>



<li>管理者難以判斷高可用切換後的叢集狀況</li>
</ul>



<p>對大型環境（&gt;20+ DB instances）是一個不可忽視的風險。因此，在企業級資料庫環境中，為了實現完整的高可用管理鏈，PEM HA 是一個不可忽略的部署元件。</p>



<h2 class="wp-block-heading"><strong>PEM HA 同地 / 異地架構概念</strong></h2>



<p>PEM 同地高可用架構的基本核心架構：</p>



<ul class="wp-block-list">
<li>透過 streaming replication 將PEM Server 後端資料同步於 primary / standby</li>



<li>PEM Server 使用虛擬 IP（VIP）提供單一服務入口點</li>



<li>PEM Agents 全部指向 VIP，而不是指向單一 PEM Server</li>



<li>PEM Server 故障切換後，PEM Agents 會自動重新連線</li>
</ul>



<p>針對以上核心原則，PEM 同地 HA 架構會如下圖呈現：</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="1011" height="696" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-2.png?resize=1011%2C696&#038;ssl=1" alt="" class="wp-image-45432" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-2.png?w=1011&amp;ssl=1 1011w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-2.png?resize=300%2C207&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-2.png?resize=768%2C529&amp;ssl=1 768w" sizes="(max-width: 1011px) 100vw, 1011px" /></figure>



<p>説到這，其實你會發現 PEM HA 與資料庫的 HA 有著一模一樣的核心架構。</p>



<p>透過 EDB 提供的 Failover Manager，使PEM server 也可以綁定 Virtual IP 並且達成自動故障切換，進而減少因 PEM 故障而產生的 downtime 時間。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">PEM HA 與資料庫 HA 有著相似的特性 </span>：在資料庫的高可用架構中，唯有 Primary 可提供讀寫功能在PEM 高可用架構中，所有的連線（包含Web UI）都只會指向 Primary。</p>



<p><span class="sme-text-color has-vivid-red-color">那 PEM 可以達成異地高可用架構嗎？</span></p>



<p>自 PEM 10.1 版本開始，PEM Server 在高可用架構上有了更彈性的部署方式。</p>



<p>以同地高可用架構為例，若要讓 PEM Server 本身具備高可用能力，通常會搭配 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Failover Manager（EFM） 與 Virtual IP（VIP）</span>，形成 Primary / Standby 的雙機架構。然而，VIP 受限於 Layer 2 網段，無法跨區域使用，因此若想將 PEM Primary 與 Standby 部署在不同機房或地理區域，就會受到架構限制。</p>



<p>自 PEM 10.1 開始，PEM Server 支援 PostgreSQL 的 multi-host connection string，使 PEM Agent 以及 PEM 本身都能同時連接多個主機，進一步提升異地高可用的可行性。</p>



<p>這代表：</p>



<ul class="wp-block-list">
<li>PEM Primary 與 PEM Standby 可以分別部署在不同地區、不同網段</li>



<li>不再依賴 Virtual IP</li>



<li>Agent 在 Primary 不可用時，可自動切換連線到新的 primary</li>



<li>整體架構更彈性，也能真正做到跨區域的高可用</li>
</ul>



<p>實際架構看起來會像這樣：</p>



<figure class="wp-block-image size-full is-resized"><img data-recalc-dims="1" loading="lazy" width="880" height="706" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-3.png?resize=880%2C706&#038;ssl=1" alt="" class="wp-image-45434" style="width:607px;height:auto" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-3.png?w=880&amp;ssl=1 880w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-3.png?resize=300%2C241&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-3.png?resize=768%2C616&amp;ssl=1 768w" sizes="(max-width: 880px) 100vw, 880px" /></figure>



<h2 class="wp-block-heading"><strong>PEM HA 同地 / 異地 實際測試</strong></h2>



<p>如何建立 PEM 監控的高可用架構呢？我們先來簡單介紹其組成元件。</p>



<ul class="wp-block-list">
<li>兩台 PEM Servers
<ul class="wp-block-list">
<li>主節點：PEM Primary (範例 ip → 172.16.1.76)</li>



<li>備援節點：PEM Standby (範例 ip → 172.16.1.77)</li>
</ul>
</li>



<li>資料同步
<ul class="wp-block-list">
<li>建議使用 EDB 整合的 Streaming Replication</li>



<li>synchronous / asynchronous 取決於可用性 vs 性能</li>
</ul>
</li>



<li>Virtual IP
<ul class="wp-block-list">
<li>透過 EDB Failover Manager 將 virtual ip (172.16.1.155) 綁定至各主機上</li>
</ul>
</li>



<li>PEM Agent
<ul class="wp-block-list">
<li>透過資料庫主機上 PEM Agent 的設定來決定Failover 發生時資料庫該連向哪一個 PEM Server</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><strong>PEM HA <span class="sme-text-color has-vivid-red-color">同地</span> 高可用架構（EFM + VIP）</strong></h3>



<p>將 PEM primary 設定好後，透過 streaming replication 將 PEM standby 也同步到 PEM primary 的資料，並且將兩個節點都加入到 Failover Manager 的叢集內，會呈現以下狀態：</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="934" height="734" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-5.png?resize=934%2C734&#038;ssl=1" alt="" class="wp-image-45438" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-5.png?w=934&amp;ssl=1 934w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-5.png?resize=300%2C236&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-5.png?resize=768%2C604&amp;ssl=1 768w" sizes="(max-width: 934px) 100vw, 934px" /></figure>



<p>可以看到我們已經將 virtual ip 透過 Failover manager 綁定到兩台 PEM Server，再到資料庫主機端的 PEM Agent 設定檔去修改要連線的 ip 。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="325" height="408" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-4.png?resize=325%2C408&#038;ssl=1" alt="" class="wp-image-45437" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-4.png?w=325&amp;ssl=1 325w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-4.png?resize=239%2C300&amp;ssl=1 239w" sizes="(max-width: 325px) 100vw, 325px" /></figure>



<p>上圖就是在資料庫端所安裝的 PEM Agent 的設定檔。</p>



<p>PEM Agent 欲連線的 PEM Server 的 ip 以及 port，還有其運作過程所產生的 log 的位址等設定都會存取在該設定檔裡面。</p>



<p>只需要將第一項設定 pem_host 修改成我們前面設定的 virtual ip,，將 PEM agent 服務重啟後，監控資料就能順利指向 PEM Server 所綁定的 virtual ip。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" width="1024" height="535" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-6.png?resize=1024%2C535&#038;ssl=1" alt="" class="wp-image-45439" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-6.png?resize=1024%2C535&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-6.png?resize=300%2C157&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-6.png?resize=768%2C401&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-6.png?resize=1536%2C803&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-6.png?w=1600&amp;ssl=1 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>當 failover 狀況發生時，由於我們指向的目標 ip 是 virtual IP，<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">無需手動更改資料庫連線的資訊，virtual ip 就會自行綁定至當前可提供服務的 PEM server。</span></p>



<p>以下嘗試將 PEM primary 的資料庫服務停止（systemctl stop postgresql-17）：可以看到 EFM 狀態顯示 PEM Primary 斷線，並且 EFM 自動將 standby promote 成 primary。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="928" height="848" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-7.png?resize=928%2C848&#038;ssl=1" alt="" class="wp-image-45440" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-7.png?w=928&amp;ssl=1 928w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-7.png?resize=300%2C274&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-7.png?resize=768%2C702&amp;ssl=1 768w" sizes="(max-width: 928px) 100vw, 928px" /></figure>



<p>透過 virtual ip 去訪問 PEM web 介面，可以發現服務是依舊正常顯示：</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" width="1024" height="535" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-8.png?resize=1024%2C535&#038;ssl=1" alt="" class="wp-image-45441" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-8.png?resize=1024%2C535&amp;ssl=1 1024w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-8.png?resize=300%2C157&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-8.png?resize=768%2C401&amp;ssl=1 768w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-8.png?resize=1536%2C803&amp;ssl=1 1536w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-8.png?w=1600&amp;ssl=1 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>這樣一來就成功驗證了 PEM 同地 HA 架構的可行性！</p>



<h3 class="wp-block-heading"><strong>PEM HA <span class="sme-text-color has-vivid-red-color">異地</span> 高可用架構（EFM + Multi-host connection）</strong></h3>



<p>如前文所述，VIP 天生受到 Layer 2 網段限制，而無法跨區域部署。我們可以透過 PEM 10.1 版本之後支援的 multi-host connection， 來達成部署異地PEM的高可用架構。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">基本上，唯一與同地高可用架構不同之處，就是 PEM Agent 端的設定檔案</span>。</p>



<p>在修改設定檔案之前，我們先看當前 EFM 叢集狀態：</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="556" height="350" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-10.png?resize=556%2C350&#038;ssl=1" alt="" class="wp-image-45443" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-10.png?w=556&amp;ssl=1 556w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-10.png?resize=300%2C189&amp;ssl=1 300w" sizes="(max-width: 556px) 100vw, 556px" /></figure>



<p>因為沒有額外綁定 Virtual IP 在資料庫的主機上，可以看到這次狀態的頁面在 VIP 的欄位是空白的。</p>



<p>接著就到 PEM Agent 設定檔，新增兩台 PEM Server ip 。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="307" height="390" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-9.png?resize=307%2C390&#038;ssl=1" alt="" class="wp-image-45442" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-9.png?w=307&amp;ssl=1 307w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-9.png?resize=236%2C300&amp;ssl=1 236w" sizes="(max-width: 307px) 100vw, 307px" /></figure>



<p>過去 PEM Agent 設定中，pem_host 欄位只允許一組 PEM server ip。但自 PEM 10.1 版本開始，該設定檔便支援了填入一組以上的 ip 。</p>



<p>現在只要將兩台 PEM server 的 ip 依照 primary &gt;&gt; standby 的順序填入後，PEM Agent 就會自行依照順序去尋找當前可供讀寫（當前 primary）的 PEM host， 進行後續的連線。</p>



<p>接下來，實際將當前的 PEM Standby promote 成新的 primary，並且觀察是否可以透過 PEM standby 進行連線。</p>



<p>透過 efm promote &lt;叢集名稱&gt; –switchover 將原先的 standby promote 成 primary：</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="567" height="468" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-11.png?resize=567%2C468&#038;ssl=1" alt="" class="wp-image-45444" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-11.png?w=567&amp;ssl=1 567w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-11.png?resize=300%2C248&amp;ssl=1 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<p>由於 PEM HA 有著與資料庫 HA 相同的特性（連線一律指向 Primary），可以看到我們用 PEM 舊 primary ip 是無法訪問 Web UI 介面的：</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="863" height="464" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-12.png?resize=863%2C464&#038;ssl=1" alt="" class="wp-image-45445" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-12.png?w=863&amp;ssl=1 863w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-12.png?resize=300%2C161&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-12.png?resize=768%2C413&amp;ssl=1 768w" sizes="(max-width: 863px) 100vw, 863px" /></figure>



<p>相反的，這時就可以透過 PEM standby（新的 primary） ip 去做訪問：</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="869" height="515" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-13.png?resize=869%2C515&#038;ssl=1" alt="" class="wp-image-45446" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-13.png?w=869&amp;ssl=1 869w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-13.png?resize=300%2C178&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-13.png?resize=768%2C455&amp;ssl=1 768w" sizes="(max-width: 869px) 100vw, 869px" /></figure>



<p>這樣一來，我們也驗證了如何透過 multi-host connection 去達成 PEM 的高可用架構！</p>



<h2 class="wp-block-heading">結語</h2>



<p>在 PostgreSQL / EDB 高可用架構中，PEM 的角色比多數人想像中來得更加關鍵。若資料庫本身已經做到 PG / EPAS HA，但監控平台仍是單點，就等於整個 HA 架構仍有進步的空間。</p>



<p>透過引入 PEM HA：</p>



<ul class="wp-block-list">
<li>整個 PostgreSQL 監控、管理、告警與自動化流程都能具備高可用性</li>



<li>真正達到企業級的完整資料庫 HA 生態</li>
</ul>



<p>如果您的企業正在規劃或已經部署 PostgreSQL 高可用架構，建議下一步就是將 PEM 納入 HA 設計，讓整個系統達到更完整的韌性與可靠性。</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/biIQFU4L9k4?si=euXQ5aJCBgIG0mVh" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<p><strong>文章參考資料</strong>：</p>



<p>[1] &nbsp;<a href="https://www.enterprisedb.com/docs/pem/latest/pem_architecture/" target="_blank" rel="noreferrer noopener">EDB Official Document</a>&nbsp;</p>



<p>[2]&nbsp;<a href="https://www.enterprisedb.com/docs/pem/latest/considerations/ha_pem/#connections-must-go-to-the-primary" target="_blank" rel="noreferrer noopener">https://www.enterprisedb.com/docs/pem/latest/considerations/ha_pem/#connections-must-go-to-the-primary</a></p>



<p>[3] <a href="https://www.enterprisedb.com/docs/pem/latest/considerations/ha_pem/#multi-host-connection-strings" target="_blank" rel="noreferrer noopener">https://www.enterprisedb.com/docs/pem/latest/considerations/ha_pem/#multi-host-connection-strings</a><br></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45430</post-id>	</item>
		<item>
		<title>什麼是透明資料加密（TDE）？功能、優點重點整理</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/what-is-tde/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Thu, 18 Dec 2025 01:07:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45648</guid>

					<description><![CDATA[透明資料加密（Transparent Data Encryption，TDE） 是一種資料庫加密機制，透過檔案層級加密來保護靜態資料（data at rest），確保儲存在硬碟與備份媒體中的資料不會被未授權存取，並協助企業符合 PCI DSS 等資安與法規要求。]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">什麼是透明資料加密（TDE）？</h2>



<p>透明資料加密（Transparent Data Encryption，TDE） 是一種資料庫加密機制，<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">透過檔案層級加密來保護靜態資料（data at rest），確保儲存在硬碟與備份媒體中的資料不會被未授權存取</span>，並協助企業符合 PCI DSS 等資安與法規要求。</p>



<p>在 EDB Postgres Advanced Server 15 與 EDB Postgres Extended Server（EDB Standard Plan） 中，TDE 為選用功能，透過金鑰管理機制控管資料存取權限，只有具備授權金鑰的使用者才能解密資料，進而保護敏感與機密資訊。</p>



<p>相較於尚未支援 TDE 的 Community Postgres，EDB Postgres 更能滿足高度監管產業與政府單位對靜態資料加密與合規性的需求，也讓企業能在高資安門檻下順利導入 Postgres。</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/B4bWw4Xb-eo?si=o4LyWml4kscPhye-" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<h2 class="wp-block-heading">TDE 加密範圍</h2>



<p>TDE 保護靜態資料，但仍有部分系統資訊與檔案不在加密範圍內。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>加密範圍</strong></td><td><strong>範例 / 說明</strong></td></tr><tr><td><strong>加密</strong></td><td>• 資料表、序列、索引底層檔案（ TOAST 表與系統目錄）<br>• 寫前日誌（WAL）檔案<br>• 查詢處理與系統運作的暫存檔案</td></tr><tr><td><strong>不加密</strong></td><td>• 系統內部 metadata（不含使用者資料，例如 pg_subtrans、pg_xact）<br>• 檔案名稱、資料目錄結構、資料庫大小與表數、檔案系統 metadata（如最後存取時間）<br>• 外部資料表、伺服器診斷日誌、設定檔等</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">TDE 運作原理</h2>



<p>TDE 透過加密資料庫伺服器與備份儲存的作業系統檔案。<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">即使資料被竊取或遺失，也無法被未授權使用者解讀</span>。</p>



<p>資料庫本身負責加解密流程，無需修改應用程式或更新客戶端驅動程式。</p>



<p>此外，EDB Postgres Advanced Server 與 EDB Postgres Extended Server 提供外部金鑰管理整合介面，可支援簡單的密碼加解密操作，或與企業級金鑰管理系統整合。</p>



<h2 class="wp-block-heading">PostgreSQL 透明資料加密（TDE）</h2>



<p>在 PostgreSQL 中，TDE 用於加密靜態資料，包括表格、索引及寫前日誌（WAL）檔案，而無需修改應用程式。PostgreSQL 本身不原生支援 TDE，多數情況需透過第三方擴充套件（如 pgcrypto）或檔案系統層級加密（如 LUKS、BitLocker）來實現。</p>



<p>TDE 可保護資料檔案、日誌與備份，即使物理儲存遭入侵，資料仍能保持安全。使用 pgcrypto 可對單一欄位加密，提供更細緻控制，但需應用程式指定加密資料；檔案系統層級加密則自動處理，但可能增加系統負擔。</p>



<p>此外，TDE 依賴金鑰管理系統安全存放與管理加密金鑰，確保未授權存取受控。</p>



<h2 class="wp-block-heading">TDE 典型應用場景</h2>



<p>TDE 適用於各種需要保護靜態敏感資料的場景，以下為代表性案例：</p>



<p><strong>一、金融服務</strong></p>



<p>客戶帳戶資料、交易紀錄與個人識別資訊透過 TDE 加密，降低資料外洩或誤用風險，減少可能的金錢損失，同時協助符合 PCI DSS 等金融法規要求。</p>



<p><strong>二、雲端存儲</strong></p>



<p>當企業將資料遷移至雲端時，TDE 可在資料上傳前加密，確保敏感資訊安全隔離，避免與其他租戶資料混淆或誤取，保障多客戶共用基礎設施的資料安全。</p>



<h2 class="wp-block-heading">爲什麽需要 TDE？</h2>



<p>資料外洩風險持續存在，無論企業規模大小，都可能造成財務損失、法律責任與合規問題。</p>



<p>TDE 能保護資料庫中靜態資料，即使儲存媒體遭到入侵，也能防止未授權使用者讀取敏感資訊。TDE 是整體資料安全策略的基礎組件，但它只是眾多安全工具之一。</p>



<p>Postgres 以完整的加密能力聞名，能協助企業降低成為外洩事件目標的風險，並提升資料保護與合規性。</p>



<h2 class="wp-block-heading">TDE 還能做什麼？</h2>



<h3 class="wp-block-heading"><strong>金鑰管理</strong></h3>



<p>金鑰管理對 TDE 至關重要，可防止未授權存取敏感資料。建議定期輪換加密金鑰、設定金鑰過期策略，並限制僅必要的人員或服務存取。</p>



<h3 class="wp-block-heading"><strong>效能優化</strong></h3>



<p>加密與解密會增加系統負載，可能影響資料庫效能。可透過硬體加速、調整資料庫設定並定期監控系統來降低影響。</p>



<h3 class="wp-block-heading"><strong>存取控制</strong></h3>



<p>確保只有授權使用者或流程能存取加密資料，並可透過角色設定限制使用者僅存取與其職責相關的資料。</p>



<h3 class="wp-block-heading"><strong>例行稽核與檢查</strong></h3>



<p>定期檢查 TDE 是否符合組織政策與法規要求，稽核可自動化，並記錄誰存取資料、何時存取，以及執行的操作。</p>



<h3 class="wp-block-heading"><strong>與組織策略對齊</strong></h3>



<p>實施 TDE 時應符合整體資料保護策略、資安政策與風險管理框架，並考量加密需求與法規遵循，同時明確規範加解密流程、金鑰管理與稽核角色，確保監督與問責。</p>



<h3 class="wp-block-heading"><strong>災難復原規劃</strong></h3>



<p>將 TDE 納入災難復原計畫，可在系統故障或資料遺失時，順利還原加密資料。</p>



<h2 class="wp-block-heading">總結</h2>



<p>TDE 能有效保護靜態資料，降低外洩風險，並協助企業符合法規要求。透過妥善的金鑰管理、存取控制與效能優化，TDE 不僅保障敏感資訊安全，也支援企業在多種應用場景下落實資料保護策略。</p>



<p>無論是在金融、醫療、或其他高度監管的環境中，TDE 都是企業資料安全規劃中不可或缺的核心工具！</p>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/everything-need-know-postgres-data-encryption?lang=en" target="_blank" rel="noreferrer noopener">What is Transparent Data Encryption (TDE)? Benefits, Types, and Best Practices</a></p>



<p><a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45648</post-id>	</item>
		<item>
		<title>什麼是 SQL 注入（SQLi）？如何防範攻擊？</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/sql-injection-prevent-attacks/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Tue, 09 Dec 2025 06:00:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45556</guid>

					<description><![CDATA[SQL 注入（SQLi）是一種網路攻擊，攻擊者會透過操控網頁應用程式的輸入，執行未經授權的 SQL 指令到資料庫。

這類攻擊利用應用程式處理使用者資料的漏洞，可能讓攻擊者存取、修改甚至刪除敏感資訊。在某些情況下，駭客甚至可取得資料庫管理權限。]]></description>
										<content:encoded><![CDATA[
<p>當企業大量依賴資料庫處理帳號、交易與服務資訊，攻擊者也開始針對這些系統尋找破口。SQL 注入至今仍是最常被利用的攻擊手法之一，一旦被入侵，不僅可能導致資料外洩，也會造成服務中斷與重大營運風險。</p>



<h2 class="wp-block-heading">什麼是 SQL 注入（SQLi）？</h2>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">SQL 注入（SQL Injection，SQLi）是一種網路攻擊，攻擊者透過操控網頁應用程式輸入，將惡意 SQL 指令注入資料庫查詢。</span></p>



<p>這類漏洞通常出現在應用程式未驗證輸入或未使用參數化查詢時。攻擊可能導致敏感資料外洩、資料被竄改，甚至整個資料庫遭刪除，駭客在某些情況下甚至可取得管理權限。</p>



<h2 class="wp-block-heading">SQL 注入的典型攻擊手法</h2>



<p>只要應用程式沒有驗證輸入或未採用參數化查詢，任何表單、搜尋框、登入欄位都可能成為 SQL 注入的入口。理解常見的攻擊情境與操作方式，有助開發者提前辨識弱點並建立更完善的防護。</p>



<h3 class="wp-block-heading">In-band SQLi（同頻道 SQL 注入）</h3>



<p class="is-style-sme-speech-left"><strong>示例</strong>：攻擊者在登入欄位輸入像  <code>admin' OR 1=1 --</code>  這類惡意字串，使查詢條件永遠為真。<br><strong>結果：無須密碼就能直接登入系統。</strong></p>



<h3 class="wp-block-heading">Union-based SQLi（UNION 聯合查詢注入）</h3>



<p class="is-style-sme-speech-left"><strong>示例</strong>：在搜尋欄位輸入：<code>shoes' UNION SELECT username, email FROM users --</code><br>攻擊者利用 <code>UNION</code> 把惡意查詢與合法查詢合併。<br><strong>結果：原本應顯示產品資訊的頁面，會被迫顯示使用者帳號、Email 等敏感資料。</strong></p>



<h3 class="wp-block-heading"><strong>Error-based SQLi（錯誤回傳式注入）</strong></h3>



<p class="is-style-sme-speech-left"><strong>示例</strong>：攻擊者輸入破壞語法的字元（如 <code>'</code>），藉由資料庫回傳的詳細錯誤訊息推敲：資料表名稱、欄位名稱、資料庫架構<br><strong>結果：<strong>攻擊者可利用這些資訊打造更精準的後續攻擊。</strong></strong></p>



<h2 class="wp-block-heading">SQL 注入攻擊的風險</h2>



<p>SQL 注入帶來的危害不只停留在技術層面，從品牌信任、法規遵循到敏感資料外洩，都可能對企業造成深遠影響。以下將從三大面向說明其主要風險。</p>



<h3 class="wp-block-heading"><strong>品牌與財務衝擊</strong></h3>



<p>成功的 SQL 注入攻擊可能導致客戶資料外洩、帳號被盜用或未授權的金流操作，對企業造成嚴重損害，削弱客戶信任，並帶來營收損失、法律費用及高額資安事件處理成本。</p>



<h3 class="wp-block-heading"><strong>合規風險</strong></h3>



<p>處理敏感個資或財務資料的組織通常需遵守 GDPR、HIPAA 與 PCI DSS 等法規。若發生 SQL 注入造成資料外洩，可能違反法規，面臨重罰與監管單位嚴格審查。</p>



<h3 class="wp-block-heading">敏感資料外洩</h3>



<p>SQL 注入可暴露使用者帳號、身分證號、財務資料或企業機密等敏感資訊。這些資料除了立即風險外，也可能被轉售或用於後續攻擊，加重損害。</p>



<h2 class="wp-block-heading"><strong>SQL 注入防護技巧</strong></h2>



<p>防止 SQL 注入需要結合安全程式設計、資料庫設定與監控工具，從多層面降低攻擊風險。</p>



<h3 class="wp-block-heading">參數化查詢與預備語句</h3>



<p>使用參數化查詢可確保使用者輸入被當作資料處理，而非可執行程式碼。預備語句允許開發者在 SQL 模板中使用佔位符，避免直接串接或拼接輸入。</p>



<h3 class="wp-block-heading">資料庫稽核與監控</h3>



<p>持續監控資料庫活動，可偵測可疑查詢或異常存取行為。稽核日誌提供歷史紀錄，對事件分析與法規遵循非常重要。</p>



<h3 class="wp-block-heading"><strong>儲存程序（Stored Procedures）</strong></h3>



<p>將資料庫邏輯封裝在儲存程序中，可控制 SQL 指令執行。透過程序內驗證輸入與限制直接存取資料表，減少注入風險。</p>



<h3 class="wp-block-heading">內建 SQL 安全性的 ORM 框架</h3>



<p>ORM（物件關聯對應）框架如 Hibernate 或 SQLAlchemy，自動處理查詢構建，可降低 SQL 注入機率。但開發者需避免用 raw SQL 覆蓋 ORM 查詢，以免破壞安全防護。</p>



<h3 class="wp-block-heading">輸入驗證與清理</h3>



<p>驗證與清理使用者輸入至關重要。允許清單（allowlist）方式只接受安全字元與格式，例如帳號欄位僅接受英數字，特殊字元會被拒絕。<br>也可使用跳脫（escaping）技巧，對 SQL 語法可能解析的特殊字元進行編碼或中和，避免攻擊者改變查詢邏輯。</p>



<h3 class="wp-block-heading">最小權限存取</h3>



<p>限制使用者資料庫權限，只給予必要的操作範圍。即使帳號遭入侵，也能降低損害範圍。</p>



<h3 class="wp-block-heading">網頁應用防火牆（WAF）與監控工具</h3>



<p>WAF 可即時偵測並阻擋 SQL 注入攻擊，搭配其他監控工具可在應用程式層之外增加防護層。</p>



<h3 class="wp-block-heading">定期安全測試</h3>



<p>定期進行滲透測試與 SQL 注入測試案例，透過自動化工具與人工審查，及早發現漏洞，確保資安策略完整。</p>



<h2 class="wp-block-heading"><strong>EDB Postgres AI 強化資料庫安全</strong></h2>



<p>EDB 提供一系列 PostgreSQL 工具與擴充功能，使防範 SQL 注入更簡單且有效，除了基本保護，還支援強化監控、稽核與安全策略。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">EDB Postgres AI Advanced Server (EPAS)<br></span>內建安全擴充功能，加強 PostgreSQL 原生防護，包括更嚴格的密碼政策、角色管理與連線控管，降低未授權存取風險。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">EDB Postgres AI Security Pack<br></span>提供進階稽核、細緻存取控制與安全策略，可在 SQL 執行前阻擋風險指令，協助維持合規。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">PostgreSQL 擴充支援<br></span>支援多種提升安全的 PostgreSQL 擴充功能：</p>



<ul class="wp-block-list">
<li><strong>Pgcrypto</strong>：資料加密與安全雜湊</li>



<li><strong>Pgaudit</strong>：詳細 SQL 稽核</li>



<li><strong>Plpgsql_check</strong>：PL/pgSQL 靜態程式碼分析</li>



<li><strong>Pg_stat_statements</strong>：追蹤 SQL 執行狀態與效能</li>
</ul>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">EDB Postgres Insight<br></span>提供資料庫健康與效能監控，同時標示異常 SQL 行為，如登入失敗或非典型查詢，協助偵測注入攻擊。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">EDB Postgres AI Enterprise Manager<br></span>自動健康檢查、警示與集中監控，協助管理者快速發現潛在安全問題，包括跨資料庫的 SQL 注入嘗試。</p>



<p>透過 EDB Postgres AI 專屬安全功能，組織可即時偵測與阻擋 SQL 注入，並維持合規與高流量環境下的韌性。</p>



<h2 class="wp-block-heading"><strong>維持 SQL 注入防護韌性</strong></h2>



<p>防範 SQL 注入不是一次性的任務，而需持續努力。即使已有防護措施，程式碼變動、第三方互動與攻擊手法更新，都可能產生新漏洞。維持韌性包括：</p>



<ul class="wp-block-list">
<li><strong>定期更新</strong>：套用資料庫與相關軟體的安全補丁，避免因舊版本漏洞被攻擊。</li>



<li><strong>稽核與 code review</strong>：檢查設定與程式碼，確保查詢一律使用參數化與安全綁定。</li>



<li><strong>持續測試</strong>：透過自動化滲透測試提前找出可能的注入風險。</li>



<li><strong>導入安全流程</strong>：將安全納入開發生命周期，如權限控管與建置時的自動掃描。</li>



<li><strong>團隊教育</strong>：讓開發與 DBA 理解安全程式設計、參數綁定與輸入驗證的重要性。</li>
</ul>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/what-is-sql-injection-examples-prevention-techniques" target="_blank" rel="noreferrer noopener">What Is SQL Injection (SQLi), and How Do I Prevent Attacks?</a></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45556</post-id>	</item>
		<item>
		<title>資料庫遷移全攻略：掌握變更管理一次看懂</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/navigating-legacy-database-migration/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Mon, 24 Nov 2025 01:30:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45332</guid>

					<description><![CDATA[雖然企業過去多半把資料存放在 資料湖（Data Lake） 或 資料倉（Data Warehouse），但近年來，資料湖倉（Lakehouse） 已成為一種熱門選擇。它不僅成本效益高，也能高效管理與分析大量資料。湖倉中的資料來源多元：既可能來自營運系統（像是資料庫或企業資源規劃 ERP 系統，例如 SAP），也可能是即時產生的資料，能透過串流方式直接導入湖倉。]]></description>
										<content:encoded><![CDATA[
<p>資料庫遷移不只是技術上的挑戰，而是一個涵蓋策略規劃、團隊協作與流程調整的全方位專案。從明確目標到落實技術操作，每一步都影響最終成效。</p>



<p>本文將解析資料庫遷移的核心觀念，並分享如何透過有效的變更管理，讓遷移過程更順利、降低風險。</p>



<h2 class="wp-block-heading">關於資料庫遷移</h2>



<p>EDB 技術長 Julian Moffett 曾強調，企業並不是為了「好玩」而遷移資料庫，而是因為這是應用系統生態的一部分，也是核心業務資產。</p>



<p>資料庫遷移通常起因於基礎架構團隊希望降低成本，並引入更新、更具創新性的資料庫平台。</p>



<p>然而，在技術作業開始之前，首先必須明確定義目標、範圍、投資報酬率（ROI）以及時間規劃。</p>



<p>資料庫評估、結構修正（schema remediation）以及資料遷移只是技術層面的工作，而且僅占整個遷移流程的一小部分。</p>



<p>因此，資料庫遷移並非單純將舊資料庫換成新資料庫，而是一個涵蓋全面的變更管理（Change Management）專案，涉及策略規劃、團隊協作與流程調整。</p>



<h2 class="wp-block-heading">找對關鍵夥伴</h2>



<p>資料庫遷移除了是技術作業，也需要關鍵團隊的支持。</p>



<p>應用程式團隊必須從一開始就參與，確保遷移後應用能正常運作，必要時調整程式碼，避免原本的資料庫無法順利退役。</p>



<p>當然，財務團隊也很重要，他們要了解遷移的成本與價值。安全、合規以及各業務主管也是不可忽略的利害關係人。有時候直接取得 CTO 或 CIO 的支持，也可以讓整個遷移專案更順利推進！</p>



<h2 class="wp-block-heading">設定明確目標</h2>



<p>使用 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">SMART 方法（具體 Specific、可衡量 Measurable、可達 Achievable、相關 Relevant、有時限 Time-bound）</span> 是管理利害關係人目標的好工具。透過設定清楚、可實現且可衡量的遷移目標，並確保與公司及各利害關係人的需求一致，可以有效避免潛在風險。</p>



<p>EDB 的流程與工具能協助企業達成目標，大幅減少重新編碼或重構 PL/SQL 或應用程式的工作量。同時，清楚估算工作量與成本，也是成功遷移的重要關鍵。</p>



<h2 class="wp-block-heading">明確展現遷移的好處</h2>



<p>有時候，團隊可能會因為手上有其他專案或業務交付壓力，而對資料庫遷移持保留態度。對未知的擔憂或認為遷移成本過高，也可能讓人猶豫不決。</p>



<p>因此，清楚說明遷移對企業、應用團隊以及所有參與者的效益非常重要！</p>



<h2 class="wp-block-heading">為何需要遷移到 Postgres？</h2>



<p>EDB 提供免費的<a href="https://www.enterprisedb.com/calculator/oracle-migration-calculator?step=0" target="_blank" rel="noreferrer noopener"> ROI 計算工具</a>，幫助企業評估從 Oracle 遷移到 Postgres 可節省的成本。<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">除了提升投資報酬率、降低費用之外，開發者體驗更佳、敏捷性提高。</span> </p>



<p>對基礎架構團隊而言，能夠高度自動化部署資料庫，且不需人工干預，也是重要優勢。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" width="960" height="540" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-1.png?resize=960%2C540&#038;ssl=1" alt="" class="wp-image-45334" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-1.png?w=960&amp;ssl=1 960w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-1.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image-1.png?resize=768%2C432&amp;ssl=1 768w" sizes="(max-width: 960px) 100vw, 960px" /></figure>



<p>另一個遷移的理由，<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">是能吸引並留住人才</span>。像 Postgres 這類現代技術，對新進畢業生具有吸引力，因為他們學校或實習時更可能接觸這些平台。</p>



<p>引入這些技術不僅有助於留住現有員工，也能吸引新人才，保留企業的知識資產，促進組織成長！</p>



<p>此外，EDB Postgres 的新分析與 AI 功能，也對開發者十分有吸引力。生成式 AI 的快速發展，正在改變整個產業格局。開發者與資料庫管理員對向量資料庫（vector database）非常感興趣，而 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Postgres 本身也能作為向量資料庫運行</span>，滿足這類需求。</p>



<h2 class="wp-block-heading">資料庫遷移要有耐心</h2>



<p>要成功完成資料庫遷移，不能只著眼於技術層面，還必須明確定義利害關係人、流程與遷移效益。</p>



<p>EDB 現場技術長 Julian Moffett 指出：「這部分的溝通絕對不能不足。你必須清楚向利害關係人說明遷移的價值、對公司重要性，以及對他們的核心好處。」</p>



<p>當被問到以他的遷移經驗，會給出哪些建議時，Julian 表示：「做好準備、動員團隊、持續溝通、建立並追蹤指標。要有耐心與毅力，一點一滴推進。這些步驟，最終才能真正釋放遷移帶來的效益。」</p>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/navigating-legacy-database-migration-mastering-change-management" target="_blank" rel="noreferrer noopener">Navigating Legacy Database Migration: Mastering Change Management</a></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是<a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45332</post-id>	</item>
		<item>
		<title>什麼是資料湖倉（Lakehouse）？</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/what-is-lakehouse/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Tue, 11 Nov 2025 01:12:00 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[PostgreSQL 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45271</guid>

					<description><![CDATA[雖然企業過去多半把資料存放在 資料湖（Data Lake） 或 資料倉（Data Warehouse），但近年來，資料湖倉（Lakehouse） 已成為一種熱門選擇。它不僅成本效益高，也能高效管理與分析大量資料。湖倉中的資料來源多元：既可能來自營運系統（像是資料庫或企業資源規劃 ERP 系統，例如 SAP），也可能是即時產生的資料，能透過串流方式直接導入湖倉。]]></description>
										<content:encoded><![CDATA[
<p>企業過去多半把資料存放在 <strong>資料湖（Data Lake）</strong>或 <strong>資料倉（Data Warehouse）</strong>。</p>



<p>近年來，<strong>資料湖倉（Lakehouse）</strong>已成為一種熱門選擇。<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">它不僅成本效益高，也能高效管理與分析大量資料</span>。湖倉中的資料來源多元：既可能來自營運系統（像是資料庫或企業資源規劃 ERP 系統，例如 SAP），也可能是即時產生的資料，能透過串流方式直接導入湖倉。</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">推薦閲讀</span>：<a href="https://www.omniwaresoft.com.tw/product-news/edb-news/navigating-legacy-database-migration/" target="_blank" rel="noreferrer noopener">資料庫遷移指南：掌握變更管理一次看懂！</a></p>



<h2 class="wp-block-heading">資料倉是什麼？</h2>



<p>資料倉是一種高度整合、經過優化的資料存放與分析方式，主要用於關聯型資料。</p>



<p>相比資料湖，資料倉通常能提供更高品質的服務，但成本也更高。此外，資料倉的架構會帶來一些額外複雜性，例如需要透過擷取、轉換、載入的流程（ETL）把資料從資料湖移入資料倉，這也可能造成資料的可用性延遲。</p>



<h2 class="wp-block-heading">資料湖倉跟資料湖是一樣的嗎？</h2>



<p>兩者有相似之處。</p>



<p>資料湖就像一個大型水庫，可以存放各種結構化或非結構化資料，規模不受限制。而資料湖倉則在此基礎上加強了功能，它提供了元資料管理層，帶來資料管理工具與功能，並具備類似資料倉的能力。</p>



<h2 class="wp-block-heading"><strong>為什麼需要資料湖倉</strong>？</h2>



<p>資料湖倉能帶來多項優勢：</p>



<ul class="wp-block-list">
<li>提供像資料湖一樣成本效益高、可擴展的資料存儲</li>



<li>擁有資料倉的交易一致性、低延遲查詢以及精細化存取控制</li>



<li>支援多種資料型態，包括結構化、半結構化和非結構化資料</li>



<li>互動式查詢回應速度快</li>



<li>不再需要在資料湖與資料倉之間維護獨立的 ETL 流程</li>



<li>能夠從其他系統或即時資料串流匯入資料，輔助資料探索、準備與優化</li>
</ul>



<p>資料湖倉之所以能提供這些優勢，是因為它採用了優化的開放表格格式和開源標準，既能實現高效能分析，又保留資料湖般開放的架構。難怪越來越多企業選擇使用資料湖倉。</p>



<h3 class="wp-block-heading">資料匯入方法</h3>



<p>將資料導入資料湖主要有兩種方式：</p>



<p><span class="sme-text-color has-vivid-red-color">以下方法為傳統資料湖常用的匯入方式，資料湖倉也可直接利用批次或即時資料進行分析。</span></p>



<p>（一）<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">批次 ETL</span>：</p>



<p>透過擷取、轉換、載入（ETL）的流程，先從來源系統抓取資料，再依需求進行轉換，最後批次載入資料湖。這種方式適合處理來自核心系統的大量營運資料。</p>



<p>（二）<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">即時資料捕捉（CDC）</span>：</p>



<p>另一種方式是透過變更資料捕捉（CDC）技術，即時監控資料變動，將最新資料持續導入資料湖。即時資料來源多元，例如透過 Kafka 等訊息總線傳送的物聯網（IoT）感測器資料或其他串流資料。</p>



<p class="is-style-sme-alert-remark">對於串流資料來源，資料會持續地直接匯入資料湖，這稱為串流資料匯入。即時匯入能讓企業及時分析快速變化的資料，與批次 ETL 處理的營運資料互為補充。資料一旦進入資料湖倉後，就可以進行分析，挖掘出有價值的洞察。</p>



<h3 class="wp-block-heading">分析流程</h3>



<p>分析工作通常包含以下步驟：</p>



<ol class="wp-block-list">
<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">資料探索</span>：了解資料的品質、語意、結構等特性</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">資料準備</span>：進行資料清理、篩選、正規化以及去重</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">資料優化</span>：將資料轉換成適合高效分析的格式，例如欄式存儲或分析型資料表結構</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">批次分析</span>：對優化後的資料進行查詢或模型運算</li>



<li><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">自動報告</span>：將分析結果打包成排程報告，提供給使用者</li>
</ol>



<p>資料湖雖然在大規模資料的成本效益存儲上表現出色，但對於某些進階分析需求仍有侷限，例如需要低延遲的即時儀表板互動查詢、連續資料匯入的交易一致性保障，或精細化的資料存取控制以符合法規與安全需求。</p>



<p>資料湖倉則能解決這些問題，將資料倉與資料湖的優點整合到單一、開放的架構中。作為一個統一的一站式解決方案，它兼具資料湖的成本效益與可擴展存儲能力，以及資料倉的高級分析功能和服務品質。</p>



<figure class="wp-block-image size-full is-resized"><img data-recalc-dims="1" loading="lazy" width="611" height="352" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image.png?resize=611%2C352&#038;ssl=1" alt="" class="wp-image-45272" style="width:686px;height:auto" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image.png?w=611&amp;ssl=1 611w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2025/11/image.png?resize=300%2C173&amp;ssl=1 300w" sizes="(max-width: 611px) 100vw, 611px" /></figure>



<h2 class="wp-block-heading">總結</h2>



<p>總結來說，資料湖倉結合了資料湖與資料倉的優點，不僅能提供成本效益高、可擴展的資料存儲，還具備高級分析能力、低延遲查詢以及精細化存取控制。</p>



<p>它支援多種資料型態，能處理批次與即時資料流，並簡化資料整合流程，讓企業能更快速、靈活地探索、準備與分析資料。對希望同時兼顧效率與品質的企業而言，資料湖倉是一個完整、一站式的解決方案。</p>



<p>本文翻譯自：<a href="https://www.enterprisedb.com/blog/unleashing-ai-postgresql-what-lakehouse" target="_blank" rel="noreferrer noopener">Unleashing AI with PostgreSQL: What is a Lakehouse?</a></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是<a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45271</post-id>	</item>
		<item>
		<title>PostgreSQL 16 五大更新－權限管理、邏輯複寫、使用體驗與效能升級（實測提升 300 % !）</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/postgresql-16-latest-release/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Wed, 09 Aug 2023 09:49:24 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=36789</guid>

					<description><![CDATA[PostgreSQL 開發團隊於 2023 年 5 月 25 日發布了 PostgreSQL 16 Beta 1 測試版。PG 16 優化了邏輯複寫功能，讓開發者能從備援資料庫（Stand By）進行邏輯複寫，同時也支援平行處理大量資料交易，從而提高效能。]]></description>
										<content:encoded><![CDATA[<p>


</p>
<p>PostgreSQL 開發團隊於 2023 年 9 月 24 日釋出了最新的 PostgreSQL 16 版開源資料庫，該版本在平行查詢、批次處理和邏輯複寫有顯著的效能提升，使其在處理大量數據時更為高效。此版本在 SQL/JSON 語法上提供更進階的支援，並提供更靈活的權限管理設定，讓使用者依據自身需求定義存取規則。另外，PostgreSQL 16 也優化了 VACUUM 和 ANALYZE 指令，並新增 pg_stat_io 系統表來加強效能監控。</p>
<h2>PostgreSQL 16 五大升級</h2>
<p>


</p>
<p>


</p>
<h3 class="wp-block-heading">一、<strong>權限管理（Privilege Administration）</strong></h3>
<p>


</p>
<p>


</p>
<p>PostgreSQL 16 對權限管理進行深度優化與調整。在 <a href="https://www.omniwaresoft.com.tw/product-news/edb-news/postgresql-15-latest-release/">PostgreSQL 15</a> 的架構中，所有核心權限都集中於超級使用者，這種管理模式雖然對單一使用者或小型開發團隊來說直觀且高效，但當應用於大型組織，尤其在使用者眾多且各具特定權限需求的狀況下，這種集中化的權限管理方式往往不太靈活。</p>
<p>


</p>
<p>


</p>
<p>為了解決上述問題，Postgres 16 修改了 <strong>CREATEROLE </strong>指令，讓使用者只能在具有 <strong>ADMIN OPTION </strong>的角色下授予權限。這項更新讓系統管理員能夠更精確地分配的權限，另外，PostgreSQL 16 還加強了對 pg_hba.conf 和 pg_ident.conf 設定檔的管理，讓使用者對用戶和資料庫名稱進行正規表示法匹配，或用外部設定檔指定規則，增加管理效率。</p>
<p>PostgreSQL 16 還新增針對客戶端安全性的連線參數，例如透過 require_auth 讓客戶端指定想要的驗證方式，以及透過 sslrootcert=&#8221;system&#8221; 參數，讓 PostgreSQL 使用客戶端作業系統內建的憑證頒發機構。另外，此次改版也支援 Kerberos 的認證代理，讓  postgres_fdw 和 dblink 擴充套件使用憑證連接到其他受信服務。</p>
<p>


</p>
<p>


</p>
<h3 class="wp-block-heading">二、<strong>邏輯複寫（Logical Replication）</strong></h3>
<p>


</p>
<p>


</p>
<p>PostgreSQL 16 對邏輯複寫進行多項性能優化。其中一項是為備援資料庫（Stand By）導入 Logical Decoding（邏輯解碼）功能，讓使用者在執行資料交易時，快照資料交易狀態並將其儲存於 WAL 檔，這種方式能夠有效降低使用檢查點（Check Point）的需求，而使用者能透過新的 pg_log_standby_snapshot() 函數來完成。</p>
<p>


</p>
<p>


</p>
<p>另外，PostgreSQL 16 利用平行查詢技術處理大型資料交易。當主節點正在執行資料交易時，系統能夠進行平行處理。基準測試（Benchmark Testing）顯示，PostgreSQL 16 與前幾個版本相比，執行 Bulk Insert 的效率提升了將近 40％。</p>
<p>


</p>
<p>


</p>
<p>PostgreSQL 16 還更新了其他邏輯複寫效能，包括初始化時的位元資料複製技術、對沒有主鍵（Primary Key）的表格，訂閱者（logical replication subscriber）可以使用 B－Tree 索引查詢資料列，從而取代序列掃描。在特定情境中使用者甚至能透過二進制格式增加初始表的同步效率。在資安方面，為確保資料的安全性與完整性，PostgreSQL 16  只允許資料表擁有者在執行邏輯複寫時使用 SELECT 和 DML 語法，這種更嚴格的權限管理策略要求訂閱者在複寫集（Replicatoin Set）中具有 SET ROLE 權限或具備超級用戶權限。</p>
<h3 dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;">三、提升開發者使用體驗</h3>
<p>PostgreSQL 16 新增了更多 SQL/JSON 標準語法，其中包括由 JSON 格式組成的建構子和述詞，例如：JSON_ARRAY()、JSON_ARRAYAGG() 以及 IS JSON。另外，PostgreSQL 16 還導入使用底線作為分隔符號（例如：5_432_000）和小數點以外的字符功能（例如：0x1538、0o12470 和 0b1010100111000）。</p>
<p>在 psql 工具方面，PostgreSQL 16 新增了許多指令。其中，bind 指令可以協助開發者準備參數化查詢，並透過該語法替代參數，例如：SELECT $1::int + $2::int bind 1 2 g。</p>
<p>另外，PostgreSQL 16 還內建對 ICU （國際統一編碼）的支援，這項功能會根據使用者的主機環境來確定文本排序方式，並允許使用者指定 ICU 排序規則。</p>
<h3> 四、<strong style="color: #3c3950; text-transform: capitalize; font-size: 25px; letter-spacing: 0.05em;">效能優化</strong></h3>
<p>PostgreSQL 16 透過優化查詢執行能力，大幅提升平行查詢結果。這次更新讓 FULL Join 和 RIGHT Join 能在並行模式下執行，而 aggregate group 和 parallel aggregate 指令則能提升 SQL 的運行效率。在 PostgreSQL 16 中 SELECT DISTINCT 查詢指令新增了增量排序（Incremental Sorting）功能，以提升資料處理效率。</p>
<p>另外，此次更新也改進了 Right 和 Outer 處理 Anti Join 的功能，讓使用者更容易查詢到資料表中不存在的資料列。</p>
<p>無論是單一或並行運算， 當使用 COPY 指令執行批次載入時，效能能夠提升高達 300% 。而 PostgreSQL 也為使用 libqp 的客戶端新增負載平衡機制，並對 Vacuum 語法進行優化，從而減少使用全表凍結（Full Table Freeze）的必要性，這代表未來 PostgreSQL 資料庫的高可用性和讀寫分離將更容易實現。</p>
<p>另外，PostgreSQL 16 在 x86 和 ARM 架構中使用 SIMD 增加 CPU 效能，因此在處理 ASCII 、 JSON 字串和陣列時能提高效能。</p>
<p>PostgreSQL 16 也同時進行了其他性能優化，例如對 RANGE 和 LIST 進行分區查詢以及允許使用者控制執行 ANALYZE / VACUUM 指令使用的 Shared Buffer 大小。</p>
<h4>歐立威科技實測 Vacuum_buffer_usage_limit </h4>
<p>維運作業上，新加入的參數 vacuum_buffer_usage_limit ，提供管理者更具彈性的 Vacuum 作業資源使用控制。以下為歐立威科技進行的 Vacuum 效能控制測試結果（測試資源規格：2 Cores、記憶體 16 G、Shared_buffers 4 GB）。</p>
<p><strong>【測試資源規格</strong><strong>】</strong></p>
<p>記憶體 2 Cores、16 G、Shared_buffers 4 GB</p>
<p><strong>【完整結果整理】</strong></p>
<table>
<tbody>
<tr>
<td>
<p>vacuum_buffer_usage_limit</p>
</td>
<td>
<p>128 KB</p>
</td>
<td>
<p>256 KB</p>
</td>
<td>
<p>512 KB</p>
</td>
<td>
<p>16 MB</p>
</td>
<td>
<p>32 MB</p>
</td>
<td>
<p>64 MB</p>
</td>
<td>
<p>128 MB</p>
</td>
<td>
<p>512 MB</p>
</td>
<td>
<p>1 GB</p>
</td>
<td>
<p>0</p>
</td>
</tr>
<tr>
<td>
<p>10,000,000筆 <br />1595 MB</p>
</td>
<td>
<p>00:36.140</p>
</td>
<td>
<p>00:37.562</p>
</td>
<td>
<p>00:42.059</p>
</td>
<td>
<p>00:41.784</p>
</td>
<td>
<p>00:36.708</p>
</td>
<td>
<p>00:38.253</p>
</td>
<td>
<p>00:45.894</p>
</td>
<td>
<p>00:41.521</p>
</td>
<td>
<p>00:36.907</p>
</td>
<td>
<p>00:43.541</p>
</td>
</tr>
<tr>
<td>
<p>50,000,000筆<br />7974 MB</p>
</td>
<td>
<p>17:43.174</p>
</td>
<td>
<p>09:07.084</p>
</td>
<td>
<p>13:20.967</p>
</td>
<td>
<p>04:14.966</p>
</td>
<td>
<p>04:45.293</p>
</td>
<td>
<p>05:15.165</p>
</td>
<td>
<p>04:08.615</p>
</td>
<td>
<p>03:57.306</p>
</td>
<td>
<p>04:02.515</p>
</td>
<td>
<p>04:01.309</p>
</td>
</tr>
<tr>
<td>
<p>100,000,000筆 <br />16 G</p>
</td>
<td>
<p>50:03.429</p>
</td>
<td>
<p>22:57.062</p>
</td>
<td>
<p>28:12.120</p>
</td>
<td>
<p>11:36.249</p>
</td>
<td>
<p>10:03.580</p>
</td>
<td>
<p>10:10.014</p>
</td>
<td>
<p>10:50.820</p>
</td>
<td>
<p>11:35.666</p>
</td>
<td>
<p>10:23.680</p>
</td>
<td>
<p>10:40.886</p>
</td>
</tr>
</tbody>
</table>
<ul>
<li>表格大小 16 G時，參數設定 32 MB達到 Vacuum 最快之最小值。</li>
<li>表格大小 7974 MB時，參數設定 512 MB達到 Vacuum 最快之最小值。</li>
<li>表格大小 1595 MB時，因資料量太小，參數設定後 Vacuum 速度差異不大，實際效果可能取決於主機的實際狀況。</li>
</ul>
<p><strong>【觀察數據】</strong></p>
<p><img data-recalc-dims="1" loading="lazy" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2023/12/vacuum_buffer_usage_limit_png.png?resize=1170%2C703&#038;ssl=1" alt="vacuum_buffer_usage_limit_png" width="1170" height="703" /></p>
<p><strong>【測試結論】</strong></p>
<p>


</p>
<p>


</p>
<p>


</p>
<p>


</p>
<p>1. Vacuum 操作的時間會受到表格數據量的影響，大表格需要更長的時間來完成 Vacuum。</p>
<p>2. 調整 vacuum_buffer_usage_limit 參數可以影響 Vacuum 的速度，但這並非絕對規則， 實際效果可能取決於主機的實際狀況。</p>
<p>3. 單一 Vacuum 作業使用 shared buffer 的上限約為 32 MB。這可能是 Vacuum 程式本身功能的瓶頸，有一個開口向上的曲線，形成一個 Vacuum 最快之最小值。</p>
<p>4. 建議將 vacuum_buffer_usage_limit 調整為 0 使 Vacuum 作業接近最快之最小值。</p>
<p>5. 此參數可以依 Session 進行設定，也可以直接在資料庫設定檔中指定參數大小。對於處理大表的 VACUUM FULL，可以透過 Session 的方式設定，以達到彈性調整的效果。</p>
<h3 class="wp-block-heading">五、監控效能</h3>
<p>


</p>
<p>


</p>
<p>PostgreSQL 16 對監控效能進行優化，並新增 pg_stat_io 視觀表，為使用者提供更完整的 IＯ 監測資訊，此外，它也能夠紀錄資料表上一次執行 Seq Scan 和 Index Scan 的時間，以及監測記憶體中資料行的搬移行為，並評估搬移機率。</p>
<p>在 pg_locks 視觀表中，PostgreSQL 16 加入了推測鎖定（Speculate Lock）的資訊，並導入能夠針對特殊後台設備進行分析與追蹤的功能。最後，PostgreSQL 16 也加入多種新的等待事件（Wait Event），讓 16 版的監控效能相較以往更加全面。</p>
<p>PostgreSQL 16 在 pg_stat_all_tables 系統表中新增用於紀錄表格或索引最後執行掃描的時間欄位。為了提高 auto_explain 的可讀性，PostgreSQL 16 會紀錄傳遞到參數化語句中的值。另外，此次改版優化了用於執行 pg_stat_statements 和 pg_stat_activity 的查詢追蹤演算法，以提高查詢的精確性。</p>
<p>


</p>
<p>


</p>
<hr />
<p>


</p>
<p>


</p>
<p style="text-align: left;"><strong>歐立威科技持續追蹤與掌握 PostgreSQL 16 的最新動態。若有任何關於 PostgreSQL 應用、技術或建置的問題，歡迎<a href="https://www.omniwaresoft.com.tw/contact/">立即諮詢</a>，讓我們的專業團隊為您解答並提供支援。</strong></p>
<p>


</p>
<p><!-- /wp:buttons --></p>
<p><!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} --></p>
<p><!-- wp:button /--></p>
<p><!-- /wp:buttons --></p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">36789</post-id>	</item>
		<item>
		<title>從 Oracle 到 Postgres: 最完整的轉移指引五步驟 1/4篇 &#8211; PostgreSQL 與 Oracle 差異對比</title>
		<link>https://www.omniwaresoft.com.tw/product-news/edb-news/oracle-to-postgresql-5-steps-1/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Sun, 19 Mar 2023 10:06:59 +0000</pubDate>
				<category><![CDATA[EDB 產品資訊]]></category>
		<category><![CDATA[產品資訊]]></category>
		<category><![CDATA[EDB]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=34855</guid>

					<description><![CDATA[從Oracle轉移到PostgreSQL開源資料庫的企業數量正快速增長中，而這個完整的導引將提供用戶資料庫轉移過程所需的一切。對於任何對轉移過程感到恐懼或懷疑的使用者來說，本篇將分析PostgreSQL資料庫系統對比Oracle的優勢以及採用PostgreSQL後可獲得的好處── 也就是降低成本、增加靈活性和客製化程度。]]></description>
										<content:encoded><![CDATA[<p></p>
<p>本系列由 4 篇文章組成，分別為 ORACLE 與 POSTGRES 的比較(本篇)、<a href="https://www.omniwaresoft.com.tw/product-news/edb-news/oracle-to-postgresql-5-steps-2/" target="_blank" rel="noopener">資料庫評估</a>、<a href="https://www.omniwaresoft.com.tw/product-news/edb-news/oracle-to-postgresql-5-steps-3/" target="_blank" rel="noopener">架構遷移</a><a href="https://www.omniwaresoft.com.tw/product-news/edb-news/oracle-to-postgresql-5-steps-4/" target="_blank" rel="noopener">、資料庫功能測試</a>。歡迎閱讀系列中的其他文章，以了解完整的資料庫遷移步驟。</p>
<p></p>
<p></p>
<h2 class="wp-block-heading">簡介</h2>
<p></p>
<p></p>
<p>從 Oracle 轉移到 <a href="https://www.postgresql.org" target="_blank" rel="noopener">PostgreSQL </a>開源資料庫的企業數量正快速增長中，而這個完整的導引將提供用戶資料庫轉移過程所需的一切。</p>
<p></p>
<p></p>
<p>對於任何對轉移過程感到恐懼或懷疑的使用者來說，本篇將分析 PostgreSQL 資料庫系統對比 Oracle 的優勢以及採用 PostgreSQL 後可獲得的好處── 也就是降低成本、增加靈活性和客製化程度。</p>
<p></p>
<p></p>
<p>接下來，轉移過程將被分解成不同步驟，包含評估、模式轉移、功能測試、性能測試和數據轉移，並根據各階段進行逐步指導。</p>
<p></p>
<p></p>
<p>此外，兩種資料庫之間的關鍵系統性差異和不兼容之處被逐一列出，以幫助使用者避開常見錯誤，並權衡替代轉移方案，最終提出免費的有效轉移工具清單。</p>
<p></p>
<p></p>
<p>此導引除了提供給準備從 Oracle 遷移到 PostgreSQL 的用戶，也為正考慮引入 PostgreSQL 卻擔心轉移複雜性的 Oracle 用戶給予保證。 </p>
<p></p>
<p></p>
<h2 class="wp-block-heading">資料庫遷移是什麼？</h2>
<p></p>
<p></p>
<p>資料庫轉移是一種將軟體 (Definitions)、資料和儲存程序於平台，並改變應用程式的過程，過程中包含選擇、準備、擷取、轉換以及將資料應用於不同平台間。</p>
<p></p>
<p></p>
<p>使用者在轉移至 Postgres 的過程會經歷不同的階段，如挑選正確的架構、相容性檢核、改寫不相容的物件、功能和效能測試、資料轉移和轉移後檢查。</p>
<p></p>
<p></p>
<h2 class="wp-block-heading">從 Oracle 轉移到 PostgreSQL 的益處為何  ?</h2>
<p></p>
<p></p>
<p>下方列舉一些從 Oracle 遷移至 PostgreSQL 的益處</p>
<p></p>
<p></p>
<ol class="wp-block-list">
<li style="list-style-type: none;">
<ol></ol>
</li>
</ol>
<ol>
<li>撰寫應用程式</li>
<li>認證</li>
<li>可擴展性（Extensibility）</li>
<li>語言</li>
<li>在地化</li>
<li>性能</li>
<li>可擴展性（Scalability）</li>
</ol>
<p></p>
<p></p>
<h3 class="wp-block-heading">1.POSTGRESQL VS. ORACLE：撰寫應用程式</h3>
<p></p>
<p></p>
<p>Oracle 和 PostgreSQL 都提供用於資料庫對話的 API 。受益於 PostgreSQL 的開源性質，開發者能夠使用 PostgreSQL 的原始碼進行二次開發。</p>
<p></p>
<p></p>
<h3 class="wp-block-heading">2.POSTGRESQL VS. ORACLE：驗證</h3>
<p></p>
<p></p>
<p>Oracle 使用內建認證系統， PostgreSQL 則依賴主機驗證，因此它支持廣泛的驗證方法。這是為何 Postgres 使用者更有彈性的驗證選擇，並可以選擇委託代執行過程。</p>
<p></p>
<p></p>
<h3 class="wp-block-heading">3.POSTGRESQL VS. ORACLE：EXTENSIBILITY （可擴展性）</h3>
<p></p>
<p></p>
<p>Oracle 套件多為專有性質，PostgreSQL 與之相比， 受益於其開源的特性和龐大社群支援，因此 Postgres 具有成千上萬的軟體套件供使用者選擇。</p>
<p></p>
<p></p>
<h3 class="wp-block-heading">4.PostgreSQL vs. Oracle：語言</h3>
<p></p>
<p></p>
<p>Oracle 採用內建程式語言 PL/SQL ，而 PostgreSQL 不僅容納 PL/pgSQL ，還擁有各種語言及延伸系統，並允許用戶創建額外的程序語言作為插件以及綁定更多程式語言。</p>
<p></p>
<p></p>
<h3 class="wp-block-heading">5.POSTGRESQL VS. ORACLE：在地化</h3>
<p></p>
<p></p>
<p>Oracle 提供全球化工具，包括開發套件和 unicode 編碼支持。</p>
<p></p>
<p></p>
<p>相較之下， PostgreSQL 採用內建的在地化服務系統，並提供自動字元編碼和校核功能。</p>
<p></p>
<p></p>
<h3 class="wp-block-heading">6.POSTGRESQL VS. ORACLE：性能</h3>
<p></p>
<p></p>
<p>PostgreSQL 能夠在單一讀取群集中創造無限的節點，並使讀取操作的成本趨近於零，這也讓用戶能對調整每個工作量。雖然使用者也可以在 Oracle上 這樣做，但卻需承擔每個節點的額外成本。</p>
<p></p>
<p></p>
<h3 class="wp-block-heading">7.POSTGRESQL VS. ORACLE：SCALABILITY（可擴展性）</h3>
<p></p>
<p></p>
<p>Oracle 有著優秀的垂直讀取可擴展性，然而 PostgreSQL 卻能於單一叢集中創建大量唯讀（Read Only）的 StandBy ，而這僅取決於用戶願意提供的資源量。</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p>
<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-1 wp-block-buttons-is-layout-flex">
<div class="wp-block-button has-custom-font-size has-medium-font-size">
  <a class="wp-block-button__link has-background wp-element-button" href="https://www.omniwaresoft.com.tw/contactus/" target="_blank" rel="noreferrer noopener" style="background-color:#ac2323; border-radius: 50px; padding: 10px 25px; display: flex; align-items: center; justify-content: center; font-size: 14px;">聯絡我們</a>
</div>

</div>
</p></p>
<p></p>
<ol class="wp-block-list">
<li style="list-style-type: none;">
<ol></ol>
</li>
</ol>
<ol>
<li>成本：除了授權費用外，使用者還需為 Oracle 的分區功能和高可用性支付額外費用，這會導致鉅額成本。與之相比，基於Postgres 開源的特性，使用者能夠免費下載使用。</li>
<li>靈活性：基於 PostgreSQL 開源的特性，使用者可以從包括 AWS 在內的公有雲端平台上取得 PostgreSQL ，消弭遭單一廠商壟斷的風險。</li>
<li>可定制性：基於開源的特性，使用者能使用軟體套件和附加功能改善資料庫性能，而且大多套件是免費的。相較之下， Oracle 的使用者將為了類似功能付出鉅額成本。</li>
</ol>
<li style="list-style-type: none;">雖然從 Oracle 遷移至 Postgres 益處良多，但遷移資料庫的過程並非容易。</li>
</ol>
<p></p>
<p></p>
<p>因為資料在 RDBMS 之間進行轉移，而根據資料類型或是異質結構，整個過程將會是一個非常耗時的挑戰，因此使用者需用正確的工具來處理問題。</p>
<p></p>
<p></p>
<p>遵循以下步驟，問題將迎刃而解：</p>
<p></p>
<p></p>
<h2 class="wp-block-heading">相比之下，採用 PostgreSQL 有什麼優勢？</h2>
<p></p>
<p></p>
<p>簡而言之， PostgresQL 相較 Oracle 有以下七點特性：</p>
<p></p>
<p><!-- wp:list {"ordered":true} --></p>
<ol>
<li style="list-style-type: none;">
<ol><!-- wp:list-item --></ol>
</li>
</ol>
<ol>
<li>撰寫應用程式</li>
<li>認證</li>
<li>可擴展性（Extensibility）</li>
<li>語言</li>
<li>在地化</li>
<li>性能</li>
<li>可擴展性（Scalability）</li>
</ol>
<p><!-- /wp:list --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>1.POSTGRESQL VS. ORACLE：撰寫應用程式</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Oracle 和 PostgreSQL 都提供用於資料庫對話的 API 。受益於 PostgreSQL 的開源性質，開發者能夠使用 PostgreSQL 的原始碼進行二次開發。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>2.POSTGRESQL VS. ORACLE：驗證</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Oracle 使用內建認證系統， PostgreSQL 則依賴主機驗證，因此它支持廣泛的驗證方法。這是為何 Postgres 使用者更有彈性的驗證選擇，並可以選擇委託代執行過程。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>3.POSTGRESQL VS. ORACLE：EXTENSIBILITY （可擴展性）</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Oracle 套件多為專有性質，PostgreSQL 與之相比， 受益於其開源的特性和龐大社群支援，因此 Postgres 具有成千上萬的軟體套件供使用者選擇。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>4.PostgreSQL vs. Oracle：語言</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Oracle 採用內建程式語言 PL/SQL ，而 PostgreSQL 不僅容納 PL/pgSQL ，還擁有各種語言及延伸系統，並允許用戶創建額外的程序語言作為插件以及綁定更多程式語言。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>5.POSTGRESQL VS. ORACLE：在地化</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Oracle 提供全球化工具，包括開發套件和 unicode 編碼支持。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p>相較之下， PostgreSQL 採用內建的在地化服務系統，並提供自動字元編碼和校核功能。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>6.POSTGRESQL VS. ORACLE：性能</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>PostgreSQL 能夠在單一讀取群集中創造無限的節點，並使讀取操作的成本趨近於零，這也讓用戶能對調整每個工作量。雖然使用者也可以在 Oracle上 這樣做，但卻需承擔每個節點的額外成本。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:heading {"level":3} --></p>
<h3>7.POSTGRESQL VS. ORACLE：SCALABILITY（可擴展性）</h3>
<p><!-- /wp:heading --></p>
<p><!-- wp:paragraph --></p>
<p>Oracle 有著優秀的垂直讀取可擴展性，然而 PostgreSQL 卻能於單一叢集中創建大量唯讀（Read Only）的 StandBy ，而這僅取決於用戶願意提供的資源量。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:block {"ref":36770} /--></p>
<p><!-- wp:block {"ref":36750} /--></p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">34855</post-id>	</item>
	</channel>
</rss>
