【数据仓库】即席查询

news2024/11/25 14:57:18

文章目录

    • 定义
    • 特点
    • OLTP、OLAP、即席查询(ad hoc query)区别与联系
    • 相关框架
    • Kylin
    • 来源

定义

即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。

特点

即席查询 的特点: 即席查询 与 固化查询 最大的不同是,普通的 固化查询 是定制开发的(即查询语句是预先写好的,不会临时发生变化),而即席查询是由用户自定义查询条件的。随时可以更改。

对于 即席查询 和 OLAP 可以参考下图的关系图:
在这里插入图片描述

OLTP、OLAP、即席查询(ad hoc query)区别与联系

对于目前来讲,对数据的处理主要集中在两个方面,一种是联机事务处理 OLTP(on-line transaction processing),另一种是联机分析处理 OLAP(On-Line Analytical Processing)。

OLTP:是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,典型的是银行 ATM 存取款,金融证券方面的实时更新等,这些操作都比较简单,主要是对数据库中的数据进行 DML 操作,操作主体一般是产品的用户,并且 OLTP 事务性非常高,一般都是高可用的在线系统,如上述的银行金融方面。

OLAP :有的时候也叫 DSS 决策支持系统,也就类似于我们说的数据仓库,它使分析人员能够迅速、一致、交互地从数据的各个方面来观察信息,以达到深入理解数据的目的。通过分析 DW 中的数据来得出一些结论性的东西(比如报表),从各方面观察信息,也就是从不同的维度分析数据(站在维度的角度看待事实),因此 OLAP 也称多维分析。

两者的对比如下图所示:

属性对比OLTP (例如mysql)OLAP (例如hive)
操作对象数据库数据仓库
读特性每次查询只返回少量记录对大量记录进行汇总
写特性随机、低延时写入用户的输入批量导入大量的数据
数据时效当前最新的数据当前历史的聚集的数据
操作粒度记录级多表join分析
使用场景用户,Java EE项目数据分析师,为企业决策提供支持
具体工作内容简单的事务复杂的查询
时间要求具有实时性分离线数仓和实时数仓
数据量GBTB到PB
数据操作支持DDL,DML一般不支持更新和删除
主要功能查询或改变现状报表,统计预测

然而对于 即席查询 而言,一般情况下它是与 OLAP 做对比的,这里说明一下在数仓中我们一般都是对数据进行一个批处理(基本上对前一天数据处理),并且是针对固定的数据有一个明确的分析指标的。例如,下图是一张订单表的数据:

订单ID下单地区下单品类下单时间下单金额
1001华北电子12月456
1002华东食品11月489
1003西南居家2月491
1004东北电子4月659
1005西北宠物11月369
1006华北食品2月159

何为一个明确的分析指标?按照上述所说的,从维度的角度看待事实(事实指的是度量值,在这张表中为金额),我们可以按照7个维度来度量金额,也即是下表所列出的内容。

维度度量值分析指标
品类金额
时间金额
地区,品类金额
地区,时间金额什么地区,什么时间销售了多少金额
品类,时间金额
地区,品类,时间金额什么地区,什么品类,什么时间销售了所少金额

通过上面表的展示,也就是从不同的维度来围绕度量值分析

对于数仓的这种分析情况,我们一般都是有固定的套路的,比如说

select area, time from table group by area, time;

这种查询也称作为 固化查询

指对一些固化下来的取数、看数的需求,最终通过数据产品的形式提供给用户,从而提高数据分析和运营的效率,这类需求的 SQL 基本上有固定的模式

然而不幸的事情发生了。平时的工作中,上述的固化查询你搞的好好的,这时候老板突然来了一个需求,但是范围并不属于上述的那种有固定模式的 SQL ,我们把这类需求称为 即席查询 (Ad hoc queries)

对于 即席查询 和 固化查询 的总结:

即席查询 与 固化查询 从SQL语句上来说,并没有本质的差别。它们之间的差别在于,固化查询在系统设计和实施时是已知的,所有的查询可以在系统实施的过程中,通过建立索引、分区等技术来优化这些查询,使得这些查询的效率很高。而 即席查询 是用户临时生产的需求,无法人工预先地优化这些查询,这类查询一般需要数据库内部实时地自动优化,所以 即席查询 也是评估数据仓库的一个重要指标。在一个数据仓库系统中,即席查询使用的越多,对数据仓库的要求就越高,对数据模型的对称性的要求也越高。

