iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据仓库中的OLTP与OLAP查询是怎样的
  • 669
分享到

数据仓库中的OLTP与OLAP查询是怎样的

2024-04-02 19:04:59 669人浏览 独家记忆
摘要

小编今天带大家了解数据仓库中的OLTP与OLAP查询是怎样的,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深

小编今天带大家了解数据仓库中的OLTP与OLAP查询是怎样的,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“数据仓库中的OLTP与OLAP查询是怎样的”的知识吧。

在业务数据处理的早期,对数据库的写操作通常对应于正在发生的商业交易-进行销售,与供应商下订单,支付员工的工资等。随着数据库扩展到不涉及的领域  涉及货币易手,但是交易一词仍然存在,是指构成逻辑单元的一组读写操作。 这些类型的查询称为事务处理系统查询(OLTP)。  为这些查询设计的系统通常是面向用户的,这意味着它们可能会看到大量的请求。 为了处理负载,应用程序通常仅在每个查询中触摸少量记录。  该应用程序使用某种密钥来请求记录,而存储引擎使用索引来查找所请求密钥的数据。 磁盘查找时间通常是这里的瓶颈。

但是,数据库也开始越来越多地用于数据分析,而这种数据分析具有非常不同的访问模式。  通常,分析查询需要扫描大量记录,仅读取每条记录的几列,并计算汇总统计信息(例如计数,总和或平均值),而不是将原始数据返回给用户。  例如,如果您的数据是销售交易表,则分析查询可能是:

  • 一月份,我们每家商店的总收入是多少?

  • 在最近的促销活动中,我们售出的iPhone比平时多了多少?

  • 哪个品牌的牛奶最常与家乐氏的玉米片一起购买?

这些查询通常由业务分析人员编写,并馈入有助于公司管理层做出更好决策(业务智能)的报告。  为了将这种使用数据库的模式与事务处理区分开来,它被称为在线分析处理(OLAP)。 它们之所以鲜为人知,是因为它们是由业务分析师而不是最终用户处理的。  与OLTP系统相比,它们处理的查询量要少得多,但每个查询的要求通常很高,需要在短时间内扫描数百万条记录。  磁盘带宽(不是寻道时间)通常是这里的瓶颈,而面向列的存储是此类工作负载越来越流行的解决方案。

OLTP和OLAP之间的区别并不总是很明确,但是下面列出了一些典型特征。

数据仓库中的OLTP与OLAP查询是怎样的

首先,将相同的数据库用于事务处理和分析查询。事实证明,sql在这方面非常灵活:它对于OLTP类型查询和OLAP类型查询都适用。尽管如此,在1980年代末和1990年代初,公司有一种趋势是停止使用OLTP系统进行分析,而改为在单独的数据库上运行分析。这个独立的数据库称为数据仓库。

企业可能具有数十种不同的交易处理系统:为面向客户的网站提供动力的系统,实体商店中的销售点(结帐)系统,仓库中的库存跟踪,车辆路线规划,供应商管理,员工管理等。这些系统中的一个很复杂,需要一个团队来维护它,因此这些系统最终只能彼此独立地运行。通常期望这些OLTP系统具有高可用性,并以低延迟处理事务,因为它们通常对业务运营至关重要。因此,数据库管理员密切保护其OLTP数据库。他们通常不愿让业务分析人员在OLTP数据库上运行临时分析查询,因为这些查询通常很昂贵,会扫描数据集的大部分,这可能会损害并发执行事务的性能。

数据仓库

数据仓库中的OLTP与OLAP查询是怎样的

相比之下,数据仓库是一个独立的数据库,分析人员可以查询其内心的内容,而不会影响OLTP操作。数据仓库包含公司所有各种OLTP系统中数据的只读副本。从OLTP数据库中提取数据(使用定期数据转储或连续的更新流),将其转换为易于分析的模式,进行清理,然后将其加载到数据仓库中。将数据放入仓库的过程称为"提取-转换-加载(ETL)"。现在,几乎所有大型企业都存在数据仓库,但在小型企业中几乎闻所未闻。这可能是因为大多数小型公司没有太多不同的OLTP系统;而且大多数小型公司的数据量都很小-足够小,可以在常规SQL数据库中查询,甚至可以在电子表格中进行分析。在大型公司中,要做一些在小型公司中简单的事情需要很多繁重的工作。

