中山大学海量数据与云计算研究中心 黄志洪
2012.4
大数据分析的案例、方法与挑战
DTCC2012DTCC2012
Administrator
Line
中山大学海量数据与云计算研究中心 黄志洪
2012.4
数据分析者面临的问题
数据日趋庞大,无论是入库和查询,都出现性能瓶颈
用户的应用和分析结果呈整合趋势,对实时性和响应时间要求越来越高
使用的模型越来越复杂,计算量指数级上升
传统技能无法应对大数据:R、SAS、SQL
2
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
场景介绍
信令监测是做什么的?
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
体系架构
数据库服务器:HP小型机,128G内存,48颗CPU,2节点RAC,其中一个节点用于入
库,另外一个节点用于查询
存储:HP虚拟化存储,>1000个盘
入库节点
入库方式——常规路径sqlldr
大量使用
分区设计
数据量:每小时写入200G左右数据磁盘物理写大约
为450G每小时
问题:1 入库瓶颈 2 查询瓶颈
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
数据库设计
物理上采用ASM
大表全部按时间分区,开始时按小时分区,但由于数据量庞大,后来改成15分钟分区
,最后变成每分钟切换1个分区
采用sqlldr方式入库
5
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
入库故障描述
由于数据量太大,不得不同时启用多个处理机,产生了多个入库节点
当入库节点分别增加到2节点和4节点以后,sqlldr出现停顿现象
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
AWR报告
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
AWR报告
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
AWR报告
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
关于Buffer Cache
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
Latch
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
寻找Buffer busy wait的根源
Sqlldr和OCI方式同时insert
多个节点同时insert
解决
1 放弃使用OCI
2 对sqlldr进行垂直切分,尽量避免同时多进程插入同一张表
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
再看AWR
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
新的故障现象
Sqlldr依然有停顿,次数较为频密而持续时间较短
HWM冲突问题
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
关于HWM
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
针对HWM冲突的优化
对于无法垂直切分的特大表,按照入库节点号作子分区
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
再看AWR
HWM冲突已经被消除
Sqlldr频密周期性短暂停顿的问题依旧
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
最终问题根源
AWR报告的提示——文件头部竞争
表空间大小与自动扩展是问题根源
修正表空间设置后问题消失
18
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
备选
——牺牲实时性换取直接路径插入
直接路径插入有什么好处?
为什么没有采用直接路径插入?
19
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
备选方案——交换分区
20
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
备选方案——外部表
21
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
使用传统关系型数据库遇到的困难
All – in – one,并非专门针对数据分析设计和优化
设计复杂,调优复杂,数据分析师兼任DBA
当数据规模增加时,需要扩展硬件,边际成本指数级上升,存在无法突破的物理瓶颈
22
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
解决方案
列式数据库,实时数据库等新的数据库技术
分布式集群:Hadoop,NoSQL及其它分布式数据库技术
混合使用各种专业分析产品
23
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
场景:行为指纹识别
25
当 为 时,AC两个矢量完全不相关,即两个号码的交往圈相似度最低
当 为0 时,AC两个矢量完全相关,即两个号码的交往圈相似度最高
当 越接近0,说明两个号码的交往圈越相似
90
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
基于分布式平台运行海量数据
移动客户数据量达到TB级
Oracle数据库中sql语句可以得到结果,
但希望进一步提高效率
希望尝试多个相似度计算结果
云化
MapReduce
方法
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
云计算——网络发展的必然结果
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
Hadoop
Hadoop的主要功能:HDFS和Map-Reduce
HDFS实现数据的分布式存储,并且实现冗余备份
Map-Reduce实现计算任务的分布化,尽量使到某个节点的计算任务主要面对存储在
本地的数据,以减少跨节点的网络数据传送
28
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
HDFS结构示意图
29
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
Map-Reduce示意图
30
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
HDFS与Map-Reduce一起工作
31
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
Hive
基于Hadoop的常用数据分析工具
可以看成是SQL到Map-Reduce的转换器
HiveQL尚未能完全支持SQL 92
外部应用可以通过hive客户端、JDBC、ODBC等方式访问Hive
32
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
HBase
列式数据库,特别适合作为数据分析的场景,可以减少I/O
无真正索引
自动分区
增加新节点时自动线性扩展
使用Hbase命令而非SQL
可以通过Java,REST,thrift等接口访问HBase
33
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
Hadoop体系图
34
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
NoSQL
NoSQL = Not Only SQL
High performance, Huge Storage, High Scalability && High Availability
NoSQL面向的场景:事务性要求不高,实时性要求不高,查询较为简单,数据海量
可分布化,运行在廉价的PC集群上
典型的NoSQL产品,通常某种产品只适合某种特定场景,常要配搭使用
35
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
基于Hadoop的用户指纹识别算法
求某个客户最相似客户的MapReduce化(以相关系数为例):
Map()
• Input: 某客户数值、所有客户数值
• 将所有客户随机平分到 k台机器
• Output: k 个最大相关系数(local)
• Emit the k 个跟某客户最相似的客户
Reduce( )
• Input: Key: null; values: k 个最大相关系数(local)
• Output: 最大相关系数(global)
• Emit the 最大相关系数、与某客户最相似客户
36
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
数据分析者期待的解决方案
完美解决性能瓶颈,在可见未来不容易出现新瓶颈
过去所拥有的技能可以平稳过渡。比如SQL、R
转移平台的成本有多高?平台软硬件成本,再开发成本,技能再培养成本,维护成本
37
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
一种新的普适性关联挖掘方法
海量,不一定是指数据
多,有时可能是变量很多
观察变量之间是否具有联系的传统回归方法
38
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
传统回归模型的困难
为什么一定是线性?或某种非线性模型?
过分依赖于分析者的经验
对于非连续的离散数据难以处理
39
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
网格方法
《Science》上的文章《Detecting Novel Associations in Large Data Sets》
方法概要:用网格判断数据的集中程度,集中程度意味着是否有关联关系
方法具有一般性,即无论数据是怎样分布的,不限于特定的关联函数类型,此判断方
法都是有效
方法具有等效性,计算的熵值和噪音的程度有关,跟关联的类型无关
MIC:the Maximal Information Coefficient
MINE:Maximal Information-based Nonparametric Exploration
40
DTCC2012DTCC2012
中山大学海量数据与云计算研究中心 黄志洪
2012.4
MIC值计算
坐标平面被划分为(x,y)网格G(未必等宽),其中xy