最后为什么不用hive做即席查询?
即席查询目的很明确,就是要快,所提即所得,即提出来这个需求立马要看到结果。数仓传统的hive做即席查询那肯定是不行的,MR跑完数据估计天都黑了。

相关框架

1、Druid:是一个实时处理时序数据的 OLAP 数据库,因为它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。
2、Kylin:核心是 Cube ,Cube是一种预计算技术,基本思路是预先对数据进行多维索引,分别对不同的维度进行组合,形成可能出现的查询 Cube ,当然,针对无意义的维度组合可以进行剪枝操作。使得数据量变小,查询时只扫描索引而不访问原始数据从而提速。
3、Presto:它没有使用 Mapreduce,大部分场景下比 Hive 快一个数量级,其中的关键是所有的处理都在内存中完成。支持多个数据源。同时针对可以将不同的数据源进行 join 操作。
4、Impala:基于内存计算,速度快,支持的数据源没有 Presto 多。
5、SparkSQL:是 Spark 用来处理结构化数据的一个模块,它提供一个抽象的数据集 DataFrame 和 DataSet,并且是分布式 SQL 的查询引擎。它还可以实现 Hive on Spark ,使用 Spark 引擎读取 Hive 的元数据信息,从而操作 Hive 里的数据。
6、ClickHouse:ClickHouse 不依赖任何第三方组件,采用的是列式存储。支持多个存储的引擎,用户可以根据不同的表来选择不同的存储引擎。同时底层还实现了向量化引擎。
7、Doris :不依赖任何第三方组件,也是一个列存的数据库。使用 MySQL 协议,兼容 MySQL 语法,使用 MySQL 语法可对 Doris 数据库进行查询。新版本也实现了向量化引擎。

Kylin

即席查询-Kylin

来源

百度百科-即席查询
OLTP、OLAP、即席查询(ad hoc query)区别与联系

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CompletableFuture的简单使用

原文地址:CompletableFuture原理与实践-外卖商家端API的异步化 CompletableFuture的介绍: CompletableFuture是Java 8中引入的一种基于Future的异步编程机制。与传统的Future相比,CompletableFuture提供了更多的操作链支持,并且…

skywalking 9.x入门(二) skywalking全链路tid追踪

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 背景 继上次我们对skywalking整体架构作了一些了解,然后就是学习了spring boot项目如何基于agent接入skywalking 这次我们要实现的是spring boot项目…

USB | 查询usb设备占用带宽

USB | 查询usb设备占用带宽 请教一下windows下有什么工具能查询usb设备占用带宽吗?Linux上有usbtop,windows有类似工具吗 DeviceMonitoringStudio设备监控工具的使用

好用的自动化框架-Allure

概述 报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。 allure与pytest的结合使用可以呈现完…

华为OD机试真题B卷 Java 实现【求小球落地5次后所经历的路程和第5次反弹的高度】,附详细解题思路

一、题目描述 假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高? 数据范围:输入的小球初始高度满足 1 \le n \le 1000 \1≤n≤1000 ,且保证是一…

Mysql存储过程的递归调用及数据量过大group_concat()显示不全的问题

业务场景 使用mysql group_concat()函数,对查询的数据进行字符串连接操作。 由于查询的结果较多,连接后的结果很长导致不能完全显示。 第一种解决方案(不需要重启Mysql, 如果mysql重启后设置会失效,需重新设置) 执行…

代码随想录-哈希表

学习《代码随想录》 基础知识哈希函数哈希碰撞三种哈希结构 有效的字母异位词两个数组的交集两数之和暴力法Map 四数相加三数之和哈希解法双指针法 四数之和 基础知识 哈希表是一种根据关键码的值直接访问数据的数据结构。一般用来快速判断一个元素是否出现在集合中。 哈希函…

【AUTOSAR】Com通讯栈配置说明(二)---- CanIf模块