使用单独的数据仓库而不是直接查询OLTP系统进行分析的一大优势是,可以针对分析访问模式对数据仓库进行优化。 某些数据库(例如Microsoft SQL  Server和SAP HANA)在同一产品中支持事务处理和数据仓库。 但是,它们越来越成为两个独立的存储和查询引擎,它们恰巧可以通过公共SQL接口进行访问。  数据仓库供应商(例如Teradata,Vertica,SAP HANA和ParAccel)通常在昂贵的商业许可下销售其系统。 Amazon  RedShift是ParAccel的托管版本。 最近,出现了许多开源的SQL-onhadoop项目。 他们很年轻,但旨在与商业数据仓库系统竞争。  这些包括Apache Hivespark SQL,Cloudera Impala,Facebook Presto,Apache Tajo和Apache  Drill。 其中一些是基于Google Dremel的想法。

Analytics的存储架构

根据应用程序的需求,在事务处理领域中会使用各种不同的数据模型。 另一方面,在分析中,数据模型的多样性要少得多。  许多数据仓库都以相当公式化的方式使用,称为星型模式(也称为维建模)。 通常,将事实捕获为单个事件,因为这样可以在以后最大程度地进行分析。  但是,这意味着事实表可能会变得非常大。

星星和雪花:

数据仓库中的OLTP与OLAP查询是怎样的

"星型模式"的名称来自以下事实:当可视化表关系时,事实表位于中间,并被其维度表包围; 这些桌子的连接就像星星的光芒。  此模板的一种变体称为雪花模式,其中尺寸进一步细分为多个子维度。  像Apple,Walmart或eBay这样的大企业,其数据仓库中可能有数十PB的事务历史记录,其中大多数实际上是表。

列式存储:

数据仓库中的OLTP与OLAP查询是怎样的

尽管事实表通常超过100列,但是典型的数据仓库查询一次只能访问其中的4或5。  在大多数OLTP数据库中,存储以面向行的方式进行布局:表的一行中的所有值都彼此相邻存储。  为了处理诸如"查找某项X在12月的平均销售额"之类的分析查询,面向行的存储引擎仍然需要将所有这些行(每个行包含100多个属性)从磁盘加载到内存中  ,解析它们并过滤掉不符合要求的条件,这可能会花费很长时间。 面向列的存储背后的想法很简单:不要将一行中的所有值都存储在一起,而是将每一列中的所有值存储在一起。  如果每列存储在单独的文件中,则查询仅需要读取和解析该查询中使用的那些列,这可以节省大量工作。

列压缩:

数据仓库中的OLTP与OLAP查询是怎样的

通常,一列中不同值的数量与行数相比很小(例如,零售商可能进行数十亿次销售交易,但只有100,000种不同产品)。  根据列中的数据,可以使用不同的压缩技术-在数据仓库中特别有效的一种技术是位图编码。

现在,我们可以将一列包含n个不同的值,并将其转换为n个单独的位图-每个不同的值一个位图,每行一个位。 如果行具有该值,则该位为1,否则为0。  如果n很小(例如,一个国家/地区列可能具有大约200个不同的值),则这些位图可以每行一位存储。

感谢大家的阅读,以上就是“数据仓库中的OLTP与OLAP查询是怎样的”的全部内容了,学会的朋友赶紧操作起来吧。相信编程网小编一定会给大家带来更优质的文章。谢谢大家对编程网网站的支持!

您可能感兴趣的文档:

--结束END--

本文标题: 数据仓库中的OLTP与OLAP查询是怎样的

