Howard Goldberg
IBM 公司
2005 年 6 月
一个基于联邦的策略帮助 Merrill Lynch 开发人员简化艰难的集成过程。
每个 IT 项目的核心都是数据。在大多数情况下,数据以各种格式存储在异构平台的多个数据存储器中。为了解决所导致的集成问题,应用程序项目一般是通过将数据抽取、转换和加载到一个单一、同类的存储库和平台中,而创建一个统一的数据存储。
这项任务费时、昂贵,且需要多种技能。Gartner 估计,一般的企业用于在不同数据库与遗留系统之间进行信息转换的编程预算为预算总额的 35%到 40%。
Merrill Lynch 是一家全球财务管理和咨询公司,它的 IT 组织的目标是帮助业务领域交付新的产品和解决方案,以最合算且有效的方式服务于客户,并产生效益。有了这个想法之后,再来考查项目,会发现多次移动和转换数据以满足应用程序的需求是在浪费时间和金钱。
为了解决这个问题,Merrill Lynch 采用了一个企业信息集成(enterprise information integration,EII)方法,该方法有助于降低开发成本,减少数据冗余,加快大型复杂的迁移项目,并提高总体效率和生产率。我将向大家介绍 Merrill Lynch 使用 DB2 II 把开发人员从数据访问和集成的苦海中脱离出来的一些方法。
DB2 II 上的 EII
EII 产品是这样一种中间件,利用它能够对来自不同数据源和平台的数据进行集中的访问、转换和集成,而不管数据的格式和地理位置如何。我们将 EII 策略建立于 DB2 Information Integrator (DB2 II) 之上,DB2 II 是在其最初的形式(DB2 DataJoiner)的基础上完全重新设计的产品,用于满足 EII 需要。
DB2 II 可以单独安装,也可以安装在现有 DB2 Universal Database (UDB) 引擎之上。联邦到其他 DB2 数据库不需要使用 DB2 II,因为核心数据库引擎中提供了这个功能。但是如果想要联邦到异构的数据源,比如 Sybase、Oracle 和 Microsoft SQL Server,DB2 II 则是必需的。
DB2 II 可以访问和连接来自多个不同数据源的结构化数据和非结构化数据,并使之就像是在一个数据库中一样。通过使用单个的 SQL 方言(dialect),每个数据源的惟一访问需求都被隐藏或抽象了。DB2 II 可以联邦(访问)非结构化文件、半结构化 XML 文档和关系数据源(比如 z/OS、iSeries、Linux、Unix 和 Windows 上的 SQL Server、Sybase、Informix、Teradata、Oracle 和 DB2 UDB)。可以利用 DB2 II Classic Federation for z/OS 访问遗留结构,比如 IMS、Adabas 和 IDMS。
投资元数据
中央元数据存储库用于描述数据是什么、是如何存储的、存储在哪里,以及数据组件之间的关系,它对于实现数据资产的所有潜能是很重要的。所有数据源的详细编录和其中包含的信息使得多个项目的数据架构师,可以将分布于整个公司的大量异构数据源交织在一起。元数据存储库通过降低或消除由于断开连接的应用程序集成项目所导致的数据冗余、数据移动和数据转换,有助于使用 EII 产品的公司更快更便宜地交付更好的应用程序。
Merrill Lynch 的 IT 环境包括许多来自不同供应商的关系数据库,包括 IBM(DB2 和 Informix)、Sybase、Microsoft 和 Oracle。我们将所有这些关系数据库的物理属性存储在 Corporate Data Repository (CDR) 中。Merrill Lynch 中的每个应用程序区域被分配一个惟一的标识符,用于将实体和属性信息链接到某个特定的应用程序。
CDR 提供充分描述的数据结构的一个广泛的在线编录。它很好地与 EII 策略吻合,因为它把公司的数据看成是任何应用程序可以使用的共同资产。CDR 与 DB2 II 一起使用,可以促进和加快数据集成。表 1 和表 2 展示了存储在 Merrill Lynch CDR 中的信息的示例。