CanIf模块 CanIfCtrlDrvCfgs CanIfCtrlDrvBusOffNotification:busoff 发生后的callback函数 CanIfCtrlDrvWakeupNotification: wakeup 发生后的callback函数 CanIfCtrlId: 逻辑Canif id CanIfWakeupSupport:是否支持唤醒 CanIfMaxDlc:最大报文长度 CanIfCtrlCanCtrlRef: 关联…

我们是如何管理蓝精灵协会 PFP 集合的程序性生成的?

自从 Cryptopunks 和 Bored Apes 发布以来,大多数蓝筹 NFT 系列都在其创意基准中使用了相同的反复出现的概念:一幅插图肖像(也称为 PFP,用于个人资料图片或证明图片)通过使用随机分布的定制层而被改变成几千种略有不同…

【回顾经典AI神作】理解和实现ResNeXt(比ResNet最先进的图像分类模型)

与 ResNet 相比好在哪里? 相同的参数个数,结果更好:一个 101 层的 ResNeXt 网络,和 200 层的 ResNet 准确度差不多,但是计算量只有后者的一半 论文参考:https://arxiv.org/pdf/1611.05431.pdf 以下三篇是介绍和改进残差网络的论文: 用于图像识别的深度残差学习(链接…

ELECTRA模型简单介绍

目录 一、整体概要 二、生成器 三、判别器 四、模型训练 五、其它改进 一、整体概要 ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)采用了一种“生成器——判别器”结构,其与生成式对抗网络…

报表服务器Stimulsoft Server v2023.2亮点:支持PostgreSQL、选项卡

Stimulsoft Server(原Stimulsoft Reports.Server)是一款完善的商业智能解决方案,采用C/S架构,提供报告和分析功能。前端用来展现数据,后台用来处理和存储数据。Stimulsoft Server(原Stimulsoft Reports.Ser…

IDEA性能优化设置(解决卡顿问题)

在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢? 原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),这就…

成都远石无人机航测服务的具体内容

成都远石拥有多年西南地区无人机航测作业经验,现具备DEM、DSM、DOM、三维实景模型及机载激光雷达全套数据成果的生产能力,致力于为各个行业提供准确的数据支持。现在,小编就来给大家介绍成都远石无人机航测服务的具体内容。 1、数字高程模型…

SocketTools Library Edition C++ Crack

SocketTools 库版 SocketTools Library Edition 是一套 Windows 库,可简化 Internet 应用程序开发。它提供您入门所需的一切,包括文档和示例,以及免费的技术支持来回答您遇到的任何开发问题。SocketTools Library Edition 包括本机 Windows 库…

Java集成influxDB 默认UTC时区问题

dd 我用的influxDB 1.8版本高版本我不清楚,因为1.x版本便于写sq语法。 influxDB时序库默认使用 UTC时区,并且无法通过配置来修改这个时区,很多文档说在查询数据的时候加上 tz(Asia/Shanghai)。 而这个在Windows环境下的influxdb会报错…

【youcans动手学模型】AlexNet模型CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】AlexNet模型CIFAR10图像分类 1. AlexNet 卷积神经网络模型1.1 论文简介1.2 AlexNet 的主要贡献1.3 AlexNet 网络1.4 模型的运行结果 2. 在 PyTorch 中定义 AlexNet 模型类2.1 按…

Qt编写视频监控系统77-Onvif组件支持非正常时间的设备

一、前言 在经历了大量的现场设备测试,至少几十种厂家、几百种设备,遇见过奇奇怪怪的问题,一个个想方设法解决,发现有个问题是在下发鉴权的时候,需要带上设备的时间,而不是发送端的时间,如果带…

LeetCode 1110. 删点成林

【LetMeFly】1110.删点成林 力扣题目链接:https://leetcode.cn/problems/delete-nodes-and-return-forest/ 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去&#xff0c…

MySQL 系统信息函数

文章目录 系统信息函数1. 查看当前 MySQL 数据库版本号2. 查看当前使用的数据库3. 查看当前服务器连接次数 系统信息函数 当我们需要知道当前 MySQL 数据库的一些基本信息和使用情况的时候,可以使用系统信息函数来获取相关信息,以随时掌握数据库的使用情…