本文链接: https://www.lsjlt.com/news/71841.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据仓库中的OLTP与OLAP查询是怎样的
    小编今天带大家了解数据仓库中的OLTP与OLAP查询是怎样的,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深...
    99+
    2024-04-02
  • Oracle中OLAP 与 OLTP的作用是什么
    这期内容当中小编将会给大家带来有关Oracle中OLAP 与 OLTP的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 什么是OLTPOLTP,也叫联...
    99+
    2024-04-02
  • 数据库OLAP与数据仓库的区别与联系:一文搞清楚
    数据库OLAP与数据仓库的区别 数据模型 数据库OLAP: 基于多维数据模型,它将数据组织成多维度的结构,以便快速聚合和分析。 数据仓库: 基于关系数据模型,它将数据存储在表中,每一行数据代表一个实体,每一列数据代表实体的一个属性。 ...
    99+
    2024-02-12
    数据库 OLAP 数据仓库 多维数据 历史数据
  • 数据库查询的速度优化是怎样的
    数据库查询的速度优化是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对于数据库查询的速度优化,关于数据...
    99+
    2024-04-02
  • C#连接SQL Sever数据库与数据查询实例之数据仓库详解
    目录前言1.下载后打开选择登录:Windows身份验证2.创建登录的账号和密码(右键创建)3.创建数据库表 表的右键新建即可4.导入数据 这里以 信息表为例子C#连接数据库1.创建连...
    99+
    2024-04-02
  • PHP数据库怎样获取查询结果的行数
    本篇内容介绍了“PHP数据库怎样获取查询结果的行数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在之前的学习中,我们已经了解怎样获取SQL的...
    99+
    2023-06-25
  • mysql怎么查询数据库中的表
    要查询数据库中的表,可以使用以下语句: SHOW TABLES; 这条语句将显示数据库中的所有表的名称。您可以将其与其他查询语句一...
    99+
    2024-04-02
  • mysql数据库怎么查询数据的
    在 mysql 中查询数据,可以使用 select 语句,语法:select 列名from 表名where 条件;可选参数包括 distinct(去除重复记录)、li...
    99+
    2024-04-22
    mysql
  • PHP与数据仓库的集成
    随着互联网和大数据的快速发展,越来越多的企业开始将数据仓库(data warehouse)作为支撑业务发展的重要基础设施。而作为一种流行的编程语言,PHP也逐渐成为了许多企业和组织的首选,那么如何将PHP与数据仓库集成呢?一、数据仓库概述数...
    99+
    2023-05-17
    数据仓库 集成 PHP
  • php怎么查询数据库中某年的数据
    PHP是一种可以执行服务器端脚本的编程语言,其广泛应用于开发 Web 应用程序,其中最关键的就是从数据库中查询数据以展示在页面上。如何在PHP中查询某年的数据呢?下面,我们将为您详细介绍。首先,我们需要连接数据库,例如连接MySql数据库,...
    99+
    2023-05-14
    php 数据库
  • 阿里云数据库与数据仓库的区别
    阿里云数据库与数据仓库是两种不同的数据存储方式,它们在功能、应用场景和性能上有所不同。本文将对两者进行详细比较,帮助读者更好地理解两者之间的区别。 一、功能上的区别阿里云数据库是一种关系型数据库,主要用于存储和管理结构化数据。它提供了丰富的...
    99+
    2023-11-18
    阿里 数据仓库 区别
  • 如何查询SQLite数据库中的数据
    要查询SQLite数据库中的数据,可以使用SQL语句来执行查询操作。以下是一个示例: SELECT * FROM table...
    99+
    2024-04-09
    SQLite
  • OLTP场景下的数据分布式设计原则是怎样的
    本篇文章给大家分享的是有关OLTP场景下的数据分布式设计原则是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言最近几年做分布式项目,很...
    99+
    2024-04-02
  • mysql怎么查询数据库中的表名
    本篇内容介绍了“mysql怎么查询数据库中的表名”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!查询数据库中...
    99+
    2023-01-30
    mysql 数据库
  • vb中怎么显示查询的数据库
    在VB中显示查询的数据库,可以使用ADO.NET技术来连接数据库并执行查询操作。以下是一个简单的示例:1. 首先,添加一个ADODB...
    99+
    2023-10-18
    vb 数据库
  • mysql怎么查询表中的数据库名
    mysql查询表中的数据库名的语法:“show databases”;mysql查询表中的数据库名的方法:查询所有数据库,sql语句为:“show databases;”查询指定数据库中所有表名,sql语句为:select&nbs...
    99+
    2024-04-02
  • HTML与数据库查询的协同效应
    html 与数据库查询相辅相成,赋能构建交互式且数据驱动的 web 应用程序:html 表单处理:收集用户输入并从数据库检索数据,响应用户操作。ajax 数据请求:异步发送数据库查询,不...
    99+
    2024-04-09
    html 数据库查询 mysql python
  • 怎么理解Oracle数据库中的多表查询,分组查询,子查询
    本篇内容介绍了“怎么理解Oracle数据库中的多表查询,分组查询,子查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • 什么是负责数据库中查询操作数据库的语言
    小编给大家分享一下什么是负责数据库中查询操作数据库的语言,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!负责数据库中查询操作的数据...
    99+
    2024-04-02
  • hadoop数据库查询数据的方法是什么
    Hadoop数据库查询数据的方法通常是通过Hive进行数据查询。Hive是一个数据仓库系统,它可以将结构化的数据文件映射成一张数据库...
    99+
    2024-03-04
    hadoop
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作