使用 IBM InfoSphere Information Server 交付可信任的有效信息
2010-09-15 00:00:00 来源:WEB开发网引言
二十一世纪,人类迈入了“信息爆炸时代”。对于企业来说,如何降低管理爆增的企业信息带来的复杂度和成本?如何从当前复杂的信息中提取出可信任的有效信息,并且用于商业决策?是一直困扰大多数企业 IT 专家的问题。
首先,他们强烈渴望把信息从孤立的系统、应用和业务流程中暴露出来,整合新老系统、不同异构数据源中的信息。 其次,在整合异构信息过程中,他们希望能够找出历史数据中的不同格式的冗余数据,进行标准化和清洗,使这些信息都变成可信任的统一格式的信息,用于商业决策。 最后,他们希望能以灵活、可重用的方式发布可信任的信息,并且确保新录入的信息不会产生新的冗余。
IBM InfoSphere Information Server 系列产品能够完全满足这些需求,通过它我们可分析、清洗和整合异构源中的数据信息,并且把这些经过分析清理后的可信任信息以可重用的方式提供给用户(或新系统),并且对新录入的信息进行实时的数据清洗操作,保证新录入信息的正确性。
案例背景介绍
在这篇文章中,我们将描述 Smart 集团由于业务整合,需要将分公司 A 和分公司 B 的客户信息进行整合。但是由于历史原因或错误录入,两个分公司的数据都存在大量冗余记录,并且分公司 A 和分公司 B 的客户数据是存储在不同的数据库中。在这个项目中,他们的基本需求是:
整合两个分公司的数据,统一存储在 DB2 中。以便减低系统的复杂度和维护成本。
统一数据格式,去除冗余记录,确保整合后的数据是可信任的。
基于 SOA 的方式发布整合后的信息,满足新系统对灵活度和重用性方面的要求。
实时确保新录入的客户数据的准确性,不能产生新的冗余。
以下是 Smart 集团分公司 A 和分公司 B 的数据样本:
图 1. 分公司 A 的数据样本
图 2. 分公司 B 的数据样本
从分公司 A 和 B 的数据样本中我们可以看到:A 公司的客户信息,由姓名、ID 和地址组成。在数据中存在重复记录,并且有一些重复记录不能通过简单的 SQL 查询发现它们的重复性,如表一中的数据,ID 相同,姓名也相同,但是 NAME 字段却不同,不满足 SQL 条件。另外,A 公司的客户信息也会出现在 B 公司的数据中,可是 B 公司的数据缺少 ID 字段,多了 PHONE 字段,并且 B 的 Name 字段有非法字符‘ ? ’,通过简单的 SQL 查询也不能确定是否存在重复的客户数据,如表二所示。
表 1. 分公司 A 中的重复记录
Name | ID | 地址 |
共畅(店面) | 992602197703252358 | 人民路交叉口(烟酒店) |
共畅 | 992602197703252358 |
表 2. 分公司 A 和分公司 B 之间的重复记录
Name | Number | Phone | 地址 |
张永生 | 960100234222222224 | - | 张家村委张家村 84 号 |
? 张永生 | - | 990275 | 张家村委张家村 |
我们的解决方案
如何满足 Smart 集团的需求呢?接下来我们将介绍一个解决方案:使用 IBM Information Server 系列产品实现该集团的需求。
图 3. 整体解决方案
查看原图(大图)
首先,使用 IBM InfoSphere Information Analyzer 分析分公司 A 和分公司 B 的客户数据,理解数据的结构,内容和质量。
然后,使用 IBM InfoSphere DataStage 对数据进行抽取转换,合并当前两个分公司的客户数据,存储在统一的数据库系统中,并且使用 IBM InfoSphere QualityStage 统一数据结构和格式,去除冗余记录。
最后,使用 IBM InfoSphere Information Service Director 以服务的方式 (SOAP, EJB, REST and RSS) 发布经过清洗后的可信任数据,并且结合 IBM InfoSphere Information Service Director 和 IBM InfoSphere QualityStage,确保新录入的客户信息的数据质量。
使用 IBM InfoSphere Information Analyzer 理解您的数据
在该节中,将介绍如何使用 IBM InfoSphere Information Analyzer 分析分公司A的 DB2 客户数据和分公司 B 的 Oracle 客户数据,从而理解这些数据的结构,内容以及数据的总体质量。为接下来的数据整合和清洗提供依据。
IBM InfoSphere Information Analyzer 简介
IBM InfoSphere Information Analyzer 是 IBM Information Server 的核心组成部分。我们可以使用它对数据进行多种分析,帮助我们真正理解数据的结构及质量。在信息系统集成中,通过它我们可以在项目前期就发现缺失的、不准确的和不一致的数据,从而降低项目的风险。他能帮助 ETL 开发人员了解数据的特性,确保信息集成的顺利进行。
IBM InfoSphere Information Analyzer 主要提供了以下几种数据分析功能:
列分析:对数据库表的列的进行分析,可以了解数据的结构、内容、质量、以及准确性。您可以使用列分析研究的性质和这些列的特点,找出数据是否矛盾和异常。
主健分析:通过主健分析。您可以辨别出基于当前表中的记录,那些列适合作为表的主健。
外健分析:通过外健分析。您可以理解数据库中表之间的关系。辨别出基于出当前表中的记录,那些列适合作为外健
跨域分析:通过一个或多个表中多个列的分析,帮助你理解多个表之间的数据关联性。
基准分析:您可以使用基准分析来确定的内容和数据结构随时间的变化。
使用 IBM InfoSphere Information Analyzer 分析分公司 A 和分公司 B 数据
我们使用 IBM InfoSphere Information Analyzer 对分公司 A 和分工 B 的客户数据进行了列分析,以便分别了解两个分公司客户数据的结构、内容、质量、以及准确性。以下是列分析的结果:
图 4. 分公司 A 列分析摘要视图
查看原图(大图)
图 5. 分公司 B 列分析摘要视图
查看原图(大图)
在分析摘要中,我们可以看到两个分公司客户表的所有字段的结构、类型、长度、格式等信息,如图 4 和图 5 所示。从图中的数据我们可以看出:
两个分公司客户数据表中存在不同的字段。分公司 A 中有 ID 字段,分公司 B 中没有。分公司 B 中有 CREDITIT 字段,分公司 A 没有。
两个分公司客户数据表中 NAME, ADDRESS 的长度都不一样。另外 IBM InfoSphere Information Analyzer 根据表中实际数据的长度,给出字段长度的推论值(如图 4 红框所示),这说明两个表在创建时字段长度的定义跟实际数据的长度有出入。我们可以在整合两个表时使用推论的字段长度。
进一步查看每个字段的分析结果,我们可以看出:
在两个表中 NAME 字段都有错误的记录,如图 6 所示是分公司 B 中错误的 name 值:
在两个表中 ADDRESS 字段有空的记录。如图 7 所示。
另外,我们可发现在分公司 B 的表中 CREDITID 实际记录的是客户的电话号码。
图 6. 字段 NAME 的格式有问题
图 7. 字段 ADDRESS 有 NULL 记录
接着,我们使用 IBM InfoSphere Information Analyzer 对分公司 A 和分工 B 的客户表中的所有字段进行了主健分析,发现在这两个表中 NAME 和 ADDRESS 都否存在大量重复记录。如图 8 所示是分公司 ADDRESS 字段的主健分析结果。
图 8. 字段 ADDRESS 有重复记录
这样,我们通过 IBM InfoSphere Information Analyzer 了解两个分公司客户数据的结构、内容和质量,在下一章节中我们将基于以上的分析结果对分公司 A 和分公司 B 的数据进行整合和清洗。
使用 IBM InfoSphere DataStage 和 IBM InfoSphere QualityStage 整合,清洗和转换数据
在该节中,将介绍如何使用 IBM InfoSphere DataStage 和 QualityStage 对分公司A的 DB2 客户数据和分公司 B 的 Oracle 客户数据进行整合、抽取、转换和清洗。经过清洗转换后,两个分公司的数据将有统一的结构(标准化),并且重复冗余的数据将被清除。
IBM InfoSphere DataStage 简介
IBM InfoSphere DataStage 是一款强大的基于图形化界面的 ETL 工具,它可以从多个不同的业务系统,多个平台的数据源中抽取转换数据,并且把数据装载到各种目标系统中。其中简单的数据转换可以通过在界面上拖拉操作和调用一些预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现。DataStage 能够处理多种数据源的数据,包括主机系统的大型数据库、开放系统上的关系数据库和普通的文件系统等。
使用 IBM InfoSphere DataStage 整合分公司 A 和分公司 B 数据
公司 A 的数据存储在 DB2 数据库中,公司 B 的数据存储在 Oracle 数据库中。DataStage 的数据联通非常优秀,支持各种数据源。DB2 和 Oracle 是两种常见的数据库,DataStage 不仅能够非常方便的访问,而且对性能也能做很好的优化。在本例中,为简单起见,选用最常用的 DB2 UDB API Stage 和 Oracle Enterprise Stage 访问分公司 A 和分公司 B 的客户数据。
图 9. 用来整合分公司 A 和分公司 B 客户数据的 DataStage 作业
查看原图(大图)
在图 9 作业中,Transform Stage 分别将两个公司的数据表进行统一格式
公司 A 标准化过程:
将电话号码字段(PHONE)补齐
将公司出处字段(SOURCE_MARK)字段标注为’ COMPANY_A ’
将地址字段(ADDRESS)的 NULL 值填充为’’
图 10. 使用 Transform Stage 统一分公司 A 数据格式
查看原图(大图)
公司 B 标准化过程:
将身份证字段(ID)补齐
将公司出处字段(SOURCE_MARK)字段标注为’ COMPANY_B ’
将地址字段(ADDRESS)的 NULL 值填充为’’
将 CREDITID 字段改成 PHONE 字段
图 11. 使用 Transform Stage 统一分公司 B 数据格式
查看原图(大图)
之后,Funnel 将两个公司的数据进行合并,Surrogate_Key_Generater 产生主键字段。
数据结果展示。
表 3. 分公司 A 的原客户数据
姓名 | 身份证号码 | 地址 |
王大婆 | 960121671225690 | 久亚新 2 楼 48 号 |
王大卜 | 960121671225690 | 久亚新二楼 48 |
… | … | … |
谢波 | 992600031462222211 | |
张永生 | 960100234222222224 | 张家村委张家村 84 号 |
表 4. 分公司 B 的原客户数据
姓名 | 电话号码 | 地址 |
张水生 | 990275 | 张家村委张家村 |
五有宝 | 99436 | 党校进大门右手五栋二楼 |
… | … | … |
谢波 | 94440 | |
李超 | 94442 | 名雄化工 |
表 5. 分公司 A 和分公司 B 整合后的客户数据
序号 | 姓名 | 身份证号码 | 电话号码 | 地址 | 公司出处 |
1 | 张水生 | 990275 | 张家村委张家村 | COMPANY_B | |
2 | 五有宝 | 99436 | 党校进大门右手五栋二楼 | COMPANY_B | |
… | … | … | … | … | … |
13 | 谢波 | 94440 | COMPANY_B | ||
14 | 李超 | 94442 | 名雄化工 | COMPANY_B | |
15 | 王大婆 | 960121671225690 | 久亚新 2 楼 48 号 | COMPANY_A | |
16 | 王大卜 | 960121671225690 | 久亚新二楼 48 | COMPANY_A | |
… | … | … | … | … | … |
23 | 谢波 | 992600031462222211 | COMPANY_A | ||
24 | 张永生 | 960100234222222224 | 张家村委张家村 84 号 | COMPANY_A |
这样,两个分公司 A 和分公司 B 的客户数据被整合,有了统一的结构。
IBM InfoSphere QualityStage 简介
IBM InfoSphere QualityStage 是一款用于数据清洗的经典产品,涵盖了 4 大功能点:数据调查、数据标准化、数据匹配、以及数据留存。
数据调查,能够帮助用户了解数据质量,以及期望达到的清洗标准,甚至给接下来的标准化提供一些参考信息。
数据标准化,能够帮助用户将名字,地址等常用客户信息标准化,也可以根据行业数据做定制,标准化行业数据信息。
数据匹配,基于数据的标准化,数据被切割成统一格式的,多个小的信息单元,将小的信息单元用于匹配权重计算,将大大提高匹配概率和准确性。
数据留存,将多条匹配或者说重复的数据,交叉组合形成最优的候选数据提供给用户,甚至可以补足一些缺失字段等。
IBM InfoSphere QualityStage 通过以上 4 大功能点,使数据完成清洗流程,标准化客户信息字段,去除重复数据,最终交付出用户满意的数据质量。
使用 IBM InfoSphere QualityStage 标准化、清洗整合后的数据
我们从前面 IBM InfoSphere Information Analyzer 的分析结果中知道,整合后的客户数据中存在重复和残缺的数据。接下来,我们将使用 IBM InfoSphere QualityStage 的进行数据清洗,最终得到唯一的客户关系管理视图。
IBM InfoSphere QualityStage 首先需要完成数据的标准化,通过来自 IA 的分析,姓名和地址需要完成标准化,采用 STANDARDIZE STAGE,完成 CNADDR 和 CNNAME 规则集的配置,自动实现姓名和地址域的细分和标准处理。
图 12. 数据标准化 STANDARDIZE STAGE 配置
查看原图(大图)
在数据匹配过程中,我们需要来自于数据标准化的输出,和相应的输出字段内容频率统计,QualityStage 提供了 Match Frequency STAGE 帮助完成频率统计。Unduplicate STAGE 接受 STANDARDIZE STAGE 和 Match Frequency STAGE 的输出作为输入,输出匹配的和剩余的纪录。针对如何匹配数据,QualityStage 也提供了专门的匹配规则设置 STAGE,Match Specification STAGE 能够帮助用户完成相应的匹配规则配置。
图 13. 数据频率计算 Match Frequency STAGE 配置
查看原图(大图)
图 14. 数据匹配 Unduplicate STAGE 配置
查看原图(大图)
匹配的原理就是将相似的数据根据某个字段分组,然后在这个数据组内,通过某些字段的比较计算权重,判断这几条数据是否重复。通常根据一个字段分组,不能找到所有的重复数据,所以存在分支的概念,选择其他字段分组匹配的规则就是另一个分支。在本文的范例中,我们在第一个分支中,选择 ID 作为分组字段,将姓名,街道和组织信息作为比较字段。由于 ID 可能缺失,或者出错,所以在第二条分支中,选择姓名作为分组字段,将姓名,街道和组织信息作为比较字段,见下图。
图 15. 匹配规则 MATCH SPECIFICATION STAGE 配置
查看原图(大图)
最后数据留存部分,数据留存只是针对重复的数据,从重复的数据中,挑选出主记录或者交叉组合几条重复的数据,得到最为完整的一条信息。
图 16. 数据留存 SURVIVE STAGE 配置
查看原图(大图)
这样,整合后的客户数据被标准化和清洗。
使用 IBM Information Service Director 交付数据,并且实时清洗新录入的数据
在该节中,将介绍如何使用 IBM Information Service Director(ISD)以各种灵活的可重用的方式 (EJB, Web service, REST, RSS 等 ) 发布经过清洗后的可信任客户数据。并且将介绍如何把 ISD 和 DataStage、QualityStage 相结合,实现对新录入的客户信息的标准化和冗余控制。
IBM Information Service Director 简介
InfoSphere Information Services Director (ISD) 是 IBM InfoSphere Information Server 的核心组成部分之一。它提供了一个集成的图形化的 Web Services 开发环境。通过 ISD, 企业内部的信息集成开发人员能够快捷地将信息以 SOA 的方式发布出去。ISD 提供了以下的功能。
支持多种信息提供者。 例如:Classic Federation Server, DB2 Database, Oracle Database, DataStage and QulityStage.
支持多种信息发布方式。 例如:Soap Over Http,Soap Over JMS, REST, RSS 等等。
提供一个弹性的生产环境,支持容错处理,负载平衡和真正高可用性并行执行。
提供一个基于 Web 的管理和维护平台,对所有数据整合服务进行管理和维护。
使用 IBM Information Service Director 以服务方式发布可信任客户信息
在上节中,通过 DataStage 和 QualityStage,我们已经得到了非常可靠的客户信息数据。接着客户要求我们基于 SOA 的方式发布整合后的信息,我们将使用 IBM Information Service Director 快捷的实现该客户需求。
如图 17 和图 18 所示,我们使用 IBM Information Service Director 将获得客户信息的 SQL 封装成了 web 服务。整个过程完全是基于图形化操作,我们不需要写任何代码。
图 17. 定义 IBM Information Service Director 应用
查看原图(大图)
图 18. 在 IBM Information Service Director 应用中封装查询客户 SQL
查看原图(大图)
这样,如果 smart 集团其它业务流程或系统需要获得客户数据,仅仅需要调用该 web 服务。
使用 IBM Information Service Director 和 IBM InfoSphere QualityStage 实时清洗新录入的信息
在以上部分,描述了如何对已有的客户数据进行分析、抽取转换、清洗和以服务的方式发布。读到这儿,可能有读者会产生疑问:“已有的数据已经被清洗了,但是如果新录入的数据存在冗余,那不是又会重新污染已经清洗后的数据?”。如何解决这个问题呢 ? 我们可以通过 IBM Information Service Director 和 IBM InfoSphere QualityStage 相结合解决这个问题。IBM Information Service Director 支持将 DataStage 和 QualityStage 的作业以服务的方式发布。我们可以把清洗客户信息的逻辑封装在 QualityStage 作业中,然后以 Service 的方式发布。
在图 19 所示的 QualityStage 作业中,封装了标准化和清洗数据的逻辑。
图 19. 对新录入客户数据进行实时标准化和清洗的 QualityStage 作业
查看原图(大图)
在图 20 所示中,该作业被 IBM Information Service Director 封装,并且发布成了一个 web 服务。
图 20. 定义 IBM Information Service Director 应用封装 QualityStage 作业
查看原图(大图)
以下是该 web 服务 WSDL 文件:
图 21. web 服务 WSDL 文件
查看原图(大图)
这样,当需要录入新的客户记录时,我们只需要调用该 web 服务,该服务将帮我们标准化所输入的客户信息,并且与当前已经清洗过的所有客户记录对比,检查当前输入的客户是否已经存在数据库中。业务开发人员可根据该服务的输出结果决定是否增加该客户到系统中。
结束语
在该文章中,我们使用 IBM InfoSphere Information Server 系列产品实现了 smart 集团两个分公司客户数据的整合清洗,并且基于 SOA 发布了整合清洗后可信任的有效客户信息。从分析旧的客户数据到最后干净客户信息的发布,整个解决方案都是基于成熟的 IBM 产品,不需要做任何的手工编码。并且 IBM InfoSphere Information Server 支持并行和分区处理,整个解决方案也将拥有强大的性能。但是,对于对于实时的新客户数据处理,因为每一条新录入的客户信息需要与所有的已存在客户信息做比较,无论如何,这个过程将需要一点时间。如果您的客户数据量非常大,并且您对处理时间有严格的要求,我们不建议您实时的检查是否有重复的客户数据。您可以实时的标准化新录入的客户信息,并且先存入数据库,最后在系统闲时再定期的调用相应的 QualityStage 作业进行批量的去除冗余记录处理。IBM InfoSphere DataStage 和 QualityStage 都支持制定执行计划,您可以方便的让作业在每天、每周或每月的某个时间点执行。非常谢谢您阅读该文章!
Tags:使用 IBM InfoSphere
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接