是如何实现的有了一个比较清楚的了 解。当使用 DB2 Information Integrator 来帮助我们从三个不同的数据源访问和合并信 息时,我们发现很显然工作变得更简单,而且更快了。我们减少了大约 40% 必须实现的代 码行,并且减少了更多的实现时间。
我们节省的大部分工作量是由于能够使用 DB2 Information Integrator 来更加抽象地 工作。我们不需要考虑数据的位置,我们不需要确定怎样正确地分解对每个数据源的查询 ,我们无须担心数据访问策略,而且我们甚至不必费心去考虑 SQL 方言的不同。DB2 Information Integrator 负责为我们处理所有这些内容。
那么,我们得到了什么呢?是的,我们的确需要安装和配置一个 DB2 Information Integrator 环境。但是,这只是一次性工作,我们希望有一个数据库或系统管理员至少承 担了生产环境中的部分工作。但是,我们不必将就糟糕的性能,也许这与您不谋而合。请 继续关注本系列中最后一篇文章,我们将在其中讨论不同的查询实现的性能问题。
附录 A. 配置我们的 DB2 Information Integrator 环境的 SQL 语句
----------------------------------------------------
-- 1. get database connection
----------------------------------------------------
CONNECT TO test USER db2admin USING db2pwd;
----------------------------------------------------
-- 2.1. DB2 remote server
-- Node & authorization information here have been changed
from our in-house environment
----------------------------------------------------
-- catalog the node
UNCATALOG NODE jaqdb2;
CATALOG TCPIP NODE jaqdb2 REMOTE 9.99.99.91 SERVER 50000;
-- catalog the database
UNCATALOG DATABASE tpcd;
CATALOG DATABASE tpcd AT NODE jaqdb2;
-- create DB2 wrapper
DROP WRAPPER drda;
CREATE WRAPPER drda;
-- create DB2 server definition
CREATE SERVER jaqdb2 TYPE db2/udb VERSION 8.1 WRAPPER drda
AUTHORIZATION "demo"
PASSWORD "cdidemo" OPTIONS (DBNAME ''tpcd'');
-- create User mapping
CREATE USER MAPPING FOR db2admin SERVER jaqdb2 OPTIONS
(REMOTE_AUTHID ''demo'',
REMOTE_PASSWORD ''cdidemo'');
-- create nicknames
CREATE NICKNAME db2_part FOR jaqdb2.tpcd.part;
CREATE NICKNAME db2_supplier FOR jaqdb2.tpcd.supplier;
CREATE NICKNAME db2_partsupp FOR jaqdb2.tpcd.partsupp;
CREATE NICKNAME db2_nation FOR jaqdb2.tpcd.nation;
CREATE NICKNAME db2_region FOR jaqdb2.tpcd.region;
CREATE NICKNAME db2_customer FOR jaqdb2.tpcd.customer;
CREATE NICKNAME db2_orders FOR jaqdb2.tpcd.orders;
----------------------------------------------------
-- 2.2. Oracle remote server
----------------------------------------------------
-- create Oracle wrapper
DROP WRAPPER net;
CREATE WRAPPER net;
-- create Oracle server definition
CREATE SERVER jaqora TYPE oracle VERSION 8 WRAPPER net8
AUTHORIZATION "demo"
PASSWORD "cdidemo" OPTIONS (NODE ''iidemo2'');
-- create user mapping
CREATE USER MAPPING FOR db2admin SERVER jaqora OPTIONS
(REMOTE_AUTHID ''demo'',
REMOTE_PASSWORD ''cdidemo'');
-- create nicknames
CREATE NICKNAME ora_part FOR jaqora.demo.part;
CREATE NICKNAME ora_supplier FOR jaqora.demo.supplier;
CREATE NICKNAME ora_partsupp FOR jaqora.demo.partsupp;
CREATE NICKNAME ora_customer FOR jaqora.demo.customer;
CREATE NICKNAME ora_orders FOR j
|