什么是麒麟(kylin)?查数据贼快的哟

Kylin_麒麟介绍 Kylin简介 kylin-是由中国团队研发的,是第一个真正的由中国人自己主导,从零开始,并成为Apache顶级的开源项目,在此发表感叹国货之光。 阅读详情

前言

微信搜【Java3y】关注这个有梦想的男人,点赞关注是对我最大的支持!

文本已收录至我的GitHub:https://github.com/ZhongFuCheng3y/3y,有300多篇原创文章,最近在连载面试和项目系列!

今天想跟大家一起入门一下kylin(麒麟)。

由于工作需要,前段时间对kylin简单入了个门,现在来写写笔记(我的文字或许能帮助到你入门kylin,至少看完这篇应该能知道kylin是干什么的)。

不多BB,开始吧

kylin介绍

kylin是我们国人主导并贡献到Apache基金会的开源项目,所以我们会有中文文档学习:

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

从官方我们可以看到对kylin的介绍:Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区,它能在亚秒内查询巨大的表。

看到这个介绍,只能用两个字来形容kylin:牛逼🐂。那牛逼在哪呢?下面再说

第一眼看过去,可能有的同学不知道OLAP是什么东西,我下面来简单解释一下吧。(Hadoop/Spark/SQL/大数据这些词天天能看见,即便不懂它的原理,你都知道这些东西是有什么用,是用来干嘛的,对吧?)

看到OLAP就不得不提它的兄弟OLTP,我们简单来看看他们的全称和翻译的中文是什么:

  • OLTP:On-Line Transaction Processing(联机事务处理)
  • OLAP:On-Line Analytical Processing(联机分析处理)

中文的翻译我们怕是看不懂的了,但我们可以发现他俩的区别一个是「事务」,一个是「分析」

从应用层面看,我们可以简单地认为:OLTP主要用于业务系统,对事务的要求比较高,例如下单/交易(银行转账等业务)。OLAP主要用于数据仓库系统,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

我再画张思维导图图来给大家看一下,基本就懂了:

看到这里,你应该对OLAP有个基本的了解了。那再回到上面那句话:多维分析(OLAP)能力以支持超大规模数据,你第一反应会想到什么?

三歪第一反应想到的就是Hive(Hive底层是HDFS:支持超大规模的数据)。

那既然说到Hive了,你会发现kylin前半段话,Hive好像几乎都可以支持,但除了最后一句「它能在亚秒内查询巨大的表」。

没错,到这里就可以知道kylin的用途了:它可以在亚秒内查询巨大的表,来完成数据分析和决策

每次跑Hive我们可能都得跑几分钟(像我SQL写得烂的,跑半小时也是经常有的事),我们从业务上就希望用来分析的数据可以跑得更快,支持这种需求的kylin就火🔥起来了。

我以Hive来引申kylin,除了kylin就没其他选择了吗?那显然不是的。

当年我刚进公司的时候,吐槽Hive跑得太慢了,隔壁的小哥就告诉我:你用presto啊,我们大数据平台都支持的。

OLAP所提供的工具框架还是很多的,下面我们来简单认识一下吧

众所周知,执行Hive实际上是跑Map-Reduce任务去HDFS拿数据。执行的过程涉及到计算和存储。

有的人觉得Hive跑Map-Reduce计算这个过程太慢了,所以就不用Map-Reduce,用别的计算引擎,比如用MPP架构来跑,但存储没变...

有的人觉得,存储在HDFS去拿数据太慢了,改个存储的地方,不从HDFS拿...

有的人觉得,这啥破玩意,计算和存储我都改了,用我的框架一站式给你解决掉...

有的人觉得,Hadoop生态还是可以的,我先聚合一把,你查的时候直接拿聚合后的数据,也是很快的...

由于每个公司的业务场景和背景不一样,每个OLAP框架的长处也不一样,所以现在有如此多的OLAP技术在发光发热...

Kylin入门

从前面我们已经知道为什么会出现如此多的OLAP的技术了,从本质上来说就是我们希望分析的数据可以让我们查得更快,而kylin是这些技术其中的一员。

