连入门都不算的Kylin相关概念畅谈!

本文图片来自于尚硅谷。

即席查询?即时查询?

作者学习过程中已经连续看到过两次即席查询了,不禁冒出个想法:是不是真的有“即席查询”的概念?我还以为是即时查询,打错了呢……

即席查询概念

确实存在“即席查询”(Ad-hoc Query)的概念。这个术语通常用于描述那些未预先定义或计划的查询,即用户根据当前的需求临时创建和执行的查询。这种类型的查询用于探索性分析或数据挖掘,允许用户灵活地探查数据,寻找信息或见解,而无需依赖预先设计好的报告或仪表板。

即席查询的特点

  • 灵活性:即席查询提供了极高的灵活性,允许用户根据当前的分析需求构造查询。这对于数据分析师和业务用户尤其有用,他们可能需要根据最新的数据或问题快速调整查询
  • 探索性:即席查询通常用于探索性数据分析,帮助用户理解数据中可能隐藏的模式、趋势或异常。
  • 即时性:虽然“即席”通常强调的是查询的非预定性和灵活性,但在很多情况下,即席查询也需要能够快速执行,以支持快速决策制定过程

即席查询与即时查询的区别

  • 即席查询(Ad-hoc Query):强调查询的非预定性、灵活性和探索性。这种查询不是事先定义好的,而是根据当前需要临时创建的。
  • 即时查询(Real-time Query):通常指的是对实时数据进行查询的能力,强调查询执行的速度和数据的实时性。即时查询使得用户能够获得几乎实时更新的数据反馈,这对于需要快速响应的应用场景非常关键。

在许多现代数据分析和商业智能工具中,即席查询能力被视为一项重要功能,它为用户提供了直接、灵活且强大的数据探索和分析手段。这种能力特别适合于动态的商业环境,其中快速获取、分析数据并根据数据做出决策变得越来越重要。


即席查询举例(以Kylin为例)

Apache Kylin 是一个开源的分布式分析引擎,提供了SQL接口和多维分析(OLAP)能力,使得在大数据环境下进行即席查询变得非常高效。Kylin通过预先计算大数据集上的聚合数据并存储在HBase等NoSQL数据库中,使得即席查询可以在秒级别返回结果,即使是针对非常大的数据集。【具体下文会有所讲解】

即席查询的例子

假设你是一家零售公司的数据分析师,你想要分析2019年1月1日至2019年12月31日之间,各个产品类别的总销售额。在Kylin中,你可以通过编写一个SQL查询来实现这个需求,如下所示:

SELECT product_category, SUM(sales_amount)
FROM sales_data
WHERE sale_date BETWEEN '2019-01-01' AND '2019-12-31'
GROUP BY product_category
ORDER BY SUM(sales_amount) DESC;

这个查询的结构相当直接:

  • 选择字段product_category(产品类别)和SUM(sales_amount)(销售额的总和)。
  • 数据源FROM sales_data 指定了包含销售数据的表。
  • 筛选条件WHERE sale_date BETWEEN '2019-01-01' AND '2019-12-31' 限制了查询的时间范围。
  • 分组GROUP BY product_category 按产品类别分组,以便计算每个类别的总销售额。
  • 排序ORDER BY SUM(sales_amount) DESC 按销售额的总和降序排序结果。

为什么这是即席查询

这个查询是一个即席查询的例子,因为它是根据当前分析需求临时创建的,而不是预先定义好的报告或分析。这种查询使得用户可以灵活地探索数据,寻找特定时间段内各个产品类别的销售表现,而无需依赖固定的报告模板。

Kylin通过预计算和存储聚合数据,极大地加速了这类即席查询的执行速度。即使是在包含数十亿行数据的大型数据集上,Kylin也能够在几秒内返回查询结果,这使得数据分析师能够快速迭代查询,探索不同的数据视角和分析假设。

