DB2 聯合技術允許單一 SQL 陳述式查詢多個異構資料源,支援關聯式資料庫以及非關聯式來源(Excel、XML、平面檔等)。本文以「多個 DB2 資料庫互聯」為例,示範完整建置流程。
Administrator)db2admin)SAMPLE(未建立可執行 db2sampl 建立)DB2 UPDATE DBM CFG USING FEDERATED YES
DB2STOP
DB2START
注意:修改 FEDERATED 參數需重啟實例生效。
DB2 CREATE DB TESTDB
-- 連線 SAMPLE
CONNECT TO SAMPLE;
-- 建立 DRDA 包裝器
CREATE WRAPPER DRDA;
-- 建立伺服器定義(指向 TESTDB)
CREATE SERVER TESTDB
TYPE DB2/UDB
VERSION '8.2'
WRAPPER "DRDA"
AUTHID "db2admin"
PASSWORD "db2admin"
OPTIONS (ADD DBNAME 'TESTDB', PASSWORD 'Y');
CREATE USER MAPPING FOR "ADMINISTRATOR" SERVER "TESTDB"
OPTIONS (ADD REMOTE_AUTHID 'db2admin', ADD REMOTE_PASSWORD 'db2admin');
CONNECT TO TESTDB USER db2admin USING db2admin;
CREATE TABLE WORKITEM (
ITEMNO CHAR(4) NOT NULL,
ITEMNAME VARCHAR(50) NOT NULL,
EMPNO CHAR(6),
PRIMARY KEY (ITEMNO)
);
INSERT INTO WORKITEM VALUES ('0001', '測試程式模組1', '000010');
INSERT INTO WORKITEM VALUES ('0002', '完成模組2的開發', '000020');
INSERT INTO WORKITEM VALUES ('0003', '聯繫客戶A', '000030');
CONNECT TO SAMPLE;
CREATE NICKNAME ADMINISTRATOR.WORKITEM FOR TESTDB.DB2ADMIN.WORKITEM;
-- 單獨查詢遠端表
SELECT * FROM WORKITEM;
-- 跨資料庫 JOIN:SAMPLE.EMPLOYEE 與 TESTDB.WORKITEM
SELECT A.ITEMNO, A.ITEMNAME, A.EMPNO, B.FIRSTNME, B.LASTNAME
FROM WORKITEM A
LEFT OUTER JOIN EMPLOYEE B ON A.EMPNO = B.EMPNO;
| 元件 | 角色 | 範例值 |
|---|---|---|
| Wrapper | 資料源類型驅動程式 | DRDA (DB2 間通訊) |
| Server | 具體遠端資料庫實體定義 | TESTDB (指向實際資料庫) |
| User Mapping | 本地使用者對應遠端認證 | ADMINISTRATOR → db2admin |
| Nickname | 本地資料庫中遠端物件的別名 | ADMINISTRATOR.WORKITEM |
PUSHDOWN 選項下推謂詞至遠端執行,減少網路傳輸。透過聯合資料庫架構,企業可打破資料孤島,實現邏輯層面的資料整合,而無需物理搬移資料,是現代資料架構的關鍵基礎設施。