数据密集型应用系统设计--3.2 事务处理与分析处理

在商业数据处理的早期阶段,写人数据库通常对应于商业交易场景,例如销售、订单、支付员工工资等。尽管后来数据库扩展到了不涉及金钱交易的领域,事务一词仍然存在,主要指组成一个逻辑单元的一组读写操作。

事务不一定具有ACID(原子性、一致性、隔离性和持久性)属性。事务处理只是意味着运行客户端进行低延迟读取和写入,相比与周期性运行的批处理作业。

尽管数据库开始被用于眸多不同种类的数据,例如博客的评论、游戏中的动作、通讯录中的联系人等,然而其基本访问模式仍然与处理业务交易类似。应用程序通常使用索引中的某些键查找少量记录。根据用户的输入插入或更新记录。因为这些应用程序是交互式的,所以访问模式被称为在线事务处理( online transaction processing,OLTP )。

数据库也开始越来越多地用于数据分析,数据分析具有非常不同的访问模式。通常,分析查询需要扫描大量记录,每个记录只读取少数几列,并计算汇总统计信息(如计数、求和或平均值),而不是返回原始数据给用户.

为了区分使用数据库与事务处理的模式,称之为在线分析处理(online analyticprocessing , OLAP)

相同的数据库可以同时用于事务处理和分析查询。在这方面, SQL被证明是非常灵活的,可以同时胜任OLTP类型和OLAP类型查询.在20世纪80年代后期和90年代初期的一种趋势是,公司放弃使用OLTP系统用于分析目的,而是在单独的数据库上运行分析。这个单独的数据库被称为数据仓库。

数据仓库包含公司所有各种OLTP系统的只读副本。从OLTP数据库(使用周期性数据转储或连续更新流)中提取数据,转换为分析友好的模式,执行必要的清理,然后加载到数据仓库中。将数据导入数据仓库的过程称为提取-转换-加载(Extract-Transform-Load,ETL ).

几乎所有的大型企业都有数据仓库,但是在小型企业中却几乎闻所未闻。这可能是因为大多数小公司没有那么多不同的OLTP系统,大多数小公司只拥有少量的数据,完全可以在传统的SQL数据库中直接进行查询分析,甚至可以在电子表格中进行分析.

有许多图形化数据分析工具,它们可以生成SQL查询、可视化结果并支持分析师探索数据,例如通过诸如向下钻取、切片和切丁等操作。