请注意,实际执行这个查询还需要你已经在Kylin中创建了相应的Cube,并且sales_data表、时间范围和字段名称需要根据你的实际数据模型进行调整。Kylin的强大之处在于它为即席查询提供了极佳的支持,特别是在需要快速响应的数据探索和分析场景中。


BI到底是什么!

商业智能(BI)是通过使用各种技术工具和方法,将数据转换为有意义的信息,进而帮助组织做出基于数据的决策的过程。在当今这个数据驱动的商业环境中,商业智能扮演了至关重要的角色。

以下是商业智能的几个关键组成部分,以及它们是如何帮助企业转化数据为知识的:

  1. 数据仓库(Data Warehousing):数据仓库是一个集中存储企业中来自不同源的数据的系统。它允许企业汇总、存储、管理,并通过结构化的方式查询大量数据。数据仓库是进行深入分析的基础,使企业能够从历史数据中提取出有价值的见解。它通过整合来自不同业务系统的数据(如销售、财务、人力资源等),为商业智能分析提供了一个统一的数据源。

  2. 联机分析处理(OLAP):OLAP是一种强大的分析工具,它支持快速、一致、交互式地访问多维数据的能力。它允许用户从多个角度对数据进行探查和分析,如进行时间序列分析、趋势分析以及细分市场分析等。OLAP通过提供多维视图来帮助决策者理解数据,发现数据之间的关系和模式。

  3. 数据挖掘(Data Mining):数据挖掘是一种分析技术,用于从大量的数据集中探索、发现模式和关系。它利用统计学、机器学习和人工智能技术来预测未来趋势和行为模式。通过数据挖掘,企业可以识别客户购买行为的模式、发现潜在的市场机会,或者预测销售趋势。

  4. 报表和可视化(Reporting and Visualization):将数据转化为知识的一个重要步骤是通过报表和可视化工具来呈现这些信息。这些工具使非技术用户能够理解复杂的数据分析结果,通过图表、图形和仪表板直观地展示数据。可视化帮助快速传达关键信息,支持决策者根据实时数据做出更明智的业务决策。

  5. 商业智能软件和平台(BI Software and Platforms):为了有效地实施上述各种技术和方法,企业通常会采用商业智能软件和平台。这些平台整合了数据仓库、OLAP、数据挖掘和可视化工具,提供了一个全面的解决方案,帮助企业分析和理解其数据。它们通常具有易于使用的界面,支持拖放功能,允许用户轻松创建和共享报表和仪表板。【真的用过的话就很有感触,原来帆软BI就是这样一种商业智能平台呀!】

商业智能的最终目标是帮助企业基于数据做出更加明智、有效的决策。通过实时分析大量数据,企业能够更好地了解市场动态、优化运营效率、提高客户满意度,从而在竞争激烈的市场中保持领先地位。


ROLAP(Relational)与MOLAP(Multidimensional)

OLAP(联机分析处理)是一种强大的技术,用于支持快速、多维的复杂查询,主要用于商业报告、分析、数据挖掘等。它主要分为两种类型:ROLAP(关系型OLAP)和MOLAP(多维OLAP)。让我们深入了解这两种形式及其主要差异。

ROLAP(关系型OLAP)

  • 基础技术:ROLAP基于关系型数据库。它直接在标准的关系数据库管理系统(RDBMS)上运行,使用标准的SQL查询来分析数据。ROLAP的设计使其能够高效处理非常大的数据集。

  • 数据存储数据以传统的表格形式存储,使用行和列的结构。这种存储方法便于理解和管理,但可能不如多维数据结构直观。

  • 性能ROLAP系统不需要预计算聚合数据。查询时,系统实时执行复杂的SQL查询以生成结果。这意味着ROLAP可以提供最新的数据视图,但对于特别大的数据集或复杂的分析,性能可能受到影响。

  • 适用场景:ROLAP特别适合于需要处理大量数据并执行复杂查询的场景,特别是当数据实时性非常重要时。它在处理稀疏数据集方面也非常有效,即数据不均匀分布的情况。【往往是即席查询】

