首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

IBM InfoSphere Federation Server V9.7 新特性深度解析:數據類型、Wrapper 與 SQL 增強

     編輯:DB2 教學

概覽

IBM InfoSphere Federation Server V9.7 帶來重大增強,涵蓋數據類型兼容性、JDBC Wrapper 引入、Oracle 聯邦存儲過程多結果集支持、以及 SQL 功能擴展,大幅提升異構數據集成的靈活性與性能。

一、數據類型改進

1.1 DECFLOAT 與 NUMBER 類型支持

V9.7 內建支持 DECFLOAT(十進制浮點數),建立遠程 DECFLOAT 與本地聯邦數據庫的類型映射,實現透明訪問。基於此,進一步支持 Oracle 風格的 NUMBER 類型:

  • 本地聯邦數據庫兩種模式:默認模式(不支持 NUMBER)與 NUMBER 兼容模式(支持)。
  • 創建數據庫前設置 DB2_COMPATIBILITY_VECTOR=10 啟用 NUMBER 兼容性。
  • 引入服務器變量 NUMBER_COMPAT(Y/N,默認 N)指示遠程數據源兼容性。
  • 形成四種組合運行模式(本地/遠程各自兼容與否),其中 (c)(d) 為 V9.7 新增。

NUMBER 兼容組合運行模式

1.2 VARCHAR2 數據類型與語義支持

VARCHAR2 作為 VARCHAR 同義詞引入,語義與 Oracle 一致:空字符串視為 NULL,標量函數返回零長度 CHAR/VARCHAR 視為 NULL。

  • 本地兩種模式:默認模式與 VARCHAR2 語義兼容模式。
  • 設置 DB2_COMPATIBILITY_VECTOR=20 啟用。
  • 服務器變量 VARCHAR2_COMPAT 指示遠程兼容性,NO_EMPTY_STRING 指示遠程列是否含空串,輔助 PUSHDOWN 分析。
  • 同樣形成四種組合模式,(c)(d) 為新增。

VARCHAR2 兼容組合運行模式

1.3 TIMESTAMP(p) 增強與 DATE 類型支持

TIMESTAMP(p) 參數化類型(p=0..12,默認 6)全面支持,實現不同精度遠程/本地 TIMESTAMP 靈活映射,自動填充/截斷。進而支持 DATE 兼容模式:內部用 TIMESTAMP(0) 表示 DATE。

  • 本地模式:默認 vs DATE 兼容模式(DB2_COMPATIBILITY_VECTOR=40)。
  • 服務器變量 DATE_COMPAT(Y/N)指示遠程兼容性。
  • 四種組合模式影響包含 TIMESTAMP/DATE 的 SQL 推送下分析。

DATE 兼容組合運行模式

1.4 隱式類型轉換增強

繼承 DB2 V9.7 弱類型特性,聯邦數據庫自動處理查詢中隱式轉換並進行 PUSHDOWN 分析;新增 number↔string、date↔timestamp 等轉換;為 UDB 數據源添加更多 CAST 遠程默認函數映射,提升遠程執行比例與性能。

1.5 Teradata LOB 類型初步支持

針對 Teradata CLOB/BLOB:

  • 建立本地/遠程 LOB 默認前向/反向類型映射。
  • 修改 DDL 支持創建含 LOB 列的遠程表昵稱。
  • 支持通過昵稱檢索 LOB 數據。
  • 修改 Transparent DDL 語法支持遠程 LOB。

當前限制:不支持通過昵稱對遠程 LOB 列進行 I/U/D;Passthru 模式下不可查詢遠程 LOB 列。

Teradata LOB 支持示意

二、Wrapper 改進

2.1 JDBC Wrapper 全新引入

針對無 ODBC 驅動或需兩階段提交等新特性的數據庫(如 Cloudscape/Derby、Universal Data),提供 JDBC Wrapper:

  • 跨平台移植部署更容易。
  • 支持最新數據庫技術(如 XA 兩階段提交)。
  • 客戶端配置簡化,僅需連接字符串與 CLASSPATH。

配置步驟:

  1. 創建 Wrapper:CREATE WRAPPER jdbc;(自動定位默認庫)或指定庫 CREATE WRAPPER jdbc_wrapper1 LIBRARY 'libdb2rcjdbc.a';(庫名隨平台不同)。
  2. 創建 Server 對象,指定 driver_class(必填)、url(必填)、driver_package(可選)、jdbc_log(可選)。
  3. 後續操作(昵稱創建/查詢)與其他 Wrapper 一致。
CREATE SERVER jdbc_server_cs1 TYPE JDBC VERSION 3.0 WRAPPER jdbc_wrapper1 OPTIONS (
  DRIVER_CLASS 'org.apache.derby.jdbc.ClientDriver',
  URL 'jdbc:derby://iiregr01.cn.ibm.com:1527/testdb9;create=true;',
  DRIVER_PACKAGE '/wsdb/v10/bldsupp/ALL/jdbc_driver/derbyclient.jar',
  JDBC_LOG 'Y');

2.2 Oracle Wrapper 支持聯邦存儲過程返回多結果集

增強聯邦存儲過程能力,可獲取遠程 Oracle 存儲過程的所有輸出(參數、返回值、多結果集)。新增 WITH RETURN TO CLIENT (...) 子句指定結果集返回客戶端或調用端,支持交叉訪問(任意順序訪問多結果集)。

聯邦存儲過程工作流程

限制:目前僅支持 Oracle 來源;遠程定義變更需 DROP 再 CREATE 或使用 CREATE OR REPLACE;暫不支持 ALTER PROCEDURE 修改聯邦定義。

三、SQL 改進

3.1 存儲過程結果集連接操作支持 (db2fedgentf 工具)

新增自動化工具 db2fedgentf,將存儲過程返回的結果集映射為表函數,隨後可進行標準 SQL 連接操作。工具亦可刪除指定表函數。

工作原理示例:遠程 DB2 存儲過程 INVENTORY → 本地聯邦存儲過程 FS_INVENTORY → db2fedgentf 生成表函數 → 與本地表 NOTEBOOK 連接查詢供應商電話。

db2fedgentf 工具原理

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved