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
Kylin 简介(一)的更多相关文章
- Kylin简介
来源 Cube: 用空间换时间(类似:BI分析) 预计算把用户需要查询的维度以及他们所对应的考量的值,存储在多维空间里 当用户查询某几个维度的时候,通过这些维度条件去定位到预计算的向量空间,通过再聚合 ...
- Apache Kylin 简介
http://kylin.apache.org/docs/index.html https://www.infoq.cn/article/vOrjsJCgVAVPim5hsj6p Kylin 的核心思 ...
- 基于CDH5.12安装Kylin及官方用例测试
1 kylin 简介 Apache Kylin是2013年由eBay 在上海的一个中国工程师团队发起的.基于Hadoop大数据平台的开源 OLAP引擎,它采用多维立方体预计算技术,利用空间换时间的方法 ...
- apache kylin的单节点及多节点安装
Kylin的使用安装文档Kylin简介Kylin是什么Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区.它提供Hadoop之上的SQL查询接口及多维分析(OLAP) ...
- Apache kylin 入门
本篇文章就概念.工作机制.数据备份.优势与不足4个方面详细介绍了Apache Kylin. Apache Kylin 简介 1. Apache kylin 是一个开源的海量数据分布式预处理引擎.它通过 ...
- 顶级项目孵化的故事系列——Kylin的心路历程【转】
现在已经名满天下的 Apache Kylin,是 Hadoop 大数据生态系统不可或缺的一部分,要知道在 Kylin 项目早期,可是以华人为主的开源团队,一路披荆斩棘经过几年的奋斗,才在 Apache ...
- 【离线数仓】Day04-即席查询(Ad Hoc):Presto链接不同数据源查询、Druid建多维表、Kylin使用cube快速查询
一.Presto 1.简介 概念:大数据量.秒级.分布式SQL查询engine[解析SQL但不是数据库] 架构 不同worker对应不同的数据源(各数据源有对应的connector连接适配器) 优缺点 ...
- 交互式计算引擎MOLAP篇
交互式计算引擎MOLAP篇 摘自:<大数据技术体系详解:原理.架构与实践> MOLAP是一种通过预计算cube方式加速查询的OLAP引擎,它的核心思想是“空间换时间”,典型代表包括Drui ...
- Kylin的简介与安装部署
一.Kylin的概述 官方网址:http://kylin.apache.org/cn/ Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析 ...
- Kylin 架构模块简介
Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能 ...
随机推荐
- 使用hive数据查询小结
业务背景: 公司大数据查询需要通过hive查询和分析一些数据 产品提出业务分析需求: 我的处理方式: 接到需求就想怎么写SQL语句,然后不断调整SQL语句进行验证,最后这个需求写了170行的SQL语句 ...
- 从数组和List中随机抽取若干不重复的元素
一.从数组中随机抽取若干不重复元素 /** * @function:从数组中随机抽取若干不重复元素 * * @param paramArray:被抽取数组 * @param count:抽取元素的个数 ...
- Spring Boot 集成 tess4j 实现图片识别文本
前言 tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本.支持多种语言和书面语言,并且可以在命令行中执行.它是一个流行的开源OCR工具,可以在许多不同 ...
- RESTful API 设计原则深度解析
在 Web 服务架构中,RESTful API作为一种轻量级.可扩展的接口设计风格,通过 HTTP 协议实现资源的标准化访问.本文从核心原则.URL 设计.HTTP 方法应用.状态管理及面试高频问题五 ...
- Web前端入门第 75 问:JavaScript 性能优化之事件委托(事件代理)原理
如今 Vue 大行其道,大部分开发场景直接使用 @click 就实现了事件绑定,可能都没思索过 JS 中的事件性能优化. 事件委托原理 事件委托 其主要是利用了事件冒泡这个特性. 以点击事件 clic ...
- 如何识别SQL Server中需要添加索引的查询
引言 在数据库性能优化中,索引是提升查询速度最有效的手段之一.然而,不恰当的索引会降低写操作性能并增加存储开销.作为DBA,我们经常面临这样的挑战:如何精准定位哪些查询真正需要添加索引? 本文将分享几 ...
- 安卓端-APPUI自动化实战【上】
当前UI自动化测试存在以下问题: 1.投入产出比低:在目前版本快速迭代的大背景下,app更新较快,维护脚本成本高,导致投入产出比低 2.对测试人员要求较高:必须有一定的编程能力 3.运行稳定性较差,断 ...
- ETLCloud中如何执行SQL脚本
SQL脚本 在数据库管理与数据分析的广阔领域中,SQL(Structured Query Language,结构化查询语言)脚本扮演着举足轻重的角色.作为一门专为关系型数据库设计的编程语言,SQL不仅 ...
- 在服务器上使用python虚拟环境
在服务器上直接用pip安装python包会破坏系统python环境,因此要部署django之类的服务需要创建python虚拟环境(目标系统:Debian11). 1. 安装pip apt-get in ...
- 从零开始实现简易版Netty(四) MyNetty 高效的数据写出实现
从零开始实现简易版Netty(四) MyNetty 高效的数据写出实现 1. MyNetty 数据写出处理优化 在上一篇博客中,lab3版本的MyNetty对事件循环中的IO读事件处理做了一定的优化, ...