大数据分析和大数据处理技术研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据分析和大数据处理技术研究
首先针对数据分析中数据库处理方式的不同,对数据仓库的各种应用场景,数据挖掘技术的处理过程和数据挖掘面临的主要问题进行了阐述;随后对大数据处理技术的九种典型方法进行了简要综述,包括布隆过滤器、散列法、倒排序、数据库索引与分布式处理等,对各种技术在大数据分析理解过程中的关键作用进行了总结;并对大数据处理和分析面临的计算复杂性、数据复杂性、以及系统复杂性进行分析,对各种典型的业务应用场景,提出了较为理想的应对方案。
标签:数据库;到排序;分布式处理; 数据挖掘; 大数据;推荐系统
近年来,大数据引起了学术界和产业界谷歌[7]等的重视,政府部门如美国[8]和其他组织如麦肯锡公司[9]、高德纳公司[10]的高度关注。
1 大数据分析
大数据技术是随着数据量急剧膨胀而产生的对海量数据使用和提取有效信息的一种方法,数据仓库是大数据分析的基础,数据挖掘是建立数据仓库的方法,也是使用和分析数据的方法。
1.1数据仓库
Oracle、Mysql、SQL server等关系数据库管理系统是随着关系数据库理论的提出现的,随着数据库使用范围的不断扩大,逐步被分为操作型数据库和分析型数据库。
1.1.1操作型数据库与分析型数据库的区别
(1)数据组成差别
操作型数据一般只会存放90天以内的数据,主要存放细节数据,一般反映的是现实世界的当前状态。分析型数据库存放的则是数年内的数据,既有细节数据,又有匯总数据,一般用户关注的是汇总数据部分,它可以综合所有快照对各个历史阶段进行统计分析。
(2)技术差别
操作型数据库查询的数据量少但频率高,并且允许用户进行增加、删除、修改、查询的操作,可以减少数据冗余,避免更新异常;而分析型数据库查询的量大但频率少,并且只能允许进行查询,它并不重视减少数据冗余。
1.1.2 数据仓库的组成
数据仓库的核心组件主要由四部分组成:各个源数据库、数据仓库技术(ETL)、数据仓库和前端应用,如图1所示:
(1)业务系统
业务系统包括各种源数据库,这些源数据库主要为业务系统提供数据支撑,同时也可以作为数据仓库的数据源,当然,除了业务系统,数据仓库也可以从其他外部数据源获取数据。
(2)ETL
ETL过程是构建数据仓库的重要的一个环节,包括数据提取(Extract)、转换(tranform)、清洗(cleansing)、加载(load)。
(3)数据仓库
数据仓库的突出的特点是对海量数据的支持和快速的检索技术。
1.2数据挖掘
数据挖掘既是建立数据仓库的方法,也是使用和分析数据的方法,数据挖掘在大型数据存储库中,可以自动发现有用的信息。数据挖掘用来探查大型数据库,发现先前未知的有用的模式。
数据挖掘是数据库中知识发现(Knowledge Discovery in database,Kdd)不可缺少的一部分,而KDD是将未加工的数据转换为有用信息的整个过程,该过程包括一系列转换步骤,从数据的预处理到数据挖掘结果的后处理。
数据挖掘主要任务包括预测建模(Predictive Modeling)、关联分析、聚类分析、异常检测等。
2 大数据处理方法
对于海量数据的处理,手工方式早已不能满足需求,必须通过工具进行处理。当数据量达到TB级别时,用计算机处理时也会对软、硬件的要求加倍提升。当遇到的海量数据无法全部存入内存时,那么如何处理这些重复、格式不正确的数据也是数据处理人员需要去解决的问题。
2.1 布隆过滤器及散列法
布隆过滤器(Bloom Filter)是1970年由Bloom提出,最初广泛用于拼写检查和数据库系统中。
布隆过滤器的基本原理:当一个元素被加入集合时,通过k个散列函数将这
个元素映射为一个元素中的k个点,把它们置为1。检索时,我们只要看这些点是否是1就知道集合中是否有它了。如果这些点有任何一个0,则被检元素一定不在;如果都是1,被检元素很可能在,查找结果并不能保证100%正确。所以简单的改进就是Counting Bloom Filter,用counter数组代替位数组,就可以支持删除了插入的关键字了。
散列法(Hashing)是計算机科学中一种对数据的处理方法,通过某种特定的函数/算法,将要检索的项与用来检索的索引关联起来,生成一种便于搜索的数据结构。它常用作一种信息安全的方法,如果一串数据中经过散列算法计算出来的数据指纹,经常用来识别档案与数据是否被篡改过,以保证档案与数据确实是由原创者所提供的。
2.2 堆排序及双层桶划分
堆排序(Heapsort)是利用一种叫堆积树的数据结构所设计出来的一种排序算法,它是选择排序的一种,可以利用数组的特点快速定位指定索引的元素。堆分为大顶堆和小顶堆,是完全二叉树.大顶堆的要求是每个节点的值都不大于其父节点的值。在数组的非降序排序中,需要使用的就是大顶堆,因为根据大顶堆的要求可知,最大值一定在堆顶。
利用大顶堆(小顶堆)项记录的是最大关键字(最小关键字)这一特性,使得每次从无序数组中选择最大记录(最小记录)变得简单了。对于堆排序,最重要的两个操作就是构造初始堆和调整堆,事实上构造初始堆就是调整堆的过程,但构造初始堆是对所有非叶节点都进行调整。
堆排序适合处理海量数据,并且是可以放入内存的数据。
双层桶划分是一种数据结构,也可以看作一种算法设计思想.面对一堆大量的数据无法处理的时候,可以将其分为一个个小的单元,然后根据一定的策略来处理这些小单元。从而达到目的。
3小结
本文主要介绍了大数据发展中出现的各种发展技术,介绍了布隆过滤器、散列法、堆排序、双层桶划分、数据库索引、倒排索引、外排序、trie树、分布式处理九种不同形式数据,并对信用分险建模、基于位置的服务、推荐系统、市场细分、在线广告五类大数据分析应用场景进行了介绍。
参考文献:
[1] Jagadish HV,Gehrke J,Labrinidis A,Papakonstantinou Y,Patel JM,Ramakrishnan R,Sha-habi C. Big data and its technical. Communications of the Acm,2014.