吴进美 陈小泉 邓增利 唐玮 张志辉 匡胜
摘 要:针对之前数据抽取任务的零散、串行、任务多而难管理。设计实现一种多数据流并行抽取数据,对异构平台及各种类型的数据源进行多数据流并行抽取,扩展了ETL(Extract,Transform and Load)现有的系统架构,为今后对海量数据的处理提供了统一高效的数据来源。
关键词:数据仓库 ETL 元数据 数据清洗
1 数据源构成
数据获取和整合层主要实现从现有业务系统及外部数据来源中检索/接收,湛江分公司装备服务管理分析平台(以下简称“平台”)主要使用SAP DataService作为ETL工具,将Oracle数据库、DB2数据库、Excel文件、XML文件、DataService本身参数等不同系统、不同数据格式的数据经过查询、合并、拆分等操作,加载到平台的YC134数据仓库(DW)中。并且在这个过程中进行数据质量的清洗和主数据的管理。对于数据源和数据目标,它们支持各种主流开放关系数据环境,包括MAXIMO系统、SAP系统或者其他业务系统。
2 ETL抽取数据设计要点
平台设计多工作流并行抽取任务[1]是基于一个JOB任务对应多个工作流(Work Flow)或者多个数据流(Data Flow),其中多个工作流并行抽取是整个JOB任务的核心,它可以内嵌多个数据流,而数据流根据元数据库[2]中的信息进行逻辑SQL的提取,经过查询(Query)、合并(merge)、层级(Hierarchy_Flattening)等处理并加载到数据仓库中。由于数据抽取过程涉及到业务逻辑和不同系统环境等因素,所以在多工作流及数据流并行抽取过程中需要考虑跨平台性和智能性。跨平台一方面多工作流及数据流并行抽取本身需具备跨平台性;另一方面对数据源系统和目标数据库所处的异构环境进行支持。智能性是指并行抽取任务能够根据预先设置的定时任务定时对数据进行抽取,并对在抽取过程中出现的异常及故障进行监控和保留日志以便查询。
3 ETL构建设计
平台的整体架构采用以数据仓库(DW)[3]为中心的技术架构,集成ETL技术、OLAP(on-Line Analytic Processing)技术、语义层(Designer)技术、报表设计展现技术和门户技术,有效地保障了数据的时效性、易用性和准确性。
一般情况下分为ODS、DW两部分,如果后期需要进一步深入分析,可以添加DM部分。通常从业务数据系统中到ODS做清洗,把数据源中重复使用到的数据(比如维表数据)的信息整理出来,经过跟业务部门认真反复验证确认后进行脏数据的过滤、不完成数据的修正等;再从ODS到DW的过程转换,进行数据不一致、数据粒度及业务规则计算等。清楚业务系统数据到ODS到DW间的逻辑关系,将其转化为一个完整可执行的ETL过程,进行各种操作和流程对数据进行清洗和转换,并处理在转换中出现的异常。此外ETL工具为方便管理和追踪任务执行情况还提供ETL过程运行时详尽的log日志功能。
3.1 数据抽取过程设计
ETL过程中无论是抽取、清理、转换都可以认为是数据转换过程。ETL过程的一般数据转换流程为:(1)从数据源中获取业务数据及基础数据等;(2)使用转换处理获取的数据并输出;(3)将生成的输出结果集载入到目标数据库。数据转换分成三类:数据清洗、模式转换、层级转换;数据清洗是过滤掉业务数据中不需要做分析统计的数据,比如不完成、错误、重复、没有分析意义的数据等;模式转换是将抽取的数据源进行数据关联、数据粒度、业务计算等转换过程;层级转换一般是对基础数据中有层级关系的逻辑数据进行树结构层级转换。
数据抽取一般有两种形式:增量抽取和全量抽取。由于增量数据集一般较少,增量抽取不但降低了数据的传输量,同时大大提高了抽取过程中的效率。数据抽取过程一般在业务系统访问量最低的时间执行,比如是夜间或者休息日,以降低业务系统访问的峰值负荷。这意味着ETL过程的执行时间粒度至少是以天为单位。采取合理的增量抽取方式,可以降低数据抽取的负荷,提高抽取任务的效率,可以增大ETL执行频率[4],提升数据的时效性。此外数据仓库中要求保存历史数据,如果每次进行重载,这些保存的历史数据将会丢失,这也要求ETL工具具备增量抽取数据能力。
增量抽取数据方法目前有基于日志的抽取、基于触发器的抽取、基于应用程序的抽取、基于时间戳的抽取、基于增量快照的抽取等几种方法。平台主要使用基于时间戳的增量抽取方法,基于时间戳的方法必须依赖业务系统的支出。
3.2 数据验证过程设计
在项目的业务数据分析阶段,业务归属人员和技术人员将合作校对ETL过程抽取数据的准确性及有效性。包括对模糊的数据转换、丢失的数据恢复、业务相关的数据问题如数据源增强。
3.3 数据装载过程设计
数据装载主要将加工处理后的业务数据加载到数据仓库中的目标表,是ETL过程的最后步骤。系统通过JDBC连接数据库进行直连数据库方式进行数据装载,充分体现高效性。可以随时调整数据抽取方式,灵活的集成装载到其他数据仓库中。
3.4 作业运行
ETL过程可以通过处理链或JOB管理工具进行调用,处理链或JOB管理工具可以预先定义调用的时间(如每天凌晨几点)、周期,并且所有调用过程都将执行详情记录到日志。
4 结语
通过DataService建立一个集成、共享、统一的数据管理平台,整合不同来源的数据、发挥数据的价值、提高数据的分析能力及准确性,为各层人员提高多维数据查询统计、信息分析及报表生成;通过面向主题的数据分析,发现问题、找出规律、追溯源头,为管理层决策管理提出信息、知识支持。后期在现有报表体系的基础上,提高报表数据可靠性,为决策层提供更加可靠的报表数据,并为作业区层次的一線工作人员规范性流程工作提供数据依据。
参考文献
[1] 韩京宇,徐立臻,董逸生.ETL执行的流水线优化[J].小型微型计算机系统,2005,26(6):1013-1017.
[2] 杜永友.构建基于工作流引擎和元数据驱动的数据仓库ETL工具[D].四川大学,2004.
[3] 柳莺.数据仓库技术研究和应用探讨[J].计算机应用,2001(2):69-70.
[4] 吴远红.ETL执行过程的优化研究[J].计算机科学,2007,34(1):81-83.