尽管 CDR 帮助降低了数据冗余,并促进了数据共享,但是它还是有一个主要的缺点:不存储对象之间的关系。存储逻辑和物理实体关系模型有助于 DBA 或数据架构师理解数据背后的业务规则。Merrill Lynch 只为大型共同项目维护这些模型。
我们曾经使用 CDR 作为可以用来构建或扩展应用程序的潜在数据属性的编录。在该编录中有了数据属性,使我们可以快速识别哪些数据可用,然后再联邦到这些数据,期间使用 DB2 II 来满足项目需求。这个识别然后联邦数据的两步操作简化了我们的数据采集过程。
所有的 EII 解决方案都需要一个健壮的元数据层。Unicorn Solutions 与 IBM 协作,提供一个与 DB2 II、图形关系建模工具和报告/搜索引擎集成的元数据存储库,以研究元数据。IBM 合作伙伴 Sypherlink 也扩展了 DB2 II 元数据功能。
收获回报
DB2 II 的一个关键的特点是,它具有利用远程数据源的功能的能力。其他 EII 产品本地化所有数据,以执行所需的处理。DB2 II 引擎的目标是将尽可能多的工作推向远程数据源。DB2 II 引擎使用 DB2 优化器和关于远程数据源及对象的特定信息,来确定如何分配满足查询目标所需的任务。
DB2 II 引擎使用一个构造块集合来连接和捕获远程数据源的关键功能。这个集合包括包装器、服务器和昵称对象。包装器包含数据源的连接信息。服务器对象关联一个特定的数据源到一个包装器。昵称识别服务器中的远程对象。关于远程数据源的信息是在创建对象时收集的,并存储在本地 DB2 II 编录中。
在查询调用期间,DB2 优化器使用本地 DB2 II 编录中的有关远程对象的信息创建一个全局计划(参见图 1)。该全局计划是 DB2 II 引擎将用于达到查询目标的访问策略。不是将所有数据都放到 DB2 II 引擎上,优化器的传输功能使它可以将工作负载分成块,并利用远程数据源的功能和资源。诸如连接表、应用谓词和执行排序等函数可以被传输到关系数据源。DB2 II 也可以将工作传输到非关系数据源,但是该工作通常局限于应用函数和过滤结果集。DB2 II 引擎协调请求并充当集成点,同时合并返回给 DB2 II 服务器的结果集。

可以使用三种不同的模型来实现 DB2 II:集中式、分散式和混合式。在集中式方法中,DB2 II 安装在单个实例上,并且通常只包含到远程对象的链接。本地数据可以存储在该服务器上,但是只能改善特定查询的性能。当使用分散式方法时,DB2 II 安装在多个服务器上。每个服务器都能够将远程数据与本地数据组合,这增加了部署在这些服务器上的应用程序的灵活性,并且扩展了每个应用程序在数据源中以前难以达到的领域。在混合式模型中,同时用到了集中式模型和分散式模型。
Merrill Lynch 中的 DB2 II
Merrill Lynch 使用混合式方法。分散式服务器满足特定项目的需求;集中式服务器按区域或主题领域进行部署。 通过联邦到联邦对象(这是一种叫做间接引用的方法),可以并发地使用两种模型中的数据对象(参见图 2)。分散式服务器中的昵称链接到集中式服务器中的联邦对象,或者反之。混合式模型提供最大程度的灵活性,但是管理起来要昂贵且复杂一些。

