大数据预聚合OLAP技术及应用场景探究

    连城

    摘 要:随着业务的不断发展,人们已不满足于大数据技术提供的海量存储与离线分析能力,希望能支持联机分析处理(OLAP)场景。然而在海量数据条件下,对OLAP纬度、指标数量、查询的并发度及响应时间都有较高的要求。传统的RMDBS或SQL on Hadoop能力有限,不能有效支撑。以Druid和Kylin为代表的预聚合技术的出现,在较大程度上满足了大数据OLAP场景的需求。文章在简述OLAP技术发展的基础上,分析这类预聚合技术的系统特点及应用场景。

    关键词:大数据;OLAP;预聚合;应用场景

    近年来,开源大数据技术逐渐占领了数据分析的市场。Hadoop生态圈的分布式文件系统(Hadoop Distributed File System,HDFS)和HBase作为主流的海量数据存储、Hive作为主流SQL数据分析引擎,逐步蚕食传统分析型关系数据库的市场。为解决MapReduce低效问题,出现了以内存为中心的计算引擎配合Hadoop的方式,诸如SparkSQL,Impala,Presto等SQL on Hadoop。它们的出现使得数据分析摆脱了对传统关系型数据库的依赖,一次分析数据量也增加到TB或PB级,支持任意纬度和指标。但是响应时间上就从秒到分钟不等,量大会到小时。为了满足大数据联机分析处理(On-Line Analytical Processing,OLAP)场景的需求,出现了以Druid和Kylin为代表的预聚合技术。通过对其系统特点的分析,借鉴解决大量聚合后结果存放,查询的并发度高、响应时间短,预聚合时效性高等一系列大数据OLAP问题的思路。通过对其应用场景的探讨,可为将来引入该类技术提供参考。

    1 OLAP技术发展简史

    OLAP是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。按照其实现方式不同,可以分为ROLAP(Relational)、MOLAP(Multidimensional)和HOLAP(Hybrid)3种类型。其中,ROLAP采用关系表存储维信息和事实数据;MOLAP则采用多维数据结构存储维信息和事实数据;而HOLAP称其为混合OLAP,该方法结合了ROLAP和MOLAP技术。无论是何种OLAP,都需要存储和计算平台的支持[1]。

    1.1 传统RMDBS技术

    诸如Oracle,DB2,MySQL,Postgresql等传统RMDBS(关系型数据库系统)技术,都是使用关系表存储维信息和事实数据,属于ROLAP类型。传统关系型数据库一般同时具备存储和计算能力,相对于大数据计算与存储分离,是一种紧凑的架构。数据量级方面一般小于百(千)万行级;纬度和指标数量一般小于10个;查询响应时间一般是毫秒到秒,量大会到分钟。当然上述条件会因为数据库配置及自身特性有所不同,比如DB2这种分布式能力较强的分析类关系数据库,其OLAP分析条件会更好。

    1.2 并行计算SQL on Hadoop技术

    大数据处理方式简单来说就是:计算+存储。诸如Hive,SparkSQL,Impala,Presto等都是基于Hadoop存储(准确来说应是HDFS)之上的计算引擎。从基于磁盘的MapReduce到基于内存的Spark,以及类似MPP架构的Impala和Presto。每次新型计算引擎的出现,在保证高扩展性、并行计算能力为前提,不断缩短查询响应时间、提高并发度。数据量级方面一般介于百(千)万行级和亿行级之间;纬度和指标数量一般无限制;查询响应时间一般是秒到分钟,量大会到小时。当然上述条件会因为Hadoop集群规模配置及引擎特性有所不同。SQL on Hadoop本质上还是使用关系表存储维信息和事实数据,属于ROLAP类型。

    1.3 预聚合OLAP on Hadoop技术

    SQL on Hadoop以ROLAP的方式支持联机分析处理,在缩短查询响应时间、提高并发度方面已近极限。为了在大数据环境下,支持更快查询响应和并发度,方法就是基于多维数据构建Cube模型,通过大量的预聚集计算,实现生成支持多维分析的Cube,并在此基础上支持以下钻、上卷、切片、切块、旋转等操作的MOLAP。其优点就是通过数据的深加工(预聚集计算、索引、压缩、缓存等),换取高的OLAP性能;缺点是数据预处理环节多,处理周期长,数据维度不宜过高,数据冗余多[2]。以Druid和Kylin为代表的预聚合技术,均属于MOLAP类型,也被称作OLAP on Hadoop。数据量级方面一般介于亿行级和百(千)亿行级之间;纬度数量建议小等于15个;指标数量一般无限制;查询响应时间一般是毫秒到秒。

    2 系统特点分析

    目前开源MOLAP多维数据分析工具,包括Kylin,Druid,Pinot等。其中Kylin和Druid是使用比较广泛的OLAP on Hadoop。

    2.1 实时多维分析OLAP引擎—Kylin

    Kylin全称叫作Apache Kylin,是Apache开源软件基金会里的顶级项目,用了Hadoop生态圈里面多个组件。通过Hive批量、Kafka实时导入数据,预计算支持MapReduce,Spark,Streaming方式。當整个计算结束之后,所有的分析应用、查询应用、挖掘应用会像数据库一样,通过标准的SQL访问。Kylin系统会非常精准地知道查询结果在哪里,马上可以把这个结果反馈。这点是通过其构建的Cube立方体,将某个条件(作为Key)的结果(作为Value)放在HBase中。Kylin的查询引擎会将SQL条件翻译为对应Cube的顶点(HBase的Key)并取得结果返回。由于Kylin使用HBase存储预聚合结果,在查询时间和并发度上都有很好的表现。

    Kylin主要特点如下:标准的SQL接口;支持超大数据集;亚秒级响应;可伸缩性和高吞吐率;BI及可视化工具集成[3]。

    Kylin必须预先定义模型用于描述Cube,由于是预计算模型内所有纬度的组合,作为key并存储到HBase这类快速存储。如果模型緯度太多则存储膨胀度相当恐怖。

    2.2 实时探索查询OLAP引擎—Druid

    Druid是一个开源、分布式的列存储,适用于实时数据分析的存储系统,能够快速聚合、灵活过滤、毫秒级查询和低延迟数据导入。最初由美国广告技术公司MetaMarkets开源,后作者独立Imply.io公司商业运作,其设计的适用场景是对PB级数据的快速聚合查询[4]。为了做到毫秒级的查询响应,Druid的核心思想是对数据的索引和预聚合,并载入内存快速查询。为了支持实时分析,在预聚合模型方面仅支持时序模型,数据是不可变的。Druid集群采用无共享的架构,同时依赖Zookeeper,MetadataStore(一个关系型数据库),Deep Storage(HDFS等文件系统)3个外部服务。

    Druid具有如下技术特点:数据吞吐量大;支持流式数据摄入和实时;查询灵活且快。然而,Druid对SQL的支持不友好,而且不支持Join,仅提供了一个Lookup功能,满足维表的星型关联。

    3 应用场景

    Druid和Kylin都是使用预聚合技术,以空间换时间。不同的是Druid预计算最大维度组合,然后通过对维度做索引。当查询请求来的时候,再后发地根据刚才做的纬度索引,定位到最细粒度的数据,然后把这些数据捞出来。优点是索引带来额外的空间可控(估计要50%以上,但比Kylin要小)且算法统一,不用预建模型。缺点就是捞出来的数据默认是近似值,目前只能在有限范围内(可配置)精确查询,代价就是耗资源。Kylin是预计算模型内所有纬度的组合,业务必须能被预先定义为Cube模型,且模型纬度不能太多。但优点是支持排重,精确度有保证。

    简单来说,Kylin更适合有15个左右固定的分析维度,特别是有Join的复杂场景,比如:销售、市场、管理等商务报表,预算决算,经济报表等;Druid适合时序类实时分析场景,比如:广告点击、运维监控、安全事件等数据分析。

    4 结语

    如果数据量级巨大又对查询响应时间有秒级要求,就要结合场景考虑使用Druid或Kylin这种MOLAP类型的大数据预聚合技术。通过在数据接入的时候,根据指定预聚合的指标进行聚合运算,并使用快速存储保存聚合结果,以满足大数据OLAP查询需求。数据在聚合的过程中会丢失指标对应的列值信息,可结合ROLAP类型的并行计算SQL on Hadoop技术解决。可以预见大数据HOLAP类型会将明细数据以ROLAP的形式存放,更加方便灵活,而高度聚合的数据以MOLAP的形式展现,更适合于高效的分析处理。相信大数据预聚合OLAP技术作为大数据解决方案中重要的组成部分,将发挥更大的作用。

    [参考文献]

    [1]宋杰,郭朝鹏,王智,等.大数据分析的分布式MOLAP 技术[J].软件学报,2014(4):731-752.

    [2]杜小勇,陈跃国,覃雄派.大数据与OLAP系统[J].大数据,2015(1):48-60.

    [3]Apache Kylin核心团队.Apache Kylin权威指南[M].北京:机械工业出版社,2017.

    [4]欧阳辰,刘麒贇,张海雷,等.Druid实时大数据分析原理与实践[M].北京:电子工业出版社,2017.

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 基于MATLAB 的信号时域采样及

    唐敏敏 张静摘要:频率混叠是数字信号处理中特有的现象,发生频率混叠后,信号会分析出错误的结果。而采样过程中,由于频率不够高,采样出

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建