MOLAP(多维OLAP)

  • 基础技术MOLAP基于多维数据模型,通常使用专门的多维数据库。这种模型允许数据以多维数组的形式存储,优化了数据检索。

  • 数据存储MOLAP使用多维立方体(cubes)来存储数据。每个立方体由多个维度组成,如时间、地区、产品等。这种结构使得进行多维分析变得非常直观和高效。

  • 性能MOLAP系统通过预计算并存储数据的汇总(聚合)信息来优化查询性能。这种预计算意味着查询响应非常快,尤其是对于标准报告和分析。但是,这也意味着立方体需要定期更新以反映最新数据。

  • 适用场景:MOLAP非常适合需要快速响应时间和高度汇总数据的分析任务。它在处理规则性较强、数据维度和层级明确的情况下表现最佳。【往往是预定义查询】

比较

  • 性能和灵活性:MOLAP在查询性能上通常优于ROLAP,尤其是在处理预定义的查询和报告时。然而,ROLAP在处理大量数据和复杂查询方面更加灵活,尤其是当查询变化多端时。

  • 数据实时性:ROLAP能够提供更加实时的数据视图,因为它直接在原始数据上运行查询,而不依赖于预计算。MOLAP则依赖于周期性的数据处理和更新,因此可能无法实时反映最新数据。

  • 数据模型和管理:MOLAP的多维数据模型对于用户来说更直观,但可能需要专门的工具和技能来设计和管理。而ROLAP利用现有的关系数据库,可能更容易集成到现有的IT基础设施中。

选择ROLAP还是MOLAP,或者两者的组合(称为HOLAP,混合型OLAP),主要取决于组织的具体需求,包括数据大小、查询的复杂性、性能要求、以及数据更新的频率等因素。


Kylin麒麟!

Kylin 主要是基于 MOLAP(多维OLAP)模型,使用预计算的多维数据立方体(Cube)来优化查询性能。这里的关键在于理解即席查询的需求以及如何通过预计算的数据立方体来满足这些需求,同时保持高性能和灵活性。

即席查询和预计算立方体

  • 即席查询:如上文所述,指的是没有预先定义的查询,允许用户根据需要随时创建和提交查询。这种查询方式为用户提供了极大的灵活性,因为它们可以根据当前的需求,随时探索数据和获取信息。

  • 预计算立方体为了支持快速响应即席查询,Kylin 预先计算并存储了大量的聚合数据。这些预计算的结果被组织在多维数据立方体中,立方体按照特定的维度(如时间、地区、产品等)来组织数据。当进行即席查询时,Kylin 能够快速从这些预计算的立方体中检索数据,而不需要从头开始对庞大的原始数据集进行全面扫描和计算

为什么适合 Cube

尽管即席查询听起来像是不需要预先定义查询,但在大数据环境下,直接在原始数据上执行复杂的即席查询通常会非常慢。Kylin 使用 Cube 的方法有几个优点:

  • 性能提升:通过预计算聚合数据,Kylin 能够显著提高查询性能,使得即使是在非常大的数据集上运行复杂的即席查询也能在秒级响应。

  • 减少资源消耗:避免了每次查询时都进行大规模的数据扫描和计算,从而减少了计算资源的消耗。

  • 支持复杂分析:预计算的数据立方体支持多维度的分析,使得用户可以从各种角度探索数据,发现数据之间的关系和模式。

特点总结

  • Kylin 通过将 MOLAP 的优势(如预计算的立方体)与即席查询的需求相结合,提供了一种高效的分析解决方案。这使得它特别适合需要快速响应大数据量即席查询的场景。

  • Kylin 的设计考虑了大数据环境下即席查询的性能挑战,通过智能的预计算和数据组织方式,优化了查询效率,同时保持了用户查询的灵活性。

因此,尽管即席查询本质上是动态和未预定义的,Kylin 通过预计算立方体的方法,成功地解决了在大规模数据集上进行快速、灵活分析的挑战。


作者思考总结

