第3章 数据统计技术
3.1 如何进行汇总统计 ?
面试官:当你拿到数据集的时候,如何对数据进行汇总和统计呢?
程序员大树:
汇总统计可以将数据集的各种特征用指标进行统计。
常用的指标有频率、众数、分位数、均值、中位数、极差、方差。对于多元数据,可以用协方差矩阵观察数据的散布情况。两个属性的协方差是两个属性一起变化并依赖于变量大小的度量。
协方差的公式是:
也可以用相关性来度量两个变量间的线性关系。
3.2 如何进行数据可视化?
面试官:说说你都用过哪些数据可视化的方法?
程序员大树:使用图表分析可以有效地将数据可视化,探查到数据属性之间的关系。 (1)茎叶图可以用来观测数据的分布。它将值分组,每组除最后一位外相同,每个组成为茎,每组中最后一位数字成为叶。
(2)直方图将同一区间内的属性值合并。值得注意的是对多个属性进行二维直方图的绘制:
(3)盒状图可以显示数据的分位。盒的下端和上端分别是上四和下四分位数,盒中的线指示中位数的值。离群值用“.”显示。
盒装图使用实例
(4)散布图使用两个属性的值作为x和y坐标值。
3.3 如何使用OLAP和多维数据分析?
面试官:有没有使用过OLAP分析方法?请具体说说。
程序员大树:
OLAP是联机分析系统。我们日常接触到的事物是复杂、多面的,可以抽象成一个数据立方体,即所有聚集数据的总和。OLAP展现在用户面前的是一幅幅多维视图。维度(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。
OLAP的基本多维分析操作有钻取(分为上卷Drill-up和下钻Drill-down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)等。钻取:是改变维的层次,变换分析的粒度。上卷是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而下钻则相反,它从汇总数据深入到细节数据进行观察或增加新维。
切片和切块:是在一部分维上选定值后,看需要度量的数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。
旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
面试官:那OLAP具体又分为哪几种呢?
程序员大树:OLAP可以分为ROLAP,MOLAP和HOLAP。ROLAP: 使用关系型数据库或者扩展的关系型数据库来管理数据仓库数据,而OLAP中间件支持其余的功能。ROLAP包含了每个后端关系型数据库的优化,聚合,维度操作逻辑的实现,附件的工具以及服务等。比较典型的ROLAP有mondrian, Presto(facebook)。目前阿里的DRDS也可以看作是ROLAP的框架
MOLAP: 通过基于数据立方体的多位存储引擎,支持数据的多位视图。即通过将多维视图直接映射到数据立方体上,使用数据立方体能够将预计算的汇总数据快速索引。比较典型的MOLAP框架有kylin(apache), Lylin(ebay)、pinot(linkedin)和druid
HOLAP: 混合OLAP结合ROLAP和MOLAP,得益于ROLAP较大的可伸缩性和MOLAP的快速查询。
面试官:你用过哪些OLAP的产品呢?各有什么特点?
程序员大树:(1)Druid:一个用于大数据实时处理的开源分布式系统
特点:
1. 快速的交互式查询——Druid的低延迟数据摄取架构允许事件在它们创建后毫秒内可被查询到。
2. 高可用性——Druid的数据在系统更新时依然可用,规模的扩大和缩小都不会造成数据丢失;
3. 可扩展——Druid已实现每天能够处理数十亿事件和TB级数据。
4. 为分析而设计——Druid是为OLAP工作流的探索性分析而构建,它支持各种过滤、聚合和查询。
应用场景:
1. 需要实时查询分析时;
2. 具有大量数据时,如每天数亿事件的新增、每天数10T数据的增加;
3. 需要一个高可用、高容错、高性能数据库时。
4. 需要交互式聚合和快速探究大量数据时
(2)Presto是Facebook开发的分布式大数据SQL查询引擎,专门进行快速数据分析。
特点:
1. 可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。
2. 直接从HDFS读取数据,在使用前不需要大量的ETL操作。
查询原理:
1. 完全基于内存的并行计算
2. 流水线
3. 本地化计算
4. 动态编译执行计划
5. 小心使用内存和数据结构
6. 类BlinkDB的近似查询
(3)Kylin
Apache Kylin最初由eBay开发并贡献至开源社区的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据。
特点:
1. 用户为百亿以上数据集定义数据模型并构建立方体
2. 亚秒级的查询速度,同时支持高并发
3. 为Hadoop提供标准SQL支持大部分查询功能
4. 提供与BI工具,如Tableau的整合能力
5. 友好的web界面以管理,监控和使用立方体
6. 项目及立方体级别的访问控制安全