一些数据库(MicrosoftSQLServer和SAP HANA )在同一产品中支持事务处理和数据仓库.还出现了大量开源的基于Hadoop的SQL项 目,它们还比较年轻,但都试图与商业数据仓库系统展开竞争。 包括Apache Hive 、 Spark SQL 、 Cloudera Impala 、 Facebook Presto 、 Apache Tajo和Apache Dril l [52 '531 。其 中一些系统是基于Google Dremel而构建的.

事务处理领域广泛使用了多种不同数据模型。而另一方面,分析型业务的数据模型则要少得多。许多数据仓库都相当公式化的使用了星型模式,也称为维度建模.==一个事实表连很多维度表

图3-9所示的模式可用于零售数据仓库。模式的中心是一个所谓的事实表(在这个例子中,它被称为fact sales)。事实表的每一行表示在特定时间发生的事件(这里,每一行代表客户购买的一个产品)。如果我们正在分析网站流量而不是零售,则每一行可能表示页面视图或用户的单击。事实表存放如客户购买了一个商品这个行为,表中有购买时间id、客户id、产品id、数量、门店id、成本价、销售价、仓库。每个id都是一个维度表用于存放该对象的属性。

名称“星型模式”来源于当表关系可视化时,事实表位于中间,被一系列维度表包围;这些表的连接就像星星的光芒。

该模板的一个变体称为雪花模式,其中维度进一步细分为子空间。例如,品牌和产品类别可能有单独的表格,在dim_product表中的每一行都可以再次引用品牌和类别作为外键,而不是将其作为字符串直接存储在dim_product表中。雪花模式比星型模式更规范化,但是星型模式通常是首边,主要是因为对于分析人员,星型模式使用起来更简单。如产品表存放了品牌id和类别id,这些id就可以对应一个新的维度表。

在典型的数据仓库中,表通常非常宽:事实表通常超过 100列,有时候有几百列[51 ]。维度表也可能非常宽,可能包括与分析相关的所有元数据,

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

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

相关文章

.pings勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言: 随着科技的发展,网络空间中的威胁也日益猖獗,其中之一就是勒索病毒,而.pings 勒索病毒则是其中的一种。本文将深入介绍.pings 勒索病毒的特征、恢复被其加密的数据文件的方法,并提供预防措施,以保障…

机械硬盘损坏导致win11卡顿和机箱滴滴报警一例

从至少半年前,机箱就一直会滴滴叫。不是开机报警内存不过那种,声音比较小。间距也比较大。当时也不知道怎么回事。同时,win11经常卡顿。cpy一下子100%,根本动不了。重装系统也解决不了。到了这两天,系统进不去了。表现…

使用metricbeat 监控多ES集群

背景 ES 本身自带 监控,属于xpack 中的内容,为商业版,需要收费; 并且 monitor 功能必须要在security开启后才能使用,还有就是集群监控自己,将采集到的性能数据保存到本集群,这是一个比较差的设…

分布式事务(1)

事务是操作数据库中某个数据项的一个程序执行单元。具有4个属性:原子性、一致性、隔离性、持久性。 事务四个特征 1、Atomic原子性 事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全部不执行。 2、Consistency一致性 事务…

统信专业版编译electron问题总结

一、环境信息 操作系统版本:统信专业版本1060 CPU架构:arm64 electron版本:v25.9.5 chromium版本:114 打开开发者权限 二、electron编译问题总结 2.1 编译参数生成问题 在执行 gn gen out/Release --args=“import(”//electron/build/args/release.gn")"过程…

PHP知识点复习

史上最全爆肝整理PHP入门笔记(总结分享)-php教程-PHP中文网 PHP开发学习资料集合(入门进阶必备,建议收藏) - 知乎 https://www.cnblogs.com/li1056822533/p/6409989.html 1. LAMP具体结构不包含下面哪种(A &#xf…

grpc c++使用示例

文章目录 1 proto文件编辑2 生成C代码2.1 生成protobuf(反)序列化代码2.2 生成服务框架代码 3 同步server端3.1 命名空间3.2 重写服务3.3 启动服务3.4 完整代码 4 同步client端4.1 命名空间4.2 定义客户端4.3 完整代码 5 异步server端 手把手写rpc范例流…

2023年信息安全管理与评估—应用程序安全解析

第三部分 应用程序安全(90分) 目录 第三部分 应用程序安全(90分)

autodl学术加速

今天使用autodl加载预训练BERT模型失败,在官方文档里面找到了官方给的代理使用方法。 直接在bash输入: 开启学术加速: source /etc/network_turbo取消学术加速: unset http_proxy && unset https_proxy据说是只能访问这…

java线程池参数及合理设置

java线程池参数及合理设置 线程池的7大核心参数 corePoolSize 核心线程数目核心线程会一直存活,及时没有任务需要执行,当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理当设置allowCoreThreadTimeouttru…

目标检测YOLO实战应用案例100讲-多目标检测及追踪(续)

目录 3.3 改进CenterNet网络(Improved-CenterNet) 3.3.1多特征融合模块的设计 3.3.2 DCN模块设计

关键字、标志符、变量

1、关键字 1.1、定义 定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(或单词) 特点:全部关键字都是小写字母 上源码: 代码中定义类的关键字class,定义一个订单控制器类 ​​​​​​​…

【Unity美术】如何用3DsMax做一个水桶模型

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

echarts图表会残留上一条数据的折线 setOption参数的第二个坑

记一下小坑 因为我的echarts图表的 series 是循环渲染上去的 所以他可能会有一条 或多条 我展示完多条的图表后 关闭 打开单条数据的图表 发现 他会残留上一个图表的数据 显示多条 之前我还以为是后端返回错了 但是log打印和查看请求数据 确实发现是我这边的问题 原因&#…

【Java集合篇】HashMap的hash方法是如何实现的?

HashMap的hash方法是如何实现的? ✔️ 典型解析✔️ 拓展知识仓✔️ 使用&代替%运算✔️扰动计算 ✔️ 典型解析 hash 方法的功能是根据 Key 来定位这个K-V在链表数组中的位置的。也就是hash方法的输入应该是个Object类型的Key,输出应该是个int类型的数组下标。…

Kibana相关问题及答案(2024)

1、如何在Kibana中创建一个仪表板? 在Kibana中创建一个仪表板涉及到在其界面中完成几个主要步骤的过程。这里是详细的分步指南: 第 1 步:设计和规划 在你开始之前,思考以下问题将帮助你设计高效的仪表板: 数据源&a…

Redis底层原理篇(SDS与IntSet)

1.SDS动态字符串 2.intSet contents[]整数数组存的是地址 具备有序的特性 有自动扩容机制,自动扩容时倒序赋值

StarRocks 在小红书自助分析场景的应用与实践

作者:小红书 OLAP 研发负责人 王成 近两年 StarRocks 一直是小红书 OLAP 引擎体系里非常重要的部分,过去一年,小红书的 StarRocks 使用规模呈现出翻倍的增长速度,目前整体规模已经达到 30 个集群,CPU 规模已经达到了 3…

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使用…

GitHub pull request(傻瓜式入门版)

基础入门版 pull request一、fork项目二、clone代码到本地三、进入到克隆的项目目录下四、列出所有分支五、创建一个本地分支,并追踪远程项目分支六、查看当前分支七、与远程仓库建立连接八、与上游仓库建立连接八、同步最新代码九、修改代码并提交十、提交pr pull …