【数据仓库】即席查询

这篇具有很好参考价值的文章主要介绍了【数据仓库】即席查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义

即席查询(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项目 数据分析师,为企业决策提供支持
具体工作内容 简单的事务 复杂的查询
时间要求 具有实时性 分离线数仓和实时数仓
数据量 GB TB到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)区别与联系文章来源地址https://www.toymoban.com/news/detail-708447.html

到了这里,关于【数据仓库】即席查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库、数据中台、数据仓库、数据湖区别

            数据时代,各行业的企业都已经开始通过数据库来沉淀数据,但是真的论起数据库、数据仓库、数据中台,还是新出现的数据湖,它们的概念和区别,可能知道的人就比较少了,今天我们详细来比较了解一下。         事实上,很多人在看到数据仓库的第一眼

    2024年02月08日
    浏览(39)
  • 数据库和数据仓库的区别

    1.项目课程和技术课程的区别 ​ 项目课程:实现特殊的项目功能。 ​ 技术深度不够。 ​ 技术广度可以。 技术课程:trim()不会去掉全角空格。 ​ 技术深度够。 ​ 技术广度不够。 2.采集项目和数仓项目关系 ​ 采集项目和数仓项目就是企业中数据管理两个功能模块。 ​ 采

    2024年03月13日
    浏览(40)
  • 数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别

    随着互联网的普及,信息技术已经深入到各行各业,并逐步融入到企业的日常运营中。然而,当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的,很少进行大面积的改造或者升级,历史数据留存在业务系

    2024年02月08日
    浏览(41)
  • Elasticsearch的数据库与数据仓库整合

    Elasticsearch是一个开源的搜索和分析引擎,基于Lucene库,具有实时搜索、文本分析、数据聚合等功能。在大数据时代,Elasticsearch在数据库和数据仓库领域得到了广泛的应用。本文将从以下几个方面进行讨论: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模

    2024年02月21日
    浏览(38)
  • 数据库与数据仓库的区别及关系

    数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余

    2024年02月14日
    浏览(36)
  • 一文了解数据库,数据仓库,数据湖,数据集市,数据湖仓

    目录 一、定义 1. 数据库(Database) 2. 数据仓库(Data Warehouse) 3. 数据湖(Data Lake) 4. 数据集市(Data Mart) 5. 数据湖仓(Data Lakehouse) 二、相同、异同 2.1 相同点 2.2 不同点 三、常见的工具 数据库: 数据仓库: 数据湖: 数据集市: 数据湖仓: 当然,以下是关于数据库、数

    2024年01月17日
    浏览(43)
  • 数据仓库与数据库之间的区别与联系

    一、数据库与数据仓库的区别 1.1、区别 1.2、ACID内容 二、原子性(Atomicity) 三、持久性(Durability) 四、隔离性(Isolation) 1、锁机制 2、脏读、不可重复读和幻读 2、事务隔离级别 五、一致性(Consistency) 总结 数据库:主要用于事务处理,即OLTP(On-Line Transaction Processing)

    2024年02月05日
    浏览(39)
  • 8月《中国数据库行业分析报告》已发布,聚焦数据仓库、首发【全球数据仓库产业图谱】

    为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》, 持续传播数据技术知识、努力促进技术创新与行业生态发展 ,目前已更

    2024年02月10日
    浏览(56)
  • 一文了解数据库vs数据仓库vs数据湖

    大家好,我是KD,一名10年以上大数据架构研发经验从业者,目前主要从事云原生大数据方向设计,擅长云原生技术、数据架构、数据平台构建、大数据组件性能调优 以下是本文目录: 什么是数据库? 为什么会有数据仓库? 拆解几个OLAP核心概念 大数据技术架构演进过程 什

    2024年01月23日
    浏览(54)
  • 数据库原理-数据查询 单表查询【二】

    聚集函数: 统计元组个数 COUNT(*) 统计一列中值的个数 COUNT([DISTINCT|ALL]列名) 计算一列值的总和(此列必须为数值型) SUM([DISTINCT|[ALL]列名) 计算一列值的平均值(此列必须为数值型) AVG([DISTINCT|ALL]列名) 求一列中的最大值和最小值 MAX([DISTINCT|ALL]列名) MIN([DISTINCT|ALL]列名) 查询学

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包