从上图也可以看到kylin是完全依赖Hadoop生态的,那kylin是怎么实现提速的呢?答案就是:预聚合

假设我们从MySQL检索日期大于2020-10-20的所有数据,只要我们在日期列加上索引,可以很快就能查出相关的数据。

但如果我们从MySQL检索日期大于2020-10-20的所有数据且每个用户在这段时间内消费了多少钱且xxxx,只要数据量大,不论你怎么建索引,查询的速度就不尽人意了。

那如果我按天的维度先做好对每个用户的统计,写到一张表中,等到用户按日期检索的时候是不是就很快了(因为我已经按天聚合了一次数据,这张表比起原来的原始表数量会大大减少)

kylin就是用预聚合这种思路来提高查询的速度,使它可以在亚秒内实现查询响应。

那我们使用kylin的步骤是什么?官方已经帮我们解答了:

  1. 定义数据集上的一个星形或雪花形模型
  2. 在定义的数据表上构建 cube
  3. 使用标准 SQL 通过 ODBC、 JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果

上面几个步骤,可能你不太了解的几个词有以下 星形模型、雪花模型、cube,下面我来简单解释一下:

在数据仓库领域上,我们的主表叫做事实表,事实表外键依赖的表叫做维度表。

「星形模型」:所有的维度表都直连到事实表。(上图)

「雪花形模型」:当有一个或多个维度表没有直接连接到事实表上,而需要通过其他维表连接到事实表(下图)

在kylin里,分析数据的角度叫做「维度」,被分析的指标叫做「度量」

好了,我们再来看看cube是什么意思吧:

一个多维数据集称为一个OLAP Cube:上面的几张二维表我们可以形成一个数据立方体,这个数据立方体就是Cube

一个Cube可以由不同的角度去看,可以看似这多个角度都是从一个完整的Cube拆分出来的,例如:

结合上面所说的:Cube实际上就是从数据集中通过不同的维度构建出来的一个立方体(虽然图上的都是三维,但你构建的Cube可以远超三维)

kylin就是在Cube这个立方体来获取数据的,从官方的说法也很明确,可以通过JDBC/RESTful的方式来获取数据。

那kylin是将聚合的数据存储在哪的呢(肯定是有存储的地方的嘛)?在HBase上。如果还没学过HBase的同学,可以先看看我以往的文章:HBase入门

使用kylin步骤:

  • 首先你得有数据(一般来自 Hive/ Kafka),在 Kylin上定义对应的数据模型(结构)
  • 通过 kylin系统配置需要聚合以及统计的字段(这块就是上面所提到的维度和度量),然后构建出 Cube(这块就是 kylin的预聚合,把需要统计的维度都定义好,提前计算)
  • kylin会把数据存放在 HBase上,你可以通过 JDBC/ RESTful的方式来查询数据

使用kylin

在官网上也列出比较常见的QA,大家可以看看:http://kylin.apache.org/cn/docs/gettingstarted/faq.html

虽然kylin能支持多维度的聚合,但我们在建Cube一般要对Cube进行剪枝(即减少Cuboid的生成)

假设我们有10 个维度,那么没有经过任何优化的Cube就会存在2的十次方 =1000+个Cuboid。

Cube 的最大物理维度数量 (不包括衍生维度) 是 63,但是不推荐使用大于 30 个维度的 Cube,会引起维度灾难。

常用的剪枝方式会用聚合组(Aggregation group)配置来实现,而在聚合组中,Mandatory(强制维度)又是用得比较多的。

比如说,本来我有A、B、C三个维度,如果我不做任何优化,我的组合应该会有7个,分别是(A)(B)(C)(AB)(ABC)(AC)(BC),如果我指定A维度为强制维度,那最后的组合就只有(A)(AB)(ABC)(AC)。强制索引指的就是:指定的字段一定会被查询条件中

除了强制维度(Mandatory),还有层级维度(Hierarchy)和联合维度(Joint)帮助我们剪枝(即减少Cuboid的生成),一般强制维度和联合维度用得比较多。


我们去查kylin数据的时候,是已经被聚合过存放在HBase的,所以查询起来是相当快的,但是构建Cube这个过程其实是挺慢的(十几分钟到半小时都是正常的)。

