随着云时代的到来和SaaS概念的引入,越来越多的企业开始选择由SaaS应用提供商、运营商等通过互联网平台提供SaaS应用服务,SaaS应用的数据量面临着TB级的增长速度;不同的SaaS应用体系,提供的数据结构也不完全相同,数据有文本、图形甚至小型数据库;SaaS应用数据随着云服务平台的分布性特点,有可能分布在不同的服务器上,如何对这些异构异源的数据进行数据挖掘,是云时代的企业面临的难题。
图1 企业面临着在不同数据源上进行数据挖掘的挑战如何从海量应用挖掘出合理的数据
对于企业而言,如何将各种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最大的优点。
图2 数据挖掘模式图引入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服务的模式提供给企业使用。
总结
随着云时代的到来,企业面临的应用方式更加多元化,通过云的手段提供海量数据挖掘的方法,提高了挖掘的效率,增加了挖掘的精度,更利于挖掘应用的推广以及专业的行业知识库的构建。