首页 > 范文大全 > 正文

一种元数据驱动数据仓库设计与应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇一种元数据驱动数据仓库设计与应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:数据仓库技术广泛服务于业界信息系统建设之需求,大数据分布式架构的兴起也促进了数据仓库技术带的发展。文章结合一个应用项目的需求,设计开源技术方案,实施多种异构数据整合、元数据驱动、主题标签及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 元数据驱动架构

摘要:《数学课程标准》指出:“数学教学要体现以学生为主体,培养学生的创新意识。”只有创新课堂教学方法――激发学生学习数学的兴趣,激励学生不断探索数学问题,培养学生获取数学知识的能力,培养问题意识,才能在数学课堂教学中真正落实素质教育。

关键词:创新潜能;创新精神;创新能力;创新思维

中图分类号:G633.6 文献标识码:A 文章编号:1992-7711(2013)11-0050

同志曾在两院院士大会上的讲话中明确指出:“在尊重教师主导作用的同时,更加注重培育学生的主动精神,鼓励学生的创造性思维。”这就要求我们教师在教学中努力培养创新人才。作为一名教育者,笔者就数学教学中如何实现创新教育谈几点自己的看法。

一、激发学生兴趣,诱发创新潜能

托尔斯泰曾经说过:“成功的教学需要的不是强制,而是激发学生的兴趣。”兴趣是带有浓厚色彩的心理活动,只有对某个事物有兴趣,就会激发学生学习的热情。在新课标的指导下,在创新性的课堂教学中,我们在课堂中必须让学生产生认知困惑,引起反思,形成必要的认知冲突,从而促成对新知识意义的建构,诱发创新的潜能。因此,在一节数学课的开始上,教师若能善于结合实际出发,巧妙地设置悬念性问题,将学生置身于“问题解决”中去,就可以使学生产生好奇心、吸引学生,从而激发学生的学习动机,使学生积极主动地参与知识的发现,这对培养学生的创新意识和创新能力有着十分重要的意义。如,“相似三角形性质应用”的导入设计为:“被誉为古代世界七大奇迹之首雄伟建筑――埃及金字塔,高146.5米,相当于40层高的摩天大楼,底边各长230米,由230万块重约2.5吨的大石块叠成。如此壮观的伟大建筑,人们是用什么办法测量的呢?古代一位数学家只用了一根已知长度的木棒和一定长的刻度尺就轻易地计算出金字塔的高度,你知道为什么吗?”这样设计,迅速点燃学生思维的火花,使学生认识了数学知识的价值,从而改变被动状态,培养了学生主动学习的精神和独立思考的能力。

二、加强学生探究问题的能力,激发创新精神

重视、引导、培植、爱护学生可贵的发散性思维,让学生发挥丰富的想象力,积极探索求异,坚持独立讲解是鼓励创新的重要途径。弗赖登塔尔曾经说:“学一个活动最好的方法是做。”学生的学习只有通过自身的探索活动才可能是有效的,而有效的数学学习过程不能单纯地依赖模仿与记忆;创造性教学表现为教师不在于把知识的结构告诉学生,而在于引导学生探究结论,在于通性、创造性的训练提出了新的更多的可能性。如,在教学三角函数的应用时,这样设计一个问题:在一个服装厂有大量形状为等腰直角三角形的边角布料。现找出其中的一种,测得∠C=90°,AC=BC=4,今要从这种三角形中剪出一个扇形,做成不同形状的玩具,使扇形的边缘半径恰好都在ABC上,且扇形的弧与其他边相切,请设计出符合题意的方案,并求出扇形的半径。对此,学生可能有很多想法,方案1:以B为圆心,半径为4 的圆;方案2:以A为圆心,半径为4 的圆;方案3:以A为圆心,半径为2 的扇形。还有方案4、5。对学生提供的办法不要急于肯定或否定,教师应让学生通过实际操作和充分讨论,认识到不同的样本得到的结果可能不一样,进而组织学生深入讨论:从这些解释中能作出什么判断?能想办法证实或反驳有这些数据得来的结论吗?这是一个开放题,其目的在于通过学习提高学生的发现问题、吸收信息和提出新问题的能力,注重学生主动获取知识、重组应用,从综合的角度培养学生创新思维。

三、多方引导,培养学生全面的创新能力

创新能力是创新必备的素质,教师必须抓住课堂教学的主阵地,多角度全方位地捕捉时机,创设条件结合具体的教学内容,加强培养与训练。数学作为一门思维性极强的基础学科,在培养学生的创新思维方面有其得天独厚的条件,而开放题的教学,又可充分激发学生的创造潜能,尤其对学生思维变通性、创造性的训练提出了新的更多的可能性。

例如,人教版七年级数学有这样的一道题:已知一条直线上有n个点,则这条直线上共有多少条线段?

这是我们已解决的问题,易得共有条线段,运用这个数学模型,可以解决很多数学问题。

例如:(1)全班50个同学,每两人互握一次手,共需握手多少次?

(2)甲、乙两个站点之间有5个停靠站,每两个站点之间需准备一种车票,则共需准备多少种车票?

(3)如右图,共有多少个三角形?

(4)如右图,共有多少个角?

(5)n边形共有多少条对角线?

(6)在9名班干中选出两名优秀班干,则甲和乙同时当选的概率是多少?

以上一系列问题,都可以通过建立同一数学模型来解决,不仅培养了学生归纳整理的能力,而且深化了学生建模思想和运用数学模型的意识。

实践证明,对例题和习题教学的研究,通过科学合理地使用教学素材进行一题多变教学,能较好地培养学生思维的广阔性、独立性和创造性,促使学生形成良好的思维习惯和品质,为培养学生的个性特征和创新思维能力创造更好的环境。

四、强化思维训练,激活创新思维

在初中数学教学中,培养学生的创新思维能力,按照不同的教学内容,我们可采用不同的教学方式,以针对性提高学生创新意识的能力。

1. 利用“错题”资源进行思维训练

在数学解题中采用“错题”资源就能够不断对解题的思路及结果进行完善,不断找到新方法、新思路。如在二次根式的练习中有这样的一题:已知a为实数,化简:■-a■,阅读下面李华的解答过程,请判断是否正确?若不正确,请写出正确的解答过程:

(上接第50页)李华的解答过程:■-a■=a■・■■=(a-1)■.

在李华的解题中,学生可以发现解题中忽视了字母a的取值范围,学生经过自己对问题或者解题思路进行系统的考量,更能够进一步的接受所学知识。利用错解发展学生思维的批判性,加强创新意识的培养。