多维数据虽然更适合于预计算的查询,但是我们可以先将多维数据预计算,然后把这种高性能的数据格式应用到SQL等即席查询的场景中。根据其底层的数据格式还是Cube这样的多维数据,所以Kylin本质上属于MOLAP,但是它也把ROLAP的即席查询也结合并且优化了,它在很多场景下性能是比Hive/Spark性能效率高得多的。

Apache Kylin 通过其创新的设计,结合了 MOLAP 的高效数据处理优势和 ROLAP 提供的即席查询灵活性,实现了一个既能支持高性能数据分析又能适应灵活查询需求的解决方案。让我们来进一步解析这种结合是如何在实际应用中发挥作用的:

预计算多维数据与即席查询的结合

Kylin 预先计算并存储了多维数据立方体中的聚合数据,这些数据立方体根据特定的维度组织,如时间、地区、产品等。这种预计算提高了数据检索的速度,因为当进行即席查询时,系统可以直接从这些预先计算好的聚合数据中快速提取信息,而不需要重新进行耗时的计算。

这种方法有效地将 MOLAP 的高效数据访问能力应用到了 SQL 等即席查询场景中,即使这些查询没有预先定义。这样,Kylin 既保持了数据分析的灵活性,又显著提升了查询效率,特别是在面对大规模数据集时。

与 Hive/Spark 的性能比较

在很多场景下,Kylin 的确因其高效的数据处理能力而在性能上超过了 Hive 和 Spark。Hive 和 Spark 都是处理大规模数据集的强大工具,但它们在处理即席查询时通常需要扫描大量的原始数据,特别是当涉及到复杂的数据分析和多维度聚合时。这种方法在大数据环境下可能会导致较高的查询延迟。

  • Hive:作为一个数据仓库解决方案,Hive 更适用于那些结构化的批量数据处理,尤其是当数据模式相对固定且查询相对预定时。

  • Spark:虽然 Spark 是一个强大的通用数据处理框架,能够进行复杂的数据分析和机器学习任务,但其性能在即席查询场景下仍然受限于数据的读取和处理速度。

Kylin 通过预计算和优化存储的多维数据立方体,为即席查询提供了更快的响应时间,尤其是在多维分析和大规模数据集上。它的这种设计使得在数据分析和报告生成方面,尤其是需要快速响应和高度交互的业务智能(BI)场景中,Kylin 可以提供比 Hive 和 Spark 更高效的性能。

Kylin 通过其多维数据预计算和存储的方法,结合了 MOLAP 的高性能和 ROLAP 的查询灵活性,提供了一个既适应即席查询需求又能在大数据环境下保持高效性能的分析平台。这种能力使其在需要快速、高效访问和分析大规模数据集的场景下,成为比 Hive 或 Spark 更优的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/515368.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于java的电影院售票网站

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…

基于springboot的粮仓管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

vue快速入门(一)vue的导入方法

注释很详细&#xff0c;直接上代码 新增内容 下载js代码导入实例数据绑定显示 源码 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

《C++程序设计》阅读笔记【2-程序结构】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;《C程序设计》阅读笔记 本文对应的PDF源文件请关注微信公众号程序员刘同学&#xff0c;回复C程序设计获取下载链接。 1 程序结构1.1 外部存储类型1.2 静态存储类型1.2.1 静态全局变量1.2.…

设计模式之外观(门面)模式

概念&#xff1a;要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口&#xff0c;使得子系统更易使用。 外观模式注重“统一的对象”&#xff0c;即提供一个访问子系统的接口&#xff0c;只有通过该接口&#xff08;Facade&#xf…

TCP的十个重要的机制

注&#xff1a;TCP不是只有十个机制 TCP 可靠传输是tcp最为重要的核心&#xff08;初心&#xff09; 可靠传输&#xff0c;并不是发送方把数据能够100%的传输给接收方 而是退而求其次 让发送方发送出去数据之后&#xff0c;能够知道接收方是否收到数据。 一但发现对方没有…

IPSec VPN 高级应用

