什么是 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

Kylin 简介(一)的更多相关文章

  1. Kylin简介

    来源 Cube: 用空间换时间(类似:BI分析) 预计算把用户需要查询的维度以及他们所对应的考量的值,存储在多维空间里 当用户查询某几个维度的时候,通过这些维度条件去定位到预计算的向量空间,通过再聚合 ...

  2. Apache Kylin 简介

    http://kylin.apache.org/docs/index.html https://www.infoq.cn/article/vOrjsJCgVAVPim5hsj6p Kylin 的核心思 ...

  3. 基于CDH5.12安装Kylin及官方用例测试

    1 kylin 简介 Apache Kylin是2013年由eBay 在上海的一个中国工程师团队发起的.基于Hadoop大数据平台的开源 OLAP引擎,它采用多维立方体预计算技术,利用空间换时间的方法 ...

  4. apache kylin的单节点及多节点安装

    Kylin的使用安装文档Kylin简介Kylin是什么Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区.它提供Hadoop之上的SQL查询接口及多维分析(OLAP) ...

  5. Apache kylin 入门

    本篇文章就概念.工作机制.数据备份.优势与不足4个方面详细介绍了Apache Kylin. Apache Kylin 简介 1. Apache kylin 是一个开源的海量数据分布式预处理引擎.它通过 ...

  6. 顶级项目孵化的故事系列——Kylin的心路历程【转】

    现在已经名满天下的 Apache Kylin,是 Hadoop 大数据生态系统不可或缺的一部分,要知道在 Kylin 项目早期,可是以华人为主的开源团队,一路披荆斩棘经过几年的奋斗,才在 Apache ...

  7. 【离线数仓】Day04-即席查询(Ad Hoc):Presto链接不同数据源查询、Druid建多维表、Kylin使用cube快速查询

    一.Presto 1.简介 概念:大数据量.秒级.分布式SQL查询engine[解析SQL但不是数据库] 架构 不同worker对应不同的数据源(各数据源有对应的connector连接适配器) 优缺点 ...

  8. 交互式计算引擎MOLAP篇

    交互式计算引擎MOLAP篇 摘自:<大数据技术体系详解:原理.架构与实践> MOLAP是一种通过预计算cube方式加速查询的OLAP引擎,它的核心思想是“空间换时间”,典型代表包括Drui ...

  9. Kylin的简介与安装部署

    一.Kylin的概述 官方网址:http://kylin.apache.org/cn/ Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析 ...

  10. Kylin 架构模块简介

    Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能 ...

随机推荐

  1. IDEA使用技巧以及常用快捷键

    Ctrl+N按名字搜索类 Ctrl+Shift+N按文件名搜索文件 Alt+F7查找类或方法在哪被使用: Ctrl+F/Ctrl+Shift+F按照文本的内容查找 : Ctrl+F是在本页查找,Ctr ...

  2. 基于 C\# 和 .NET 的 Spread.NET 数据处理实战

    引言 在当今数字化的时代,数据处理和分析在各个领域都扮演着至关重要的角色.对于开发者而言,选择一款功能强大且易于集成的表格控件来处理数据是提高开发效率和质量的关键.Spread.NET 作为 Grap ...

  3. Step-by-step FTP to ABAP Proxy

    引自:https://wiki.scn.sap.com/wiki/display/XI/Step-by-step+FTP+to+ABAP+Proxy ABAP Server Proxy Area: S ...

  4. 数栈优化案例:物流客户Elasticsearch集群性能优化

    一.客户背景 客户使用ES来进行数据存储.快速查询业务订单记录,但是经常会出现业务高峰期ES集群的cpu负载.内存使用均较高,查询延迟大,导致前端业务访问出现大量超时的情况,极大影响其客户使用体验. ...

  5. ET服务端分布式部署

    环境:Centos7+ET5.0+Mac(本地) 一:服务器部署 1:服务端代码调整: 有一个组件 CoroutineLockComponent只在 AllServer中有加载,部署分布式时,有需要该 ...

  6. 附录:LInux编辑器

    附录2:编辑器 1.vim 参考:菜鸟教程 1.1.安装 sudo apt install -y vim 1.2.常用指令 基本上 vi/vim 共分为三种模式,命令模式(Command Mode). ...

  7. Linux安装最新Erlang、RabbitMQ

    进入RabbitMQ官网 简介: RabbitMQ是一个免费的开源企业消息代理软件. 它是用Erlang编写的,并实现了高级消息队列协议(AMQP). 它提供所有主要编程语言的客户端库. 它支持多种消 ...

  8. Oracle中的函数与存储过程

    自定义函数 函数的最大特征是必须返回值 创建自定义函数 创建函数使用create or replace function命令 create or replace function 函数名 return ...

  9. 为什么 战舰stm32f103开发板32.768k晶振没有接电容

    主要是方便起振,ST的RTC晶振特难振,不焊接这两个电容,起振率高一点  转自: http://www.openedv.com/forum.php?mod=viewthread&tid=737 ...

  10. opengl 视图

    简介 我的印象中,对于纯C的三维投影实现是要确定viewpoint,即摄像机的视角和朝向,但是在opengl中可以不这么设置可以采用默认设置 如果没有调用gluLookAt()函数,那么摄像机就会采用 ...