配色: 字号:
多源数据集和报表系统的集成方法
2017-07-18 | 阅:  转:  |  分享 
  
多源数据集和报表系统的集成方法

一般情况下,数据集只从单个数据源中查询数据,亦即一个数据集仅仅依赖于单个数据源。

但是,有些报表的单个数据集可能来自多个数据库服务器,甚至来自不同的数据库管理系统。

为这样的报表准备数据时,需要使用联合查询技术,设计来自多个数据源的数据集。

常见的多源数据集分两种情况:多Oracle数据源和Oracle与SQLServer异构数据源。

以下用葡萄城报表来举例,说明这两种数据源的集成方法。

葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集

成,也可独立部署运行,支持多数据源,具有无编码、灵活、稳定等特性,可以帮您快速搭建

专业的报表软件系统,实现各类报表的设计、管理、权限控制、数据填报、负载均衡及跨平台

发布。



3.1多Oracle数据源

如果需要将来自多个Oracle服务器上的数据集成在一张报表上,可采用Oracle的数据库

链接(DatabaseLink)技术,具体使用方法如下:

(1)以具备CREATEDBLINK权限的身份登录到Oracle数据库,这个数据库应该是报表

取数的数据源库。

(2)创建数据库链接。假设从另一台Oracle服务器db2server抓取数据,创建数据库

链接的语句应形如:

createdatabaselinkORCL02

connecttodb2useridentifiedbydb2userpassword

using''(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=db2server)(PORT=1521))

)

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=db2servicename)

)

)'';

其中:

db2user:提供数据的Oracle服务器上的用户名,不要带引号。例如:system。

db2userpassword:登录提供数据的Oracle服务器的密码,不要带引号。

db2server:提供数据的Oracle服务器的计算机名或IP地址,不要带引号。

db2servicename:提供数据的Oracle服务器的服务名,默认为ORCL。

(3)在查询语句中,以@数据库链接的形式,使用数据库链接抓取数据,例如:

selectfromHR.JOBS@ORCL02;

其中的ORCL02就是上面创建的数据库链接名。

3.2异构数据源

异构数据源是指同一张报表中的多个不同种类的数据源。例如在一张人力资源报表中,人

员信息可能一部分来自OA系统的Oracle数据库;另一部分数据来自HRM系统的SQLServer

数据库。

要将来自Oracle和SQLServer服务器的数据集成到一张报表上,有两种技术路线:一是

基于Oracle的透明网关(TransparentGateways),从Oracle抓取SQLServer的数据。另

一个是基于SQLServer的链接服务器(LinkedServer),从SQLServer抓取Oracle的数据。

(1)从Oracle抓取SQLServer数据

Oracle的透明网关(TransparentGateway)可以实现Oracle数据库对非Oracle数据

库的透明访问。“透明”可以理解为用户感受不到被查询的数据库并非当前Oracle数据库。

使用Oracle透明网关抓取SQLServer数据的步骤如下:

(a)安装配置透明网关

Oracle的透明网关(TransparentGateway)是Oracle数据库管理系统中的一个单独授

权的模块。透明网关可以装在独立的一台的机器上,也可以安装在OracleServer端或非

OracleServer端。

(b)创建数据库链接

在Oracle中抓取SQLServer数据,首先需要通过透明网关建立一个对SQLServer的数

据库连接(DatabaseLink),语句如下:

Createdatabaselink【数据库链接名】connectto【用户名】identifiedby【密码】

using‘服务名’。

其中,用户名和密码是SQLServer的用户登录名和密码,服务名则是OracleServer端

的TNS_NAMES文件里已经配置好的服务名。

(c)在查询语句中,以@数据库链接的形式,使用数据库链接抓取数据,例如:

selectfrom表名@链接名;



(2)从SQLServer抓取Oracle数据

采用SQLServer的链接服务器,可以实现从SQL语句中抓取任意ODBC或OLEDB数

据源。抓取Oracle数据的方法如下:

(a)在SQLServer服务器上安装Oracle客户端。这是保证SQLServer能够抓取Oracle

数据的基础。

(b)使用OracleNetConfigurationAssistant,创建本地NET服务名,指向Oracle数

据库。

(c)在SQLServerManagementStudio中,创建链接服务器:服务器对象–链接服

务器–新建链接服务器,如下图:



(d)输入Oracle服务器相关信息,如下图:



链接服务器:任意名称,如:ORCL01

访问接口:选择OracleProviderforOLEDB

产品名称:任意输入,如:Oracle

数据源:这个最关键,就是Oracle本地NET服务名,如:ORCL

(e)成功保存链接服务器信息后,在SQLServer的查询语句中,以链接服务器名..的

形式,使用链接服务器。例如:

selectfromORCL01..HR.JOBS



比较异构数据源的两种抓取外部数据的方式,由于Oracle的透明网关属于单独授权的模

块,配置过程也非常复杂,而SQLServer链接服务器基于标准的ODBC和OLEDB接口规

范,配置简单且无额外成本,因此建议采用后者,即采用SQLServer的链接服务器,抓取

Oracle数据。



献花(0)
+1
(本文系zenmshuo首藏)