基于ETL技术在ODS系统中的应用
本栏目责任编辑:闻翔军数据库与信息管理Computer Knowledge and Technology 电脑知识
与技术第5卷第26期(2009年9月)基于ETL 技术在ODS 系统中的应用
陈硕
(福州职业技术学院,福建福州350108)
摘要:当今,越来越多的企业正在构建ODS 运营数据仓储系统来满足其战略决策需要。利用ETL 工具可以对异构数据源中的业务数据抽取和转换,并将其装载到ODS 中,为基于企业统一数据之上的决策分析应用提供高质量的数据。因此,搭建一个高效的ETL 平台,在整个ODS 系统中具有非常重要的意义。
关键词:ODS ;ETL
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2009)26-7330-03
ETL Technology in the ODS-based System
CHEN Shuo
(Fuzhou Vocational and Technical College,Fuzhou 350108,China)
Abstract:Nowadays,more and more companies are building a ODS operational data storage system to meet the needs of its strategic deci -sion-making.ETL tools can make use of heterogeneous data sources in the data extraction and conversion operations,and its load to the ODS,the data based on the enterprise,the uniform application of decision analysis to provide high-quality data.Therefore,to build an ef -ficient ETL platform,in the ODS system has very important significance.
Key words:ODS;ETL
近年来,为了适应电信业务的多元发展,各电信运营商建设了大量的业务系统,将原先集中的几套大系统分拆成了不同专业、不同用户的独立系统,但是随之而来问题也出现了,就是人们突然发觉原先相对简单的数据变得很复杂。它们分散分布在不同的业务系统、不同的网络硬件平台上,这时候电信企业的业务运营就需要一个先进、合理的IT 系统架构进行支撑,电信ODS 运营数据仓储系统孕育而生。
为了保证获得高质量的数据,灵活运用ETL 技术,可以对异构数据源中的业务数据抽取和转换,然后经过对各类业务数据的清理、标准化和汇总的过程,将其装载到ODS 中,为基于企业统一数据之上的决策分析应用提供保证。所以ETL 模块是电信ODS 运营数据仓储系统中的重要一环。本文就是以电信ODS 系统为背景,着重介绍其中ETL 模块在ODS 系统中的应用。
1ETL 技术介绍
1.1ETL (Extract-Transform-Load 的缩写,即数据抽取、转换、装载)过程
也就是数据集成的过程,而ETL 工具也叫做数据集成平台。和ETL 过程关系最为紧密的子过程有:数据迁移、数据管理、数据清洗、数据同步和数据集成。在一个组织中进行ETL 过程的最主要目的是从源事务处理系统中迁移和转换数据来为数据仓储服务以最终形成数据集市。
1.2ETL 平台特点
1)强大的功能
适配器:数据库、文本等;
清洗能力:空值、规则配置、异常数据检查等;
灵活的转换处理:字段级映射、自定义脚本转换;
多样的数据更新方式:追加(insert)、复制(copy)、更新(update/merge)、删除(delete)。
2)统一元数据,易于维护
公用配置:数据库、数据库用户、表空间等
数据字典配置:源表、目标表、表索引、表关系等
ETL 模块配置:转换目标表和转换源表配置、表更新方式配置、数据转换、清洗规则配置
关联任务调度
3)无需编码或少量编码,开发效率高
1.3ETL 实现目标
1)ETL 模块实现数据库之间或者数据库内的数据转换。可以应用于数据抽取、数据清洗、数据整理、数据统计等不同应用。2)ETL 应支持异构数据库间的数据转换,通过接口适配器把外部异构数据源导入ODS 数据库,再通过ETL 模块实现数据转收稿日期:2009-06-16
作者简介:陈硕(1982-),男,福州职业技术学院计算机系,助理实验师,主要从事计算机数据库方面的研究和教学工作。
ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.5,No.26,September 2009,
pp.7330-7332E-mail:jslt@cccc www.dnzs Tel:+86-551-569096356909647330
数据库与信息管理本栏目责任编辑:闻翔军Computer Knowledge and Technology 电脑知识与技术
第5卷第26期
(2009年9月)换。3)ETL 模块强调数据转换可配置、可追溯,支持数据复杂计算、类型转换、数据清洗等,实现数据的高效、精确的转换。
2电信ODS 系统的总体设计概述
ODS (Operational Data Store ,操作型数据存储)运营数据仓储系统在企业信息化系统中的定位在于,数据整合(承载客户统一视图)、数据共享、跨系统数据应用和数据质量检查;随着CRM 、计费、服务开通、资源等核心IT 系统建设的逐步开展,尤其是CRM 、计费省集中系统的逐步到位以及客户品牌统领市场经营工作对IT 固化生产流程的迫切要求,使得ODS 成为承载企业数据模型及数据标准,并据此整合各系统数据以实现企业跨系统数据共享,提供跨系统数
据应用,提升数据质量的最好承载平台。
电信ODS 系统遵循CTG-MBOSS 功能层次的划分标准,从系统服务对
象和支撑对象的角度,将ODS 划分为五大功能域:数据整合域、数据共享
域、数据应用域、数据质量管理域、公共管理域。基于ODS 五大功能域,在
ODS 上实现数据门户与营销支撑。
不换号转运营商
3ODS 系统中ETL 模块的实现
3.1ETL 模块功能
由图1可知,ETL 模块属于数据整合域中的一块,它的主要功能是实现
从源系统中抽取数据进行整合,根据不同的数据源,匹配预先定义的规则流
程,在任务引擎的调度下,按照定义好的流程经过数据抽取、数据整理、数据
转换、数据加载几个关键环节最终存储到ODS 系统中。3.2使用工具和方法
ETL 模块的实现有很多种方法,其中常用的有两种:第一种是借助借助
专用的ETL 工具,可定制数据处理流程,简化数据开发,缩短ETL 方案实施
周期,但其处理效率较低。常用的ETL 工具有Oracle 公司的Warehouse
Builder 软件,IBM 公司的Warehouse Manager 软件,Informatica 软件等。第二
种是自行开发ETL 工具方式实现;本系统采用第二种方法,基于ORACLE
数据库平台的PL/SQL 语言开发而成,这样可以最大限度的发挥ORACLE
数据库的性能效用,并且相比商业ETL 工具平台更加灵活、实用。
3.3ETL 模块总体设计与应用
ETL 模块,由若干功能单一的数据处理单元组成,各处理单元根据不同
ETL 过程的需要进行组合和连接,形成数据处理的流水线,完成ETL 过程。
并通过统一的任务调度引擎进行复杂的多进程完成异步数据抽取、转换、清洗、加载的过程。
3.3.1任务调度单元
1)功能:用于描述关系,控制任务运行,任务运行状态监控等。
2)特点:实现接口区、中间表、集市汇总事实表之间的统一调度;支持多进程同步处理;支持相关JOB 之间的依赖顺序关系的控制,支持多对多的关系;建立错误自动处理机制;支持监控模块的任务调度;实现数据抽取、过滤、转换;
实现取数自动化;实现周期计算自动化。
3)任务调度与ETL 之间关系:
任务调度控制ETL 转换链和ETL 转换单元的运行,并描述ETL 运行情况、结果等信息。
3.3.2数据转换单元
实现数据库之间或者数据库内的数据转换。可以应用于数据抽取、数据清洗、数据整理、数据统计等不同应用。数据源为外部文件的,首先通过接口程序把外部文件数据导入数据库表,再通过ETL 模块实现数据转换。ETL 模块强调数据转换可配置、可追溯,支持数据复杂计算,实现数据的高效转换。
转换单元是ETL 可执行的最小单位也是整个ETL 过程最核心的部分。转换单元也称为ETL 转换。它是在目标表和数据源之间建立的一个桥梁,用于定义数据转换过程规则、数据计算公式等信息。ETL 转换的最根本目的就是生成ETL 转换脚本。ETL 转换单元的执行是ETL 模块的核心。
1)ETL 转换类型
字段映射和直接SQL 两种。
字段映射:依赖数据配置生成ETL 转换脚本。
直接SQL :根据用户自定义SQL 生成转换脚本。
2)数据更新模式
ETL 转换的更新模式指明了ETL 转换对目标表进行何种数据更新操作。更新模式有以下几种:
追加记录:在将数据源的数据全部插入到目标表中。
复制(先清空再复制):首先清空目标表的所有数据,并将源数据全部插入到目标表中。复制模式与追加的区别:复制模式允许在插入数据前进行额外处理。
更新相同的记录:在目标表中,查到与数据源中对应目标表的主键的数据,与目标表的主键数据相同记录,用数据源的记录替换目标表中到的记录。
图2图1
7331
Computer Knowledge and Technology电脑知识与技术第5卷第26期(2009年9月)
追加更新:在目标表中,如果到与数据源相同的记录,则用数据源的记录更新当前记录,如果没有到,则插入到目标表中。
删除相同的记录:在目标表中,查到与数据源中对应目标表的主键的数据,与目标表的主键数据相同记录,则删除此记录。
以上不同的更新模式有不同应用场景。
3.3.3周期计算单元
1)功能:用于计算任务取数周期,支持ETL转换单元、统一层、集市层表等更新对象的周期记录、计算和控制;
2)ODS系统中周期计算的几种情况:
①CRM档案数据每半小时更新一次,每次取上次未取的数据进来。它的特点是连续滚动、基本不重叠(目前为了考虑主机的系统时间不一致,回取2分钟)
②统一层取数,每天根据存储层的日期字段,获取上次未获取的数据,考虑多表关联需要的数据同步要求,开始时间统一为凌晨0点,以保证取到完整的数据。
③集市层中间表取数,类似于统一层取数,
④集市层维表以及部分实例小表,每日全量取数,则开始周期、结束周期为0。
⑤集市层按天存储汇总表,当前周期(实时为当天,非实时为昨天)作为结束周期,下次周期作为开始周期(如下次周期多过结束周期,取结束周期),成功运行后计算出下次周期(实时为明天,非实时为当天)给配置表。
⑥开始周期根据实际获取的数据决定,如每3小时获取增量订单数据,根据创建时间和竣工时间来判断最小的统计日,作为开始周期,当前周期(当天)作为结束周期,提取报表统计数据。
3)增量取数存在的情况:
按小时或实时增量;连续滚动:每次运行取最后周期时间点作为开始时间,当前系统时间作为结束时间,取数成功则将结束时间记录在成功时间点。整点分段:每次运行取下个周期作为开始时间,当前周期作为结束时间,取数成功则将当前周期记录为最后成功周期,并计算出下个周期写入配置表。
按天;每次运行取上次成功日+1天的凌晨0秒,作为开始时间,当前周期日的最后一秒作为结束时间。取数成功则将当前周期日记录在成功时间点。
3.3.4开关表单元
1)ODS机器上运行系统状态监控函数,按设定周期扫描开关状态表和任务调度表,对于“开关状态表”中“ACTIVE_JOB”字段(是否激活任务)配置为’Y’的任务进行监控。如果对象配置为被动模式,当监控扫描到有新数据时,自动更新任务调度中对应的任务的状态为等待运行,使之通过任务调度系统开始运行后续任务。如果对象配置为主动模式,当监控扫描到任务调度中对应的任务的状态为10G,则打开开关,对外围系统开放数据共享。
2)给外围提供系统状态监控函数过程调用,当外围给ODS系统送数结束后用这个过程打开开关,ODS开关监控将自动扫描开关状态,并根据以上逻辑进行处理。
3)给外围提供系统状态监控函数过程调用,使外围系统了解ODS目前相应的开关状态。
4结束语
随着企业信息化建设的迅速发展,ODS作为企业运营数据共享平台,从客户的需求和利益出发,运用最新技术和概念,收敛企业各业务系统中的运营数据,按照企业数据模型进行数据整合,提供运营数据共享,支撑跨系统数据的应用,提升数据质量。而本文介绍的ETL技术作为ODS的核心技术,能够准实时或实时地从各业务系统中抽取企业运营数据,进行转换、加载、映射等工作形成ODS的核心数据,为用户提供企业级的统一数据视图。所以,ETL技术是电信ODS运营数据仓储系统项目数据分析成败的关键。参考文献:
[1]黄少华,陈翠娥.SQL语法范例大全(SQL Server、Oracle通解)[M].北京:电子工业出版社,2008.
[2]中国电信集团.中国电信[2005]156号CTG-MBOSS1.0规范[S].
[3]罗小称.基于元数据的ETL工具设计和实现[D].华东师范大学,2007.
[4]汪南,刘萍.银行数据仓库项目中ETL的设计与实现[D].华南科技大学,2005.
7332
数据库与信息管理
本栏目责任编辑:闻翔军

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。