大数据解决思想

目前大数据,AI,机器学习这么热,那我们也要跟紧时代的脚步。记录下大数据学习之旅。

大数据为什么能做到普通应用做不到的计算,除了大家熟知的分布式计算外(分治思想),还有就是数据的存储格式,普通的关系型数据型数据库都是采用行存储,而OLAP框架中常会采用列式存储来提高扫描效率,另外还有个技术手段就是内存计算了。传统的数据读写都是在磁盘上操作,相对内存里计算效率差了几个量级。(这个就要求高内存的硬件配置了,联机分析处理OLAP(On-Line Analytical Processing)是指基于数据仓库的在线多维统计分析)。

OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。

  • 钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
  • 切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
  • 旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。

OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。

  • ROLAP表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"。特点是将细节数据保留在关系型数据库的事实表中,聚合后的数据也保存在关系型的数据库中。这种方式查询效率最低,不推荐使用。
  • MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方块(Cube)"的结构,在MOLAP中对"立方块"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。特点是将细节数据和聚合后的数据均保存在cube中,所以以空间换效率,查询时效率高,但生成cube时需要大量的时间和空间。

 

  • HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。特点是将细节数据保留在关系型数据库的事实表中,但是聚合后的数据保存在cube中,聚合时需要比ROLAP更多的时间,查询效率比ROLAP高,但低于MOLAP。

下面再提几个大数据概念。大数据实践是离不开的ETLExtract Transform Load,我们可以这么理解,抽取(E)这一步是从我们的mysql,mongo中获取的原始数据结构,大数据中叫操作数据存储ODS(Operational Data Store),接下来转换(T)这一步,就是将我们ODS中的数据结构重新包装作为一种中间结构,称作概念数据模型CDM (concept data model),最后,我们可以利用CDM中构造好的中间结构根据具体业务需求,装载(T)成最终的业务结构。称作应用数据层ADS (Application data store)。当然CDM做为最终的业务模型也是正常的。

       下面我们看一下大数据平台实践

你可能感兴趣的:(大数据)