第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. 项目及立方体级别的访问控制安全

全部评论

相关推荐

下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务