这就会带来延迟(Cube需要时间构建,同时也不可能秒级去请求构建一次Cube)那这能忍受吗?这意味着最新的数据得等Cube任务调度到了且Cube构建完成才能查到数据

画外音:构建Cube一般都是定时任务的方式请求kylin的api进行构建的。

Kylin 没有内置的调度程度。您可以通过 REST API 从外部调度程度服务中触发 Cube 的定时构建,如 Linux 的命令 crontab、Apache Airflow 等。

但在新的kylin版本中已经支持realtime_olap了,kylin存储了实时的数据再加上HBase的数据merge后返回就实现了realtime

最后

这篇文章对kylin做了个简单的入门,细节还是得看官网(有中文,比较好读,文档也做得挺好的)。后面细节如果有必要我再来补充就好了(:

参考资料:

Kylin基本介绍 Kylin 1、kylin基本介绍 Apache Kylin 是一个开源的分布式存储引擎,最初由 eBay 开发贡献至开源 社区。它提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持大规 模数据,能够处理 TB 乃至 PB 级别的分析任务,能够在亚秒级查询巨大的 Hive 表,并支持高并发。 1.1、为什么要使用kylin 自Hadoop 诞生以来,大数据的存储和批处理问题均得到了妥善解决,而如何高速地分析数据也就成为了下一个挑战。 于是各式各样的“SQL on Hadoop”技术 阅读详情

相关推荐

OLAP引擎——Kylin介绍

最近一直在学习和使用kylin,分享一下学习的收获以及对kylin的理解~

Hello World 4万+

Kylin的介绍、使用和原理架构(Kylin3.0和Kylin4.0,Cube,去重原理,性能优化,MDX For Kylin,BI工具集成)

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。在Apache Kylin的现有实现中,Cube的每个Segment都会创建独立的字典,这种方式会导致相同数据在不同Segment字典中被映射成不同的值,这会导致最终的去重结果出错。

迷雾总会解 5396

Kylin(麒麟)安装及简单使用

前置准备 Zookeeper单机环境和集群环境搭建视频+图文教程 Hadoop单机伪分布式-视频教程 Hadoop完全分布式集群环境搭建-视频教程 HA(高可用)-Hadoop集群环境搭建视频+图文教程 Linux下Hive的安装 HBase单机伪分布式集群环境搭建-视频教程 HA-HBase集群环境搭建-视频教程 一、概述 Apache Kylin™是一个开源的、分布式的分析引擎,提供 Ha...

广彐水厂 2726

Kylin (一) ---------- 概述

kylin 概述

在森林里麋了鹿 1941

【麒麟部署】麒麟Kylin_x86_hygon关于MySQL数据库安装保姆级教程

sudo cp -rp /var/lib/mysql /data/database #复制数据到新建目录,注意会自动在database中建mysql目录。sudo chown -R mysql:mysql /data/database/mysql 设置权限,权限不对会导致服务启动失败。chown -R mysql:mysql /var/lib/mysql/ 设置权限,权限不对会导致服务启动失败。cat /var/log/mysql/mysqld.log | grep password 查看初始密码。

qq_20410657的博客 2621

银河麒麟4.0Kylin桌面版安装Java环境

银河麒麟4.0桌面版Java环境部署

liqi939597的博客 5419

兆芯国产电脑如何安装Windows+麒麟kylin双系统

兆芯国产电脑如何安装Windows+麒麟kylin双系统

weixin_66313542的博客 4万+

在统信UOS/麒麟Kylin OS上使用WeekToDo

常规设置:调整应用的一般设置,包括通知和显示等。行为习惯设置:根据个人习惯调整应用的行为。通知设置:配置任务完成和提醒的通知方式。数据导入导出:支持任务数据的导入和导出,方便备份或迁移。网页方式:如果不想下载客户端,您还可以选择使用网页版本进行任务管理。

1220

麒麟操作系统(Kylin)入门—安装系统

选中“空闲”所在行,选择“+”即可创建硬盘分区: 在创建分区时,“新分区的类型”选择“主分区”,“新分区的位置” 默认为“剩余空间头部”。首先创建boot分区,/boot 必须是主分区中的第一个分区,用于选 择“etx4”,挂载点选择“/boot”,boot分区大小推荐 1GiB到 2GiB 之间,不可小于500MiB。创建根分区,用于选择“etx4”,挂载点为“/”,“/”分区大小不 可小于15GiB,华为机器要求不小于25GiB。

qq_29562459的博客 3万+

大数据Kylin(一):基础概念和Kylin简介

对于Hive中的维度表和事实表,根据我们指定的维度列来构建cube,cube是所有维度的组合,任一维度的组合称为cuboid,即:cube中包含所有的cuboid。正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的 ETL、以及后期的维护都要复杂一些。MOLAP (Multidimension OLAP): MOLAP支持数据的多维视图,采用多维数据组存储数据,它把维映射到多维数组的下标或下标的范围,而事实数据存储在数组单元中,从而实现了多维视图到数组的映射,形成了立方体的结构。

Lansonli(蓝深李)的博客 2137

AutoSAR RTE调度机制揭秘:从定时器事件到Runnable执行的完整流程

本文深入解析了AutoSAR RTE(运行时环境)的核心调度机制,详细阐述了从定时器事件触发到Runnable(可运行实体)执行的完整流程。通过剖析Rte_Start()函数、OS任务与警报的交互,以及事件驱动循环,揭示了RTE如何作为幕后指挥家,高效、可靠地协调软件组件间的周期性任务执行,是打通AutoSAR应用开发的关键。

weixin_29169899的博客 227

如何安装ubuntu kylin(优麒麟)?

2021-01-08-如何安装ubuntu kylin? 2020-01-06-Install-UbuntuKylin,开始。 2021-01-08-如何安装ubuntu kylin?结束。 写在前面 刚接触Linux时,我也一样喜欢折腾各种Linux发行版,使用Ubuntu,xubuntu,deeplin,Fedora,centOS,Debian,tinycore,kali…大多数都是Debian"家族"和RedHat"家族",只是Arch、gentoo没敢用。一开始的时候觉得使用别人做好的中文环境是一

自学之路 6285

MavLink协议入门

MAVLink是一个非常轻量化的开源的消息协议,用于无人机之间的通信以及无人机机载设备之间的通信。

ffffffeiyu的博客 2474

优麒麟(Ubuntu Kylin) 安装向日葵远程工具/ToDesk

优麒麟(Ubuntu Kylin) 安装向日葵远程工具、ToDesk

阿干tkl的博客 2399

保姆级教程:Synology NAS共享文件夹从创建到权限设置的完整流程

本文提供了一份详尽的Synology NAS共享文件夹创建与权限设置指南。重点讲解了如何将NAS接入企业AD域,并利用域管理员账户进行集中身份验证和权限管理。文章从基础概念、域环境配置、文件夹创建、精细化权限分配到客户端访问与维护,完整覆盖了构建安全高效企业级文件共享空间的全流程,旨在帮助管理员实现便捷的团队协作与数据安全管理。

u9v0w的博客 554

2026年职业院校技能大赛中职移动应用与开发—数字生活APP原型设计参考答案(含素材)

本模块以产品原型为目标,考查参赛选手熟练收集、分析和归纳客户需求,清晰梳理业务流程,熟练使用UI设计软件进行产品UI/UE设计,掌握正确的UI配色方案,设计出符合业务逻辑的人体工学移动App 原型优秀作品。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 568

麒麟Kylin

开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(MOLAP)能力以支持超大规模数据,能在亚秒内查询巨大的Hive表; Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。 MR HiveM(多维)OLAP连接分析处理的引擎Hive--->Kylin--->Hbase 1....

weixin_30713953的博客 783

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 347

在银河麒麟Kylin V11部署KingbaseES初体验

本文详细记录了在银河麒麟Kylin V11操作系统上部署人大金仓KingbaseES数据库的全过程。首先介绍了Kylin V11的下载安装步骤,包括镜像获取、系统配置和初始化设置。随后重点讲解了KingbaseES的安装前准备、命令行安装方法及安装后验证。整个过程涉及系统用户创建、目录权限设置、安装包校验等关键环节,并提供了详细的命令行操作截图。通过initdb和sys_ctl命令完成了数据库初始化和服务启动,最终成功部署了KingbaseES V9数据库环境。文章为国产操作系统与数据库的部署实践提供了详细

欢迎来到我的学习笔记薄 1938

计算机网络基础:认识网络硬件与传输介质

计算机网络基础:认识网络硬件与传输介质,在计算机网络的庞大体系中,网络硬件与传输介质犹如坚实的骨架与脉络,支撑并承载着信息的流动。从家庭中的小型网络,到企业复杂的办公网络,再到覆盖全球的互联网,各类网络硬件设备各司其职,不同的传输介质发挥着独特的传输作用。它们相互协作,使得数据能够在不同设备之间快速、准确地传输,为人们的日常沟通、工作办公、娱乐休闲等活动提供了基础保障。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

什么是 SAP PCE?

SAP Private Cloud Edition 是一种基于云计算的部署模式,它结合了公有云的灵活性和私有云的安全性,为企业提供了量身定制的云服务。在 PCE 环境中,SAP 托管和维护客户的应用系统(如 SAP S/4HANA、SAP SuccessFactors 或 SAP BW/4HANA),同时客户拥有更高的定制化权限。专属环境:每个客户在云中拥有独立的资源,这保障了更高的安全性和性能。全面托管:SAP 提供基础架构、系统管理和更新服务,降低了客户的运维成本。灵活扩展。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2246

【学习笔记】Kylin-Desktop-V10-SP1 麒麟系统知识——安装麒麟系统

分享麒麟Kylin-Desktop-V10-SP1系统的详细安装步骤(包含麒麟系统的版本选择、下载麒麟系统、制作U盘启动盘、和通过U盘启动盘安装麒麟系统的详细步骤)

qq_33216613的博客 7288

微信小程序 - 最新详细实现“全局实时监听页面发生跳转“ 当页面跳转后立即捕捉并触发某个操作或调用处理函数,小程序整个项目无时无刻只要路由发生变化改变了就能监听,时刻检测页面URL变化(获取路由数据)

微信小程序,vue2,vue3,监听路由,如何监听路由发生变化,如何watch监听路由,怎么全局监听页面发生变化,实现当页面路由发生变化时执行一个函数,当路由变化时执行一些操作执行一段代码,怎么监听路由变化时触发一个函数,监听页面变化,页面间的跳转如何监听,页面跳转时怎么拿到路由及参数,页面路由变化时拿到参数和url,使用watch监听路由变化,页面跳转后怎么触发事件,怎么监听页面跳转,监听页面跳转并拿到路由url路径,小程序怎么全局定义一个专门监听路由的函数,小程序怎么无时无刻实时监听路由页面跳转,监听当

🏆 前端领域优质创作者 4475

VMware虚拟机中安装Kylin V10 银河麒麟操作系统

随着信息技术的飞速发展,自主可控的操作系统越来越受到重视。本文将介绍Kylin银河麒麟操作系统(简称银河麒麟或KylinOS)以及VMware虚拟机,并详细阐述如何在VMware虚拟机中安装Kylin银河麒麟操作系统。Kylin银河麒麟操作系统,作为中国自主研发的操作系统,旨在满足国家信息安全和自主可控的迫切需求。它起源于“核高基”国家重大专项,经过多年技术积累与市场应用,已成为国内领先的自主操作系统品牌。

2402_83721309的博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

麒麟Kylin系统适配gStore图数据库系统

博客记录了gStore在麒麟系统上的适配步骤以及遇到的一些问题,希望能帮助到大家,此外还介绍了在天津超算的机器上适配的一些情况,欢迎大家翻阅!

qq_40754884的博客 1804

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

银河麒麟(kylin)V10桌面版

使用xshell连接提示,服务器发送了一个意外的数据包。received: 3,expected: 20

weixin_45548465的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 淦!为什么到处都是广告!
下一篇: 淘宝客?CPS技术是怎么实现的?
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值