随着云时代的到来和SaaS概念的引入,越来越多的企业开始选择由SaaS应用提供商、运营商等通过互联网平台提供SaaS应用服务,SaaS应用的数据 量面临着TB级的增长速度;不同的SaaS应用体系,提供的数据结构也不完全相同,数据有文本、图形甚至小型数据库;SaaS应用数据随着云服务平台的分 布性特点,有可能分布在不同的服务器上,如何对这些异构异源的数据进行数据挖掘,是云时代的企业面临的难题。
如何从海量应用挖掘出合理的数据
对于企业而言,如何将各种SaaS应用数据进行整合挖掘,提炼出适合其使用的商业信息是企业的一大急迫需求。传统的BI模式大多基于数据仓库,是关系型数 据库的模式。面对急剧增长的异构数据,传统的数据仓库和原有的并行计算技术由于挖掘效率低,已经不能解决海量数据挖掘工作,影响着数据的及时提取。
云时代企业数据挖掘也面临如下挑战。
- 挖掘效率:进入云计算时代后,BI的思路发生了转换。以前是基于封闭的企业数据进行挖掘,而面对引入互联网应用后海量的异构数据(据预计到2020年,爆发式增长的数据量将突破35ZB(1ZB=10亿TB))时,目前并行挖掘算法的效率很低。
- 多源数据:引入云计算后,企业数据的位置有可能在提供公有云服务的平台上,也可能在企业自建的私有云上,如何面对不同的数据源进行挖掘也是一个挑战。 如图1所示。
- 异构数据:Web数据的最大特点就是半结构化,如文档、报表、网页、声音、图像、视频等,而云计算带来了大量的基于互联网模式提供的SaaS应用,如何梳理有效数据是一个挑战。
SaaS应用的数据挖掘希望能够通过海量数据存储平台,引入快速并行的挖掘算法,提高数据挖掘的质量。
适合云应用数据挖掘的模式建议
数据仓库建模阶段
为了应对SaaS应用大量异构数据,引入XML标记和交换数据。 由于XML能够使不同来源的结构化数据很容易地结合在一起,因而使搜索多样的不兼容的数据库成为可能,从而为解决Web数据挖掘难题带来了希望。XML的扩展性和灵活性允许XML描述不同种类应用软件中的数据,从而能描述搜集的Web页中的数据记录。
引入MapReduce算法,提高数据抽取转换的效率。 MapReduce 算法是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。当前的实现方法是指定一个Map(映射)函数用来把一组键值对映射成 一组新的键值对,指定并发的Reduce(化简)函数用来保证所有映射的键值对中的每一个共享相同的键组。
MapReduce更适合如下场景。
- ETL(数据提取转化加载)类的应用:从多个不同的源读取日志信息;分析以及清理日志数据;执行复杂的变换,比如“会话转换”;决定存储什么样的属性以及把信息装载到DBMS或者其他存储引擎中。
- 复杂分析应用:这种挖掘类型的应用需要对数据进行多步骤的计算和处理,通常一个程序的输出会是另外一个程序的输入,因此很难用单个SQL语句来表示,这种应用场合下,MapReduce是很好的候选方案。
- 半结构化数据:因为不需要对数据的存储进行格式定义,所以MapReduce比较适合处理半结构化数据,这些数据通常都是一些键值对。这些场合下,MapReduce非常适合做ETL的事情。
- 快速实施的系统:完善和健壮的低成本开源解决方案是MapReduce最大的优点。
引入HDFS的分布式存储模式。 HDFS 系统简单,利于提高实施效率,适合海量数据挖掘。HDFS架构基于GFS体系架构(Google File System,简称GFS,是由Google 设计并实现的一个分布式文件系统,基于大量安装有Linux操作系统的普通PC构成的集群系统),但比GFS架构精简。GFS和HDFS都采用“单一主控 机+多台工作机”的模式,通过数据分块和复制(多副本,一般是3)来提供更高的可靠性和性能。GFS允许文件被多次或者多个客户端同时打开以追加数据,以 记录为单位。而在HDFS中,文件只允许一次打开并追加数据。GFS中采用主从模式备份Master的系统元数据,当主Master失效时,可以通过分布 式选举备机接替主Master继续对外提供服务,而由于Replication及主备切换本身有一定的复杂性,HDFS Master的持久化数据只写入 到本机(可能写入多份存放到Master机器的多个磁盘中防止某个磁盘损害),出现故障时需要人工介入。GFS通过内部采用Copy-on-Write的 数据结构实现集群快照功能,而HDFS不提供快照功能。
引入Hive架构。 Hive 是建立在Hadoop上的数据仓库基础构架,是一种可以存储、查询和分析Hadoop中大规模数据的机制,提供了一系列工具用来进行数据ETL操作。 Hive定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据。这个语言也允许熟悉MapReduce开发者自定义Mapper和 Reducer来处理内建的Mapper 和Reducer无法完成的复杂分析工作。
数据挖掘阶段
引入数据分析中间件,提供数据处理、数据探索、数据建模及模型应用等一系列功能,开发多种数据挖掘算法和统计建模方法,并能够方便、快速、高效地处理海量数据,为商业智能的应用提供更方便、更灵活的工具和服务。
数据呈现阶段
BI作为云计算的一种SaaS服务提供给企业,建立行业数据库。面对林林总总的SaaS应用,BI同样可作为一种SaaS服务提供给企业。同时,数据挖掘 工具进行数据分析,可以发现重要的数据模式,这对构建知识库做出了巨大贡献——数据和信息之间的鸿沟要求系统地开发数据挖掘工具,将数据“坟墓”转换成知 识“金块”。
数据挖掘模式图
我们设计的数据挖掘模式图如图2所示。
- 企业数据层:企业数据来源于各类应用,如 SaaS应用、企业内部应用数据和专有云应用。
- 数据仓库层:主要引入HDFS分布存储系统和Hive体系架构,通过MapReduce算法对数据梳理和提取。
- 数据挖掘层:引入基于XML数据分析中间件,实现统计查询和数据挖掘功能。
- 数据分析与BI应用层:将BI以SaaS服务的模式提供给企业使用。
总结
随着云时代的到来,企业面临的应用方式更加多元化,通过云的手段提供海量数据挖掘的方法,提高了挖掘的效率,增加了挖掘的精度,更利于挖掘应用的推广以及专业的行业知识库的构建。