Merrill Lynch 最近创建了一个新的信用卡(Visa card)软件;关于卡的数据存储在一个使用 DB2 UDB z/OS version 7 的操作数据库中。业务分析员想要将关于客户响应的信息连接到存储在业务数据仓库(建立在 DB2 UDB for AIX version 8.2 之上)中的历史帐户活动,以确定选择该新产品的客户的特征,以及他们的消费趋势和习惯。
到所有需要的对象的联邦链接是使用集中式 DB2 II 服务器创建的。用户通过一个业务智能查询产品可以访问信息,就像信息是在单个同类数据存储器中一样。没有 DB2 II 的话,该项目就需要我们将所有必需的数据移动到仓库中,这意味着用户需要等待一段较长的时间才能使用数据。DB2 II 让我们可以很快给予用户所需的信息,以便他们可以对变化的市场或竞争条件做出反应。
在另一种情况下,我们使用的是分散式 DB2 II 服务器。一个 Merrill Lynch 应用程序需要访问一个文件,以针对资产管理系统执行日常的调解(reconciliation)过程。DBA 使用本地 DB2 II 服务器创建了一个到该文件的联邦链接,这允许调解过程执行以下语句:
Select
physical-host
from source.fedfile where physical
host-not in
(
select
asset-nm
from meta.tbasset
)
(注意:source.fedfile 是一个联邦对象;meta.tbasset 是一个本地表。)
|
分散式方法更好一些,因为 DB2 II、应用程序数据库和文件都位于相同的服务器上,因而最大程度地降低了网络流量。
对于另一个不同的项目,我们通过间接引用来访问信息(参见图 1)。一个应用程序需要来自 Sybase 数据源和本地表中的信息。DB2 II 和 Sybase 客户机不在同一服务器上。在包含 Sybase 客户机的集中式 DB2 II 服务器上创建了一个到所需 Sybase 对象的联邦链接。在我们的本地 DB2 II 服务器中,我们创建了一个到集中式服务器中的联邦对象的联邦链接。使用这些联邦链接以及我们的本地表,我们就能够通过 SQL 获得信息。在该场景中,混合式模型帮助我们利用集中式服务器的连通性和预先存在的软件,以及分散式 DB2 II 服务器的功能及其数据存储器中的本地应用程序数据。
利用资产
DB2 II 并不是解决所有数据集成问题的万灵药。它不可以取代数据仓库和抽取、转换及加载(extract, transform, and load,ETL)工具。但是它可以作为集成策略的关键组件,以允许您适当地访问和管理数据。下面是公司可以利用 DB2 II 所做事情的一些例子:
- 简化并扩展 ETL 工具的作用范围。DB2 II 让 ETL 利用其他 RDBMS 引擎的功能,而不是执行所有的工作。
- 将工作传输到远程数据源,并利用它们的资源。
- 使远程数据源看起来像是可以通过 SQL 访问的单个同类数据源。该方法简化了数据集成,并减少了所需的编码总量。
- 允许在迁移期间使用多个数据库,直到从一个数据库到另一个数据库的迁移完成。DB2 II 也可以比较数据库编录,以确保迁移了所有的数据库对象。
- 帮助公司管理成果以防止贪污,遵守 Sarbanes-Oxley 规则,或者支持公司审计。
- 通过提供实时数据访问而扩展数据仓库。
- 支持数据质量分析,而不用将所有数据都放在一起。
- 通过使完全不同的公司系统看起来像是同一个一样,而支持合并和收购。
- 改善平面文件和 XML 的访问。
碰运气
如果您正在考虑是联邦还是非联邦,那么我希望您从这些例子得到启发。您将需要决定,最好是减少数据冗余并创建一个数据源、类型和位置都不再成为问题的虚拟数据环境,还是继续遭受失败 IT 集成项目的厄运。在 Merrill Lynch,我们从未对自己的决定感到遗憾过。
Web 额外内容:正确的实现
您可以选择在集中式、分散式或混合式模型中使用 DB2 II。到底哪个模型适合于您的需要取决于您的特定需求。下面对不同方法的优缺点的评价将有助于您做出决定。
集中式
在集中式模型中,DB2 II 产品安装在单个实例中,以将 EII 处理与所有其他应用程序请求隔离开来。大多数(不是所有的话)数据将通过联邦对象而被访问到。单个的实例充当所有 EII 请求的网关或合并点(consolidation point)。需要访问不同数据源的所有客户机软件必须与相应的 DB2 II 包装器一起安装在该服务器上。
集中式模型需要一个可缩放的硬件平台,因为 DB2 II 服务器将服务于来自许多用户的请求,而不只是传递给引擎;当查询目标在远程引擎中得不到满足时,DB2 II 服务器必须执行重要的处理。
集中式方法有很多优点。它比单独的服务器更加经济有效,因为资源是共享的。集中式模型可以比分散式模型服务更多的 EII 请求,因为服务器是专门用于 EII 的,并且不需要做任何其他的项目数据库工作。集中式模型易于监控、控制/确保安全、管理和审计。客户机软件和 DB2 II 产品只需要安装一次。在大多数情况下,许可成本比较低。
高可用性和灾难恢复伙伴服务器比较容易在集中式模型中实现。许多组共享集中式服务器的成本,因为它是公司 EII 活动的 hub。集中式 DB2 II 服务器可以受益于数据库分区技术,以改善 DB2 II 引擎的性能,尤其是当集中式服务器包含许多客户机所需的本地数据时更是如此。
集中式模型创建远程数据源的单个编录,作为多个共享单个 DB2 II 引擎的区域的副产品。DB2 II 8.2 包括一个 GUI,以方便这个编录的浏览,从而容易访问信息。该编录也可以充当共同元数据存储库的基础。
集中式模型为快速响应不断变化的审计和管理一致法则提供了一种极好的手段。它创建的数据 hub 可以促进大多数第三方顺应包的数据需求。
集中式模型简化了连接管理,因为用户连接到单个数据库,却可以访问多个数据源。
另一方面,集中式方法还是有一些缺点。不可以在动态共享环境中保证服务级别协定。例如,由于返回大量的数据,集中式服务器中可能出现拥挤或瓶颈。并且,如果集中式服务器宕机,所有的 EII 活动就会中断。与直接连接和访问数据源相比,通过集中式 hub 访问单个远程数据源且具有大型结果集的查询会慢一些。
分散式
在分散式模型中,DB2 II 产品安装在需要联邦访问的每个 DB2 UDB 引擎上。该方法与集中式模型不同,因为联邦请求与特定的应用程序结合在同一实例或数据库中;联邦访问与本地数据访问混合在一起。
分散式方法的优点是,它可以满足项目的特定需要,并且可以利用 DB2 UDB 数据库的并行功能,从而改善性能。
缺点是,客户机软件必须安装在每个服务器上,管理实现需要更多的资源(金钱和人员),并且 EII 请求不能是独立的。
混合式
Merrill Lynch 选用了混合式方法,即同时使用集中式和分散式 DB2 II 服务器。尽管该方法兼具前两者的优势,但是它也有其自身的缺点,包括更高的费用和复杂性。
在三者之间做出选择需要对公司将使用 DB2 II 来解决的问题进行仔细的评估。
关于作者
Howard Goldberg 具有 22 年多的 IT 经验,主要领域是数据库和数据仓库。他在大型主机和分布式平台上使用 DB2。Goldberg 现在是 Merrill Lynch 的副总裁,并参与 IBM 的 Information Integration Leadership Board。 |