[推荐]一篇介绍数据挖掘系统架构的文章

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. 数据挖掘模式图

http://www.programmer.com.cn/wp-content/uploads/2011/07/云时代企业应用数据挖掘分析_2.jpg

4.1. 企业数据层

企业数据来源于各类应用,如 SaaS应用、企业内部应用数据和专有云应用。

4.2. 数据仓库层

引入HDFS分布存储系统和Hive体系架构,通过?MapReduce算法对数据梳理和提取。

4.3. 数据挖掘层

引入基于XML数据分析中间件,实现统计查询和数据挖掘功能。

4.4. 数据分析与BI应用层

将BI以SaaS服务的模式提供给企业使用

5. 注释