神通数据库ETL

■ ETL方案
       ETL是数据集成的主要解决方案,在实施数据集成的过程中,由于不同用户提供的数据可能来自不同的途径,其数据内容、数据格式和数据质量千差万别,有时甚至会遇到数据格式不能转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门和各应用系统中的流动与共享,因此,数据ETL(Extract, Transform and Load,提取、转换和加载)过程十分必要,对脏数据进行有效处理,确保提取数据的质量,是数据集成的不可缺失的一环。
        ETL作为数据库级的数据集成工具,擅长大量数据的迁移,能从多个数据源中抽取数据,然后进行数据转换和加载,最终得到统一的、完备的主题数据库或数据仓库,原来分散的应用仍独立运作,ETL提供了复杂的数据转换功能,集成多种数据源和复杂的商业规则,主要是抽取、转换和加载各种数据库中的数据,并能容忍数据在时间上的延迟。其转换处理步骤如下图:
 
 
ETL的工作原理
  ETL工作流程包括:
 * 数据的抽取:从不同的网络、不同的操作平台、不同的数据库及数据格式、不同的应用中抽取数据;
 * 数据的转换:数据的转化(数据的合并、汇总、过滤、转换等)、数据的重新格式化和计算、关键数据的重新构建和数据总结、数据定位;
 * 数据的加载:跨网络、跨操作平台将数据按照物理数据模型定义的表结构装入目标数据库中。

神通ETL的架构


ETL作为数据集成的核心技术在数据处理上遵从以下几个步骤过程:

* 异构的多数据源处理

能够接受多种数据源,异构数据源。即除了对三种基本类型的数据库(本地数据库、外部数据库即较流行的数据库、ODBC数据源)还支持电子商务数据、未知格式文件数据等。
* 通用数据访问数据接口
       ETL工具能够跨平台、跨网络访问数据,能支持不同类型数据源间的连接,通过屏蔽各种数据源之间的差异,为后序提供一个统一的数据视图,目前只支持JDBC接口,其中JDBC支持跨平台、网络访问数据。
* 数据抽取
      数据抽取包括模式数据和实例数据抽取。通过SIB的DBSource构件从数据源中抽取模式信息,用人工或相关的智能算法加以分析,得到实例数据的抽取策略,存储在知识库中供装载数据时使用。抽取模式信息的合法性是保证数据质量的关键。在此过程中使用增量式的抽取算法,避免了对庞大的多源数据集进行昂贵而费时的重复扫描,以保证数据处理的效率问题。
* 数据集成
       数据抽取后得到的是多个模式和实例数据集,然而数据集成需要的是集成的、语义一致、面向对象的数据,必须将多模式与数据集进行统一映射,转换为单一的结果集。在数据集成过程中SIB提供DBOperator构件把抽取的数据进行转换、清洗、过滤等,此过程依据数据语义、语法、结构将不同数据元素化,格式化得到统一的数据结构,从而进行数据标准化,消除不一致性的问题(如缩写、简写)等,最后将处理后的数据作为中间结果存储临时区域中,等待进一步的清洗。
* 数据规约
       经过数据集成后的数据集中还包含许多相似重复记录,必须消除这些数据。针对数据集进行匹配,发现重复异常,根据匹配结果进行处理,删除部分记录或者将多个记录合并为一个更完整信息的记录。
* 数据装载
       此过程SIB提供DBSink构件用来解决模式实现以及数据装载时机等问题,能够有选择的转载到一个或多个目的数据表中,并允许人工干预,以及提供强大的错误报告、系统日志、数据备份与恢复功能。
* 目的数据存储
       提供数据与元数据的存储场所,是ETL的终点。
■ 完整的应用集成解决方案
      SIB提供完整的数据集成方案,支持语义和访问协议的转换,覆盖三种企业应用集成模式:基于连接的应用集成、基于信息共享的应用集成、基于流程协作的应用集成。
