何永
摘 要:数据仓库技术广泛服务于业界信息系统建设之需求,大数据分布式架构的兴起也促进了数据仓库技术带的发展。文章结合一个应用项目的需求,设计开源技术方案,实施多种异构数据整合、元数据驱动、主题标签及Extjs架构的图形显示。实现了一套可视化的数据仓库系统,用以解决复杂的异构数据以及数据的展示,也为后续的决策支持系统构建和数据挖掘工作提供基础。
关键词:元数据;ETL;异构数据;数据仓库
1 引言
随着联入互联网络的发展,主机数、用户数和信息源节点数的爆炸性增长,使数据形式也出现了多样化,不光有结构性的数据,还有许许多多例如TXT文件或者图片视频等非结构性数据类型,但这些分散的数据使人们在信息检索和网络资源管理等方面面临着许多难题。
关系型数据库具有极强的管理能力,数据的安全性高,和可靠的并发机制,一直是结构化数据存储的主流。但各种数据库系统之间的差异,已经所依赖操作系统之间的异构型,严重影响了信息共享和数据交换。
随着应用的不断进步发展,企业已经不能光靠联机事务处理OLAP去应对压力取得行业领先水平,这是他们需要对自身业务的运作及整个市场行业相关的趋势进行分析,做出有利的决策。这时对以往大量的历史数据的使用和存贮就成了势在必行。 但实际企业与企业之间,企业内部各部门之间业务、目标以及操作系统、存储方式的不同必然造成数据上的差异,不能提供有效的信息共享,形成数据孤岛,不能满足管理人员决策分析的需求。传统关系数据库依然不能满足以上需求,这时就需要一种能够适应决策分析的数据环境——数据仓库(Data Warehouse,DW)。在本文中建立一套数据仓库系统,完成了多种异构数据的整合,简单的BI分析并用图表显示。第二部分讲述数据仓库整体架构思路,第三部分为本套以元数据为驱动系统的具体实施,第四部分文章总结。
2 技术背景
数据仓库是数据分析和决策支持系统(Decision Supporting System,DSS)在当代海量数据背景下产生的技术。是一个面向主题的、集成的、相对稳定的、反映历史变化的结构化数据集合[1]。数据仓库的建设更像一个过程而不是工程,以现有企业大量历史的数据作为积累,进行归纳重组,运算分析,把计策信息及时地交给企业管理层,这才是数据仓库的根本任务。经典架构见图1。
图1 经典数据仓库DW
ETL(Extract-Transform-Load),即从各种异构数据源中抽取数据,并按照预先设计好的规则进行转化清洗,处理一些冗余、歧义、残缺、违反业务逻辑的数据,统一数据粒度,最后加载到目标数据仓库中,是建立数据仓库的必要基础。ETL设计和开发占整个数据仓库系统开发量的60%~80%[2],一般有两种工具方案供选择:一种使用数据仓库引擎厂商提供的ETL工具进行数据的加载;通过ETL工具提供的编程API进行数据的加载。前一种更加简便快捷,后一种更加灵活,性能也有一定的提升。此外最主要的问题就是如何建立有针对性的ETL过程模型,研究组织对早期建立ETL过程模型也给出了很多建议[5]。还有国外著名数据仓库软件厂商,如Informatica的powercenter,IBM的infoSphereDataStage,Oracle的Oracle Data Integration,Microsoft的SSIS都是优秀的数据仓库工具,其中也有源工具Repository Explorer,Beeload,Kettle,DataSpider集成整套的DW和BI功能。
ETL过程的设计需要对数据结构,不同的主题也需要设计专门的ETL的过程。所以当需要转变商业规则或数据结构,就需要重新设计ETL过程,重用性很低。为了解决以上问题,设计一种新的ETL应对方案,解决的了过程核心的重复编写,提供了重用性,采用了ETL工具和API接口相结合的架构方式,能够满足大部分的数据源和多样的处理过程,在保证数据加载性能的同时更灵活方便,以元数据为驱动,实施了一整套数据仓库系统并研究分析。
3 系统设计
本系统主要以意大利Pavia大学IRMA项目为背景,实现一套交互性的城市助手系统,建立数据仓库,提供分析图表,帮助行政人员更好的管理城市基础设施。市民也可以使用手机APP主动的加入到城市的监控,对公共设施出现的问题可以立即拍照上传,并根据位置信息显示在地图上,不同用户间可以相互评论。城市管理人员在web端监视到出现的问题,就会派专人去查看、确定问题,之后会有维修人员到现场去处理,并使用App追踪维修进度。当事故解除,市民能查看到问题已处理,可以放心出行。城市管理者也会收到反馈,这样管理者可以对事故做进一步的预测、预防。
首先以事故为主题确立需求,建立异构数据整合架构——即ETL过程设计,包括源数据确立、元数据驱动、ETL流程包。接着选择维度属性建立数据仓库,包括事实表维表属性选取、虚实多维数据库设计。
3.1 异构数据整合架构
源数据——本文的系统主要由三种异构数据源,文本、xls、xml和数据库,文本数据源和XlS文件,一般为业务部门常用数据格式,其中文本数据属于非结构化数据;XML源数据主要是从新浪微博上根据关键字抽取的数据。传统数据库一般为系统内部结构化数据和外部开放API的DBMS数据,主要抽取跨业务的结构化数据。
元数据——是关于数据的数据,通过扫描数据字典来加载源数据库和目标数据库的体系结构,表相关信息等等。元数据库管理模块对元数据库中的元数据提供修改和维护管理并写入日志。中间件是转换过程中的重要部件,减少对数据库的操作,增加转换效率,提高数据操作的可靠性和一致性。见图2。
图2 元数据驱动架构
ETL——数据的抽取是ETL过程的第一步,从多种异构数据源根据规则抽取数据,系统中三种主要源文件:文本数据为非结构化数据,作者主要采用正则表达式和语义词典相结合的方式抽取;数据库数据抽取方面直接使用ETL的工具抽取;XML和XLS的文件需要进行预处理,抽取模式和数据库基本相同。
把多个功能相近的translater根据功能组成job,多个job组合实现了整个ETL过程。如图3。两个内部关系数据库在抽取时先过滤掉重复记录与空白记录,xls文件要先设定数据字段的映射,文本文件需要进行字段操作提取所需的信息。分布式平台上抽取的数据需要先进行字段拆分以便于文本字段整合,最后再通过相应的转换流程与结构化数据整合。
3.2 多维数据仓库数据库
多维数据模型——主要包括事实表和维表,每个数据仓库都包含一个或者多个事实表(见表1),它是每个多维模型的核心,不应该包含描述性的信息,以及除了数据度量字段与维度表中相关索引字段外任何的数据。维度表可以用来看作用户分析数据的窗口,表中包含事实数据记录的特性,提供信息并包含帮助汇总信息特性的层次结构。(见表2)
图4 DFM雪花图
表1 事实表
表2 维度表
CUBE——区域查询时数据仓库中进行OLAP分析的重要操作,为了提高查询速度及分析性能,我们根据主题和需求定义分析模型,建立CUBE。常用的Cube分为三种:物理Cube、虚拟Cube、物理结合虚拟Cube。作者采用物理虚拟相结合能很好的发挥两者的优点。把常用的时间维度、事故维度、区域维度等数据一次性装入到原理立方体中建立物理Cube,这些特征变动量少、查询量大。虚拟Cube事前并不建立任何Cube,而是根据用户需求实时生成虚拟立方体,方便对于实时数据的更新,如一定维度下事故发生频率。使用灵活但网络负载大。如图5
3.3 验证
数据仓库就是决策支持系统和联机分析应用数据源的结构化数据环境。为了给用户提供更清晰、简洁、易于理解和操作的界面,我们做了表单、报表和各种图形来显示我们的数据,并提供一定的CRUD功能。把移动设备用户的上传消息根据地理位置聚类,对区域中有明显消息增加的地点做实时的线状图显示,当曲线的到达一定斜度,便生成提示信息,警告管理人员。如图6。根据单位时间类事故发生的频率作了统计分析,如图7。选择查看地点维度,如选取城市维度,发现paiva事故发生率高于napol。选择时间维度观测到pavia下午4点的问题发生率是全天最高。
图6 检测仪表
图7 事故分析图
4 结束语
本文提出一种较灵活的ETL方式,该方式采用手工编码与Kettle工具相互协作,以元数据为驱动对于多种异构数据源进行整合利用,从数据源的记录、抽取规则、多维数据库模型等全程监视,为数据仓库提供更加全面、更加丰富的源数据,并以报表、数据图和仪表的形式展示在web端。管理人员可以及时地检测到事故的发生,也可以对区域的问题进行总结分析,做出有效的预防工作。进行数据挖据和BI分析,最大限度的利用好企业的大量数据。
参考文献
[1]Inmon W H (2005) Building the data warehouse.Fourth Edition,Wiley.
[2]P.Vassiliadis,A. Simitsis,and S.Skiadopoulos,Conceptual modeling for ETL processes,Proc.5th ACM Intl. Workshop on Data Warehousing and OLAP (DOLAP),pp.14-21,2002.
[3]J.Trujillo and S. Lujan-Mora.“A UML Based Approach for Modelling ETL Processes in Data Warehouses”.In I.-Y.Song,S.W.Liddle,T. W. Ling,and P. Scheuermann,editors,ER,volume 2813 of Lecture Notes in Computer science,Springer,2003.
[4]Gianmario Motta,Thiago Barroero,Giovanni Miceli and Yuwei Yin. “Design of performance aware service systems: A Case study”. Service Sciences (IJCSS),2011 International Joint Conference on. 25-27 May 2011.
[5]Selmeci,A.Orosz,T.“SAP remote communications”.Applied Computational Intelligence and Informatics (SACI),2012 7th IEEE International Symposium on.
ETL——数据的抽取是ETL过程的第一步,从多种异构数据源根据规则抽取数据,系统中三种主要源文件:文本数据为非结构化数据,作者主要采用正则表达式和语义词典相结合的方式抽取;数据库数据抽取方面直接使用ETL的工具抽取;XML和XLS的文件需要进行预处理,抽取模式和数据库基本相同。
把多个功能相近的translater根据功能组成job,多个job组合实现了整个ETL过程。如图3。两个内部关系数据库在抽取时先过滤掉重复记录与空白记录,xls文件要先设定数据字段的映射,文本文件需要进行字段操作提取所需的信息。分布式平台上抽取的数据需要先进行字段拆分以便于文本字段整合,最后再通过相应的转换流程与结构化数据整合。
3.2 多维数据仓库数据库
多维数据模型——主要包括事实表和维表,每个数据仓库都包含一个或者多个事实表(见表1),它是每个多维模型的核心,不应该包含描述性的信息,以及除了数据度量字段与维度表中相关索引字段外任何的数据。维度表可以用来看作用户分析数据的窗口,表中包含事实数据记录的特性,提供信息并包含帮助汇总信息特性的层次结构。(见表2)
图4 DFM雪花图
表1 事实表
表2 维度表
CUBE——区域查询时数据仓库中进行OLAP分析的重要操作,为了提高查询速度及分析性能,我们根据主题和需求定义分析模型,建立CUBE。常用的Cube分为三种:物理Cube、虚拟Cube、物理结合虚拟Cube。作者采用物理虚拟相结合能很好的发挥两者的优点。把常用的时间维度、事故维度、区域维度等数据一次性装入到原理立方体中建立物理Cube,这些特征变动量少、查询量大。虚拟Cube事前并不建立任何Cube,而是根据用户需求实时生成虚拟立方体,方便对于实时数据的更新,如一定维度下事故发生频率。使用灵活但网络负载大。如图5
3.3 验证
数据仓库就是决策支持系统和联机分析应用数据源的结构化数据环境。为了给用户提供更清晰、简洁、易于理解和操作的界面,我们做了表单、报表和各种图形来显示我们的数据,并提供一定的CRUD功能。把移动设备用户的上传消息根据地理位置聚类,对区域中有明显消息增加的地点做实时的线状图显示,当曲线的到达一定斜度,便生成提示信息,警告管理人员。如图6。根据单位时间类事故发生的频率作了统计分析,如图7。选择查看地点维度,如选取城市维度,发现paiva事故发生率高于napol。选择时间维度观测到pavia下午4点的问题发生率是全天最高。
图6 检测仪表
图7 事故分析图
4 结束语
本文提出一种较灵活的ETL方式,该方式采用手工编码与Kettle工具相互协作,以元数据为驱动对于多种异构数据源进行整合利用,从数据源的记录、抽取规则、多维数据库模型等全程监视,为数据仓库提供更加全面、更加丰富的源数据,并以报表、数据图和仪表的形式展示在web端。管理人员可以及时地检测到事故的发生,也可以对区域的问题进行总结分析,做出有效的预防工作。进行数据挖据和BI分析,最大限度的利用好企业的大量数据。
参考文献
[1]Inmon W H (2005) Building the data warehouse.Fourth Edition,Wiley.
[2]P.Vassiliadis,A. Simitsis,and S.Skiadopoulos,Conceptual modeling for ETL processes,Proc.5th ACM Intl. Workshop on Data Warehousing and OLAP (DOLAP),pp.14-21,2002.
[3]J.Trujillo and S. Lujan-Mora.“A UML Based Approach for Modelling ETL Processes in Data Warehouses”.In I.-Y.Song,S.W.Liddle,T. W. Ling,and P. Scheuermann,editors,ER,volume 2813 of Lecture Notes in Computer science,Springer,2003.
[4]Gianmario Motta,Thiago Barroero,Giovanni Miceli and Yuwei Yin. “Design of performance aware service systems: A Case study”. Service Sciences (IJCSS),2011 International Joint Conference on. 25-27 May 2011.
[5]Selmeci,A.Orosz,T.“SAP remote communications”.Applied Computational Intelligence and Informatics (SACI),2012 7th IEEE International Symposium on.
ETL——数据的抽取是ETL过程的第一步,从多种异构数据源根据规则抽取数据,系统中三种主要源文件:文本数据为非结构化数据,作者主要采用正则表达式和语义词典相结合的方式抽取;数据库数据抽取方面直接使用ETL的工具抽取;XML和XLS的文件需要进行预处理,抽取模式和数据库基本相同。
把多个功能相近的translater根据功能组成job,多个job组合实现了整个ETL过程。如图3。两个内部关系数据库在抽取时先过滤掉重复记录与空白记录,xls文件要先设定数据字段的映射,文本文件需要进行字段操作提取所需的信息。分布式平台上抽取的数据需要先进行字段拆分以便于文本字段整合,最后再通过相应的转换流程与结构化数据整合。
3.2 多维数据仓库数据库
多维数据模型——主要包括事实表和维表,每个数据仓库都包含一个或者多个事实表(见表1),它是每个多维模型的核心,不应该包含描述性的信息,以及除了数据度量字段与维度表中相关索引字段外任何的数据。维度表可以用来看作用户分析数据的窗口,表中包含事实数据记录的特性,提供信息并包含帮助汇总信息特性的层次结构。(见表2)
图4 DFM雪花图
表1 事实表
表2 维度表
CUBE——区域查询时数据仓库中进行OLAP分析的重要操作,为了提高查询速度及分析性能,我们根据主题和需求定义分析模型,建立CUBE。常用的Cube分为三种:物理Cube、虚拟Cube、物理结合虚拟Cube。作者采用物理虚拟相结合能很好的发挥两者的优点。把常用的时间维度、事故维度、区域维度等数据一次性装入到原理立方体中建立物理Cube,这些特征变动量少、查询量大。虚拟Cube事前并不建立任何Cube,而是根据用户需求实时生成虚拟立方体,方便对于实时数据的更新,如一定维度下事故发生频率。使用灵活但网络负载大。如图5
3.3 验证
数据仓库就是决策支持系统和联机分析应用数据源的结构化数据环境。为了给用户提供更清晰、简洁、易于理解和操作的界面,我们做了表单、报表和各种图形来显示我们的数据,并提供一定的CRUD功能。把移动设备用户的上传消息根据地理位置聚类,对区域中有明显消息增加的地点做实时的线状图显示,当曲线的到达一定斜度,便生成提示信息,警告管理人员。如图6。根据单位时间类事故发生的频率作了统计分析,如图7。选择查看地点维度,如选取城市维度,发现paiva事故发生率高于napol。选择时间维度观测到pavia下午4点的问题发生率是全天最高。
图6 检测仪表
图7 事故分析图
4 结束语
本文提出一种较灵活的ETL方式,该方式采用手工编码与Kettle工具相互协作,以元数据为驱动对于多种异构数据源进行整合利用,从数据源的记录、抽取规则、多维数据库模型等全程监视,为数据仓库提供更加全面、更加丰富的源数据,并以报表、数据图和仪表的形式展示在web端。管理人员可以及时地检测到事故的发生,也可以对区域的问题进行总结分析,做出有效的预防工作。进行数据挖据和BI分析,最大限度的利用好企业的大量数据。
参考文献
[1]Inmon W H (2005) Building the data warehouse.Fourth Edition,Wiley.
[2]P.Vassiliadis,A. Simitsis,and S.Skiadopoulos,Conceptual modeling for ETL processes,Proc.5th ACM Intl. Workshop on Data Warehousing and OLAP (DOLAP),pp.14-21,2002.
[3]J.Trujillo and S. Lujan-Mora.“A UML Based Approach for Modelling ETL Processes in Data Warehouses”.In I.-Y.Song,S.W.Liddle,T. W. Ling,and P. Scheuermann,editors,ER,volume 2813 of Lecture Notes in Computer science,Springer,2003.
[4]Gianmario Motta,Thiago Barroero,Giovanni Miceli and Yuwei Yin. “Design of performance aware service systems: A Case study”. Service Sciences (IJCSS),2011 International Joint Conference on. 25-27 May 2011.
[5]Selmeci,A.Orosz,T.“SAP remote communications”.Applied Computational Intelligence and Informatics (SACI),2012 7th IEEE International Symposium on.
















