Kylin简介

Kylin简介

使命是超高速的大数据OLAP(Online Analytical Processing),也就是要让大数据分析像使用数据库一样简单迅速,用户的查询请求可以在秒内返回。

Hadoop

Hadoop诞生以来,大数据的存储和批处理问题均得到了妥善解决,而如何高速地分析数据也就成为了下一个挑战。于是各式各 样的“SQL on Hadoop”技术应运而生,其中以Hive为代表,Impala、Presto、 Phoenix、Drill、SparkSQL等紧随其后。它们的主要技术是“大规模并行处 理”(Massive Parallel Processing,MPP)和“列式存储”(Columnar Storage)。大规模并行处理可以调动多台机器一起进行并行计算,用线性增加的资源来换取计算时间的线性下降。列式存储则将记录按列存放,这样做不
仅可以在访问时只读取需要的列,还可以利用存储设备擅长连续读取的 特点,大大提高读取的速率。这两项关键技术使得Hadoop上的SQL查询
速度从小时提高到了分钟。
大数据OLAP的特征:

  1. 大数据查询要的一般是统计结果,是多条记录经过聚合函数计算后的统计值。
  2. 聚合是按维度进行的,由于业务范围和分析需求是有限的,有意义的维度聚合组合也是相对有限的,一般不会随着数据的膨胀而增长

预计算

尽量多地预先计算聚合结果,在查询时刻应尽量使用预算的结果得出查询结果,从而避免直接扫描可能无限增长的原始记录。

工作原理

MOLAP(Multidimensional Online Analytical Processing)Cube,也就是多维立方体分析

  • 维度就是观察数据的角度。比如电商的销售数据,可以从 时间的维度来观察,也可以进一步细化,从时间和 地区的维度来观察
  • 度量就是被聚合的统计值,也是聚合运算的结果,它一般是连续的 值
  • 对于每一种维度的组合,将度 量做聚合运算,然后将运算的结果保存为一个物化视图,称为Cuboid。所 有维度组合的Cuboid作为一个整体,被称为Cube。一个 Cube就是许多按维度聚合的物化视图的集合。
  • Apache Kylin的工作原理就是对数据模型做Cube预计算,并利用计算的结果加速查询
    1)指定数据模型,定义维度和度量。
    2)预计算Cube,计算所有Cuboid并保存为物化视图。
    3)执行查询时,读取Cuboid,运算,产生查询结果。
    由于Kylin的查询过程不会扫描原始记录,而是通过预计算预先完成表的关联、聚合等复杂运算,并利用预计算的结果来执行查询。

技术架构

Kylin架构

  • 下方是离线部分(构建cube),上方是在线部分(用户查询)。
  • Kylin屏蔽了Cube概念,用户不可见,而是通过各种Rest API, JDBC、ODBC接口调用。SQL给予关系模型来写。
  • 查询引擎解析SQl,生成给予关系表的逻辑执行计划,转译成基于Cube的物理执行计划,最后查询预计算生成的Cube并产生结果。
  • 整个过程不访问数据源
  • Kylin 1.5引入了可扩展架构概念。体现在三个虚线部分的抽象层。这三个模块分别是数据源,构建引擎,存储引擎。默认的分别是HIve,Mapreduce,HBase。这三部分被抽象成接口,用户可以根据需要做二次开发进行替换。

主要特点

Apache Kylin的主要特点包括支持SQL接口、支持超大数据集、亚秒级 响应、可伸缩性、高吞吐率、BI工具集成等。

  1. 标准SQl接口
    终端用户只需要像原来查询 Hive表一样编写SQL,就可以无缝地切换到Kylin,几乎不需要额外的学 习,甚至原本的Hive查询也因为与SQL同源,大多都无须修改就能直接在 Kylin上运行。

  2. 支持超大数据集
    Kylin可以支撑的数据集大小没有上限,仅受限于存储系统和分布式计算系统的承载能力,并且查 询速度不会随数据集的增大而减慢。Kylin在数据集规模上的局限性主要在于维度的个数和基数

  3. 亚秒级 响应
    Apache Kylin在某生产环境中 90%的查询可以在3s内返回结果

  4. 可伸缩性、高吞吐率
    随着服务器的增加,吞吐率也呈线 性增加,这主要还是归功于预计算降低了查询时所需的计算总量,令Kylin可以在相同的硬件配置下承载更多的并发查询。

  5. BI工具集成

猜你喜欢

转载自blog.csdn.net/shulixu/article/details/84991139