IPSec的隧道嵌套 公网上架设多层隧道&#xff0c;整合不同隧道的优点&#xff0c;弥补缺点 1、GRE over IPSec VPN 1&#xff09;特点 通过GRE隧道运行的路由协议、组播等功能 通过IPSec提供数据的机密性、完整性检查、源认证 IPSec是保护GRE上面的所有流量&#xff08;动…

MIT6.828实验windows10下环境配置

根据6.1810提供的方法安装环境 实验地址 微软文档 一、安装 Windows Terminal https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701 二、安装WSL2 参考源&#xff1a;tommickey的博客园 启动Windows 子系统 1、 手动开启 打开「控制面板」&#xff…

可以写网易云的了!

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 1枚程序媛&#xff0c;大专生&#xff0c;2年时间从1800到月入过万&#xff0c;工作5年买房。 分享成长心得。 259篇原创内容-gzh 后台回复“前端工具”可获取开发工具&#xff0c;持续更新中…

2024-HW --->SSRF

这不是马上准备就要护网了嘛&#xff0c;如火如荼的报名ing&#xff01;&#xff01;&#xff01;那么小编就来查缺补漏一下以前的web漏洞&#xff0c;也顺便去收录一波poc&#xff01;&#xff01;&#xff01;&#xff01; 今天讲的主人公呢就是SSRF&#xff0c;以前学的时候…

【leetcode C++】滑动窗口

1. LCR 008. 长度最小的子数组 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 题目…

如何自动申请免费的HTTPS证书?

在购买域名的时候我相信很多人都遇到了对于证书的问题&#xff0c;之前我也是使用阿里云的免费一年的证书&#xff0c;那时候感觉还好&#xff0c;一年更换一次&#xff0c;但是近期阿里云对于证书的过期时间直接砍到了三个月&#xff01;让我难以接受&#xff0c;所以我在想吧…

WPF中动画教程(DoubleAnimation的基本使用)

实现效果 今天以一个交互式小球的例子跟大家分享一下wpf动画中DoubleAnimation的基本使用。该小球会移动到我们鼠标左键或右键点击的地方。 该示例的实现效果如下所示&#xff1a; 页面设计 xaml如下所示&#xff1a; <Window x:Class"AnimationDemo.MainWindow&qu…

Harbor私有镜像仓库搭建

一、介绍 Docker容器应用的开发和运行路不开可靠的镜像管理&#xff0c;虽然Docker官方也提供了公共的镜像仓库&#xff0c;但是从安全和效率等方面考虑&#xff0c;部署我们私有环境的Registry也是非常必要的。 Harbor是由VMware公司开源的企业级的Docker Registry管理项目&a…

面试算法-139-盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。…

STM32单片机智能电表交流电压电流程序设计(电流 电压互感器TV1005M+TA1005M)

资料下载地址&#xff1a;STM32单片机智能电表交流电压电流程序设计(电流 电压互感器TV1005MTA1005M) 1、摘要 5、基于STM32F103单片机智能电表交流电压电流设计 本设计由STM32单片机核心板电路交流电压电流检测模块电路WIFI模块电路指示灯电路组成。 1、通过电压互感器TV100…

C++模板实参推断

模板实参推断 我们已经看到&#xff0c;对于函数模板&#xff0c;编译器利用调用中的函数实参来确定其模板参数。 从函数实参来确定模板实参的过程被称为模板实参推断。 也就是说&#xff0c;只有函数参数才配有模板实参推断&#xff0c;函数返回类型是不配有的 在模板实参…

DNS搭建

DNS搭建 一、DNS简介 1、概念 DNS&#xff08;Domain Name System&#xff09;是一种分布式的命名系统&#xff0c;用于将域名与其对应的IP地址相互映射。简单来说&#xff0c;DNS充当了互联网上的“电话簿”&#xff0c;帮助用户通过易于记忆的域名查找到相应的网络资源&am…

调用飞书获取用户Id接口成功,但是没有返回相应数据

原因&#xff1a; 该自建应用没有开放相应的数据权限。 解决办法&#xff1a; 在此处配置即可。