基于连接的应用集成
       基于连接的应用集成是指应用程序之间进行同步或异步的通信来实现业务功能。在这一模式中,集成的多个应用程序共享一个公共的应用架构。应用程序共用通信的数据模型,并且能够激活相应的应用程序来获取服务。基于连接的应用集成有两种方式来实现:通过服务访问、通过数据集成。
服务访问
       使用这种方式的时候,根据需要集成业务逻辑将需要集成的应用程序封装成为构件,安装到SIB运行平台上,将构件的服务单元直接部署到SIB运行平台,各个应用程序通过访问封装的应用程序的构件的服务单元来完成应用程序间的集成。
数据集成
      利用SIB的数据集成构件来完成基于连接的应用集成,其实质就是将源应用系统的数据传送到目的应用系统,其实现方法是通过编排服务、组合读取数据的构件(Source类),进行转换的构件(Transform类),进行数据传输的构件(Transfer类),实现应用程序直接进行同步或异步的通信。
基于信息共享的应用集成

       基于信息共享的应用集成通过应用程序之间业务事件驱动的发布/订阅通信来实现。SIB提供支持发布/订阅的构件,支持应用程序系统之间通过信息共享的应用集成。

基于流程协作的应用集成

      基于流程协作的应用集成是应用于企业级的集成方式,需求企业通过B2B协议和企业外部系统进行集成。为了获得企业系统的灵活性,要求企业独立使用B2B协议,而且企业的内部流程对应企业外部系统是隐蔽的。这样当企业的内部流程发生变化后不会影响到外部的合作伙伴。如下图一个简单的基于流程协作的应用集成示意:
        通过一个业务封装构件封装系统A中需要供外部调用的接口,将业务服务单元XSLT语义转换服务单元,外部协议绑定构件的服务单元组合成一个服务组合,注册到某个公用的注册中心。在绑定的三个服务单元当中,XSLT语义转换服务单元根据某个公用数据标准,负责内部与外部的语义转换,外部协议绑定构件的服务单元将服务发布成使用外部协议可以调用的端点。外部系统通过注册中心查询到这个已发布的服务组合,通过外部调用协议,访问服务组合。
推荐神通数据集成方式
       通过上面的集成方式介绍可以看出,基于连接的应用集成是典型的模式集成方法,而基于信息共享的应用集成更偏向于数据复制的集成方式,基于流程协作的应用集成过于复杂,不适合一般的企业级应用。
       基于连接的应用集成适用于集成系统规模大、数据更新频繁、数据实时一致性要求高的情况或者当很难预测用户的查询需求时, 也适合采用这种方法。我们建议采用这种集成方式,因为它实时一致性好而且透明度高。

       基于信息共享的应用集成适用于数据源相对稳定、用户查询模式已知或有限的情况,实时一致性差,有一定的局限性,出于机密性的考虑不最好不采用信息共享的应用集成方案。


4) 我们的优势
■ 丰富的外围工具
      SIB不仅实现了JBI规范的SOA的运行平台,同时也提供了支持SIB构件开发和服务开发的开发工具和支持SIB平台及其构件和服务安装、部署的管理工具。SIB的开发工具基于Eclipse插件框架实现,包括构件开发和服务开发两部分。它提供图形化基础工具,通过可视化导航、拖拽和编辑,配置构件的属性,以及构件之间的连接关系,建立服务工件模型。
■ 灵活的架构体系
       采用SOA架构,提供即插即用的构件框架,遵循JEE规范、JBI规范、WebService规范等业界最新的规范和事实的行业标准。SIB管理的资源可以通过参数的调整和配置来实现。例如: 连接池、数据库的管理,环境变量以及运行参数。
■ 完备的数据集成套件

 提供了一整套面向数据集成构件,用户可以在可视化的环境中,根据这些构件,实例化服务,并通过对服务的编排、组合,快速生成数据集成的应用。