您的位置:首页 > 其它

基于服务的多源异构数据整合平台解决方案

2017-03-28 22:31 423 查看
摘要:在跟很多客户的沟通过程中,用户常常提出这样的问题:目前我们的数据库中已经存储了大量的数据,包括结构化的和非结构化的,但是分布在不同的系统,各个业务系统从这些数据库中取数据的需求和情况越来越多,已经形成了难以维护管理的“蜘蛛网”,需要建立统一的数据管理和访问平台,便于统一维护和管理,提供“一站式”的数据访问服务。

业务场景

上面说到的业务系统和数据具有以下特点:

 混合型数据:包括结构化和非结构化;

 数据离散性:数据分布在不同的系统或平台;

 数据量大:国家电网的五大数据平台,数据体量都非常大;

 数据质量参差不齐:国家电网提到了数据一致性的问题,客户提到了主数据不统一的问题;

采用基于服务的数据整合平台可以在源系统较小改动的情况,有效整合数据,实现各数据源的逻辑整合

整合思路

传统的数据整合思路是建立企业数据中心,将数据从各个系统抽取过来进行集中,再统一提供数据服务,但是随着数据量急剧增加,特别是非结构化数据的增加,传统企业数据中心存在以下问题:

1) 投资巨大:需要较大的存储空间和超强的计算能力;

2) 建模困难:需要建立企业信息模型,类似国家电网的SG-CIM(要根据企业的业务和运行模型建立CIM实际上是非常困难的,况且类似于SG-CIM其实是一个不完善的模型,尽管投入了较大的人力财力)

3) 数据搬迁困难:随着企业数据的急剧增加,数据量越来越庞大,进行大批量的数据迁移实际上是非常困难的;

4) 数据整合成本高:将多源数据整合到一个,必然存在抽取、清洗、转换、合并的过程,整合成本相当高;

5) 非结构化数据整合困难:传统数据中心只支持结构化数据,实际上在移动互联网的背景下,企业产生越来越多的非结构化数据;

总之,传统数据中心已经无法适应现在的企业数据整合要求。因此需要考虑一种新的整合方式,基于服务的逻辑数据整合,而不是基于数据集中的物理整合。

这种方式的整合思路是:不强求物理上的集中,而是保持企业数据的分布现状,将各个系统的数据通过接口包装成服务,注册到企业服务总线,通过企业服务总线提供统一的数据服务,从而实现数据在逻辑上的整合。

建设方案

要实现基于服务的分布式数据整合平台,我们考虑的典型技术架构如下:



源数据可以是结构化数据,也可以是非结构化数据。

针对结构化数据的处理过程:

作为数据源的结构化数据库需要开放数据库接口,供元数据管理系统从源数据库中抽取数据结构信息,并保存在元系统中。服务生成模块可以查询存放于元数据系统中的各业务系统元数据,通过简单的操作(例如勾选、组合字段)自动生成提取数据的代码块,并将该部分代码块包装成webservice服务,存放于服务运行模块,并服务注册到企业服务总线(ESB,服务注册可以是手工注册,如果ESB能通过API支持自动注册就更好),对外部进行数据服务。

该操作过程,应对同一个数据库时相对比较简单。但是如果服务需要从不同的数据库中提取并关联数据时,情况就会复杂的多。例如从两个数据源中各取一个表,进行关联。考虑的实现方法如下:从数据库A中取出表X的数据,放入到服务生成系统的内存ListX,从数据库B中取出表Y的数据,放入到服务生成系统的ListY。两个list在内存中进行关联计算,生成业务应用需要的结果集,通过ESB传递到调用该服务的业务系统。该方法类似于在内存中实现类似数据库的连接操作。

对于服务生成模块来说,需要支持数据库内连接和内存连接两种代码生成模式。

针对非结构化数据的处理过程:

对于NoSQL数据库,由于没有统一的数据结构,是无法通过上面的方式自动生成代码块并发布成服务的。但是还是可以通过定制服务接口的方式生成webservice服务,通过ESB进行集成并发布到数据整合平台,统一对外提供服务。这种情况下,只能针对每个接口都进行webservice的定制开发。

主要功能点



1) 企业服务总线

提供服务注册、服务发布、服务编排、服务监控等功能;

2) 元数据管理

从各数据源抽取元数据,开放接口或底层数据模型,提供给服务生成模块使用。另外元数据管理系统需要将服务作为一类元数据管理起来,以便运维人员查看基于服务的数据流向;

3) 服务生成模块

该模块提供服务生成管理界面,展示元数据系统获取的数据源表结构和字段信息,管理员可通过选择相同或不同数据源的字段信息,生成数据提取代码块,并注册到企业服务总线,从而提供数据访问服务。支持数据库内连接和内存连接两种代码生成模式,提供日常的服务生成、修改、删除、查询等维护功能,支持服务信息由该模块到元数据管理系统的回传,便于元数据系统对服务的管理并提供数据流向信息;

4) 服务运行模块

数据提取服务的执行模块,通过数据库接口连接到各数据源。服务生成模块生成的代码在该模块中打包后发布到WEB服务器,形成执行模块。业务系统的数据访问请求发送到企业服务总线后,企业服务总线路由到该执行模块进行数据提取;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