数据共享与交换平台解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据共享与交换平台解决方案
一、方案概述
随着信息社会的到来,计算机网络环境和分布处理技术的深入发展。信息系统中的数据源所呈现的形式也日益繁多,在这些数据中有模式固定的结构化数据,也有无模式的无序数据。这种无论是已知确定来自数据库的数据或是来自网络上的各式各样结构不固定、不完全或不规则的数据,都给信息系统在向国民经济信息化发展的过程中产生了很大的障碍。因此,完成不同数据的共享与交换成为各个企业与部门进行信息交换时所必须要解决的重要问题。主要原理如下图:
二、主要工具
1.工具简介
数据集成的目的就是要运用一定的技术手段将系统中的数据按一定的规则组织成为一个整体,使得用户能有效地对其进行操作。数据处理的对象是系统中的各种异构数据库中的数据或者无格式数据,而数据集成的主要过程则是建立完善的数据仓库,以及采用数据挖掘技术获取更多数据信息。ETL作为数据库级的数据集成工具,擅长大量数据的迁移,能从多个数据源中抽取数据,然后进行数据转换和加载,最终得到统一的、完备的主题数据库或数据仓库,原来分散的应用仍独立运作。ETL中三个字母分别代表的是Extract、Transform、Load,即抽取、转换、加载。
数据抽取:从源数据源系统抽取目的数据源系统需要的数据;
数据转换:将从源数据源获取的数据按照业务需求,转换成目的数据源要求的形式,并对错误、不一致的数据进行清
洗和加工。
数据加载:将转换后的数据装载到目的数据源。
ETL原本是作为构建数据仓库的一个环节,负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。一个简单的ETL体系结构如图1.1所示。
2.ETL关键技术
数据抽取
数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一
般有以下几种方式:
全量抽取:全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽
取出来,并转换成自己的ETL工具可以识别的格式。
增量抽取:增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。在ETL使用过程中。
增量抽取较全量抽取应用更广。目前增量数据抽取中常用的捕获变化数据的方法有:触发器、时间戳、全表比
对、日志对比。
数据转换和加工
从数据源中抽取的数据不一定完全满足目的库的要求,例如数据格式的不一致、数据输入错误、数据不完整
等等,因此有必要对抽取出的数据进行数据转换和加工。数据的转换和加工可以在ETL引擎中进行,也可以在数据
抽取过程中利用关系数据库的特性同时进行。相比在ETL引擎中进行数据转换和加工,直接在SQL语句中进行转
换和加工更加简单清晰,性能更高。对于SQL语句无法处理的可以交由ETL引擎处理。
数据装载
将转换和加工后的数据装载到目的库中通常是ETL过程的最后步骤。装载数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种
装载方式:1)直接SQL语句进行insert、update、delete操作;2)采用批量装载方法,如bcp、
bulk、关系数据库特有的批量装载工具或api。
3.主流ETL工具
ETL工具从厂商来看分为两种,一种是数据库厂商自带的ETL工具,如Oracle warehouse builder、Oracle Data
Integrator。另外一种是第三方工具提供商,如Kettle。
Oracle Data Integrator(ODI):ODI主要定位于在ETL和数据集成的场景里使用,ODI能够检测事件,一个事
件可以触发ODI的一个接口流程,从而完成近乎实时的数据集成。ODI的主要功能特点有:使用CDC作为变更数
据捕获的捕获方式、代理支持并行处理和负载均衡、完善的权限控制、版本管理功能、支持数据质量检查,清洗和回
收脏数据、支持与JMS消息中间件集成、支持Web Service。
KETTLE:说到ETL开源项目,Kettle当属翘首,项目名称很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。Kettle分为四大块:Chef——工作(job)设计工具(GUI方式)、Kitchen——工作(job)执行器(命令行方式)、Spoon——转换(transform)设计工具(GUI方式)、Span——转换(trasform)执行器(命令行方式)
三、数据集成工具选择
1.对平台的支持程度
2.对数据源的支持程度
3.抽取和装载的性能是不是较高,且对业务系统的性能影响大不大,倾入性高不高
4.数据转换和加工的功能强不强
5.是否具有管理和调度功能
6.是否具有良好的集成性和开放性