[推荐]一篇介绍数据挖掘系统架构的文章
Posted on Tue 19 July 2011 in 我记
云时代的企业应用数据挖掘:http://www.programmer.com.cn/7280/
1. 三火点评
本文从概念和架构层面给出了异构数据源海量数据挖掘的工作思路。
在系统建设过程上,分为建模、挖掘和呈现三个阶段;
在系统架构上,包括支持海量数据的分布存储部分、支持高速并行运算的MapReduce部分和高效的BI呈现部分。
对从事相关工作的产品运营和技术实施人员都有参考价值。
2. 问题:如何对异构异源的数据进行数据挖掘,是云时代的企业面临的难题
2.1. 挖掘效率
面对引入互联网应用后海量的异构数据时,目前的挖掘算法效率很低。
2.2. 多源数据
引入云计算后,企业数据的位置有可能在提供公有云服务的平台上,也可能在企业自建的私有云上,如何面对不同的数据源进行挖掘也是一个挑战。不同应用的数据整合、全球部署等问题,使多源问题更加复杂。
2.3. 异构数据
Web数据的最大特点就是半结构化,包括文档、报表、网页,甚至声音、图像、视频等,而云计算带来了大量的基于互联网模式提供的SaaS应用,如何梳理有效数据是一个挑战。3. 适合云应用数据挖掘的模式建议
SaaS应用的数据挖掘希望能够通过海量数据存储平台,引入快速并行的挖掘算法,提高数据挖掘的质量。3.1. 数据仓库建模阶段
3.1.1. 引入XML标记和交换数据
XML能够使不同来源的结构化数据很容易地结合在一起,因而使搜索多样的不兼容的数据库成为可能,从而为解决Web数据挖掘难题带来了希望3.1.2. 引入MapReduce算法
MapReduce更适合如下场景。- ETL(数据提取转化加载)类的应用:从多个不同的源读取日志信息;分析以及清理日志数据;执行复杂的变换,比如“会话转换”;决定存储什么样的属性以及把信息装载到DBMS或者其他存储引擎中。
- 复杂分析应用:这种挖掘类型的应用需要对数据进行多步骤的计算和处理,通常一个程序的输出会是另外一个程序的输入,因此很难用单个SQL语句来表示,这种应用场合下,MapReduce是很好的候选方案。
- 半结构化数据:因为不需要对数据的存储进行格式定义,所以MapReduce比较适合处理半结构化数据,这些数据通常都是一些键值对。这些场合下,MapReduce非常适合做ETL的事情。
- 快速实施的系统:完善和健壮的低成本开源解决方案是MapReduce最大的优点。
3.1.3. 引入HDFS的分布式存储模式
GFS和HDFS都采用“单一主控机+多台工作机”的模式,通过数据分块和复制(多副本,一般是3)来提供更高的可靠性和性能。3.1.4. 引入Hive架构
Hive是建立在Hadoop上的数据仓库基础构架,是一种可以存储、查询和分析Hadoop中大规模数据的机制,提供了一系列工具用来进行数据ETL操作。Hive定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据。这个语言也允许熟悉?MapReduce开发者自定义Mapper和Reducer来处理内建的Mapper 和Reducer无法完成的复杂分析工作3.2. 数据挖掘阶段
引入数据分析中间件,提供数据处理、数据探索、数据建模及模型应用等一系列功能,开发多种数据挖掘算法和统计建模方法,并能够方便、快速、高效地处理海量数据,为商业智能的应用提供更方便、更灵活的工具和服务。3.3. 数据呈现阶段
把BI作为一种SaaS服务提供给企业,可以采用Discoverer或ORACLE Business Intelligence Suite Enterprise Edition[OBIEE]4. 数据挖掘模式图
4.1. 企业数据层
企业数据来源于各类应用,如 SaaS应用、企业内部应用数据和专有云应用。4.2. 数据仓库层
引入HDFS分布存储系统和Hive体系架构,通过?MapReduce算法对数据梳理和提取。4.3. 数据挖掘层
引入基于XML数据分析中间件,实现统计查询和数据挖掘功能。4.4. 数据分析与BI应用层
将BI以SaaS服务的模式提供给企业使用5. 注释
- OBIEE:ORACLE Business Intelligence Suite Enterprise Edition
- 是一种提供了整套的分析和报表功能的企业级商业智能产品。OBIEE支持针对详细商业数据的深入分析和数据挖掘,提供对做出关键决策的真实有用信息。http://en.wikipedia.org/wiki/Oracle_Business_Intelligence_Suite_Enterprise_Edition