• Kylin 简介(一)


    什么是 Kylin

    官网:http://kylin.apache.org/cn/

    Apache Kylin 是 Hadoop/Spark 大数据平台上的一个开源的联机分析处理(OLAP)引擎

    • Kylin 采用多维立方体预计算技术,实现了超高速的大数据 OLAP 分析,也就是要让大数据分析像使用数据库一样简单迅速,用户的查询请求可以在秒级返回,交互式数据分析以前所未有的速度释放大数据里潜藏的知识和信息
    • Kylin 是第一个由中国人主导的 Apache 顶级开源项目,在国际开源社区具有极大的影响力。目前,全球已经有超过一千家企业将 Kylin 用于自身的关键业务分析

    为何要用 Kylin

    传统技术如 Hive、Spark SQL 等想要提高查询性能方法如下:

    • 大规模并行处理(MPP)
    • 列式存储
    • 建索引
    • 压缩

    以上所有这些方法都只是提高了单位时间内计算机处理数据的能力,但是这些技术都不会改变一个事实,那就是查询时间与数据量之间成正比关系

    当数据量翻倍,在不扩容的前提下,MPP、存储空间、索引文件和压缩文件都将翻倍,因此,查询时间也会翻倍,查询速度随之变为原来的一半。当数据量十倍百倍地增加时,查询速度就会十倍和百倍地降低,最终无法完成查询。

    Kylin 预计算技术

    大数据分析(OLAP)有两个事实,如下:

    • 大数据查询要的一般是统计结果,是多条记录经过聚合函数计算后的统计值。原始的记录则不是必需的,或者是被访问的频率和概率极低
    • 聚合是按照维度进行的,而维度的聚合可能性是有限的,一般不随数据的膨胀而线性增长

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

    举例

    查询10月1日销售额最高的商品

    select item,sum(sell_amount) from sell_details
    where sell_date="2021-10-01"
    group by item
    order by sum(sell_amount) desc
    

    传统的方法需要扫描所有的记录,找到 10月1日的销售记录,然后按商品聚合销售额,然后排序返回。假如 10月1日有 1 亿条交易记录,那么查询必需读取并累计至少 1 亿条记录,且查询速度会随将来销售的增加而逐渐下降,如果日交易量提高至 2 亿条,那么查询执行的时间可能会增加 1 倍。

    预计算的方法则是会事先按维度[sell_date,item] 计算 sum(sell_amount) 并将其存储下来,在查询时找到 10 月 1日的销售商品就可以直接排序返回了。

    读取的记录数最大不超过维度[sell_date,item]的组合数。显然数字将远远小于实际的销售记录,比如10月1日的1亿条记录包含了100万种商品,那么预计算后就只有100万条记录了,是原来的百分之一。并且这些记录是已经按商品聚合的结果,省去了运行时的聚合运算,从未来的发展看,查询速度只会随日期和商品数目的增长而变化,与销售记录总数不再有直接联系。

    假如销售记录提高一倍到2亿,但只要商品总数不变,那么预计算的结果记录总数就不会变,查询的速度也不会变。

    预计算就是 Kylin 在大规模并行处理和列式存储之外,提供给大数据分析的第三个关键技术。

    预计算是空间换时间,在空间不敏感、需求相对稳定的时候,性价比有很大的优势

    Kylin 主要特点

    • 支持标准 SQL 接口

      SQL 是绝大多数分析人员最熟悉的工具,也是大多数应用程序使用的编程接口,标准 SQL 接口是 Kylin 能够快速推广的关键原因

    • 支持超大数据集

      因为 Kylin 使用 Cube 预计算技术,使 Kylin 可以支撑的数据集大小没有上限,仅受限于存储系统和分布式计算系统的承载能力,并且查询速度不会随数据集的增大而减慢

      Kylin 在数据集规模上的局限性主要在于维度的个数和接数。它们一般由数据模型决定,不随数据规模的增加而线性增长,也就是 Kylin 对未来数据增长有着更强的适应能力

    • 支持亚秒级响应

      Kylin 有优异的查询响应速度,这得益于预计算,很多复杂的计算如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时所需的计算量,提高了查询响应的速度

    • 可伸缩性和高吞吐率

      这主要还是归功于预计算降低了查询时所需的计算总量,使 Kylin 可以在相同的硬件配置下承载更多的并发查询

    • BI及可视化工具集成

      Kylin 提供了丰富的 API 与现有的 BI 工具集成,如 ODBC、JDBC、Rest API 等。另外,Kylin 核心团队也贡献了 Zeppelin 及 Superset 的插件等免费可视化工具来访问 Kylin

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    CodeForces 347B Fixed Points (水题)
    CodeForces 347A Difference Row (水题)
    CodeForces 346A Alice and Bob (数学最大公约数)
    CodeForces 474C Captain Marmot (数学,旋转,暴力)
    CodeForces 474B Worms (水题,二分)
    CodeForces 474A Keyboard (水题)
    压力测试学习(一)
    算法学习(一)五个常用算法概念了解
    C#语言规范
    异常System.Threading.Thread.AbortInternal
  • 原文地址:https://www.cnblogs.com/binbingg/p/14917256.html
Copyright © 2020-2023  润新知