OLTP 与 OLAP 系统说明对比和大数据经典架构 Lambda 和 Kappa 说明对比——解读大数据架构(五)

文章目录

  • 前言
  • OLTP 和 OLAP
  • SMP 和 MPP
  • lambda 架构
  • Kappa 架构

前言

本文我们将研究不同类型的大数据架构设计,将讨论 OLTP 和 OLAP 的系统设计,以及有效处理数据的策略包括 SMP 和 MPP 等概念。然后我们将了解经典的 Lambda 架构和 Kappa 架构。

OLTP 和 OLAP

在线事务处理(Online transaction processing)是一种用于在实时环境中处理CRUD 事务的系统,旨在支持高并发,事务性以及低延迟请求,比如说电商网站等。
联机分析处理(online analytical processing)系统对查询性能做了优化,用户可以通过 OLAP 系统快速查询分析数据并生成报表,OLTP 可以与 OLAP 结合使用,作为 OLAP 的数据源,通过 ETL 加载源数据至数据仓库,如下图所示:

OLAP 数据集通常由多维数据组成,其中包含了事实表(Fact Table)和维度表(Dimension Table)。
事实表

  • 事实表包含了业务过程中发生的事实或事件的详细数据,通常是数值型数据,如销售额、数量、利润等。事实表通常是一个大表,其行代表了每个事实事件的记录,而列则代表了与该事件相关的度量指标。每行数据都包含了一个或多个外键,用于连接到维度表,以提供更多关于事实的上下文信息。

维度表

  • 维度表包含了描述事实表中数据的上下文信息,如时间、地点、产品、客户等。维度表是由唯一的、离散的值组成的,通常被用来对事实数据进行分类和分组。维度表的每一行代表一个维度的属性或值,而每一列代表一个特定的维度。维度表的关键属性是其主键,它与事实表中的外键相匹配,用于在事实表和维度表之间建立关联。

下表对比了 OLTP 与 OLAP:

OLTPOLAP
应用类型事务型分析型
数据性质运营数据合并数据
定位应用程序主题分析
目的处理正在进行的业务任务有助于决策
事务频率频繁偶尔
操作类型CRUD读取大量数据
数据设计三范式非三范式
常见用法用于零售销售和其他金融交易系统常用于数据挖掘、销售和营销
响应时间响应时间是即时的响应时间从几秒到几小时不等
查询复杂度简单即时的查询复杂查询
使用模式重复使用临时使用
事务性质事务时间短、简单复杂查询
数据库大小千兆字节数据库大小TB 数据库大小

OLAP 数据库提供了一种分析存储在 DW 中的数据的方法,这种方式比在包含大量数据的 DW 上执行传统的基于 SQL 的查询更加灵活和有交互性。

运营产生和用于分析的数据
运营产生的数据是公司业务线正常运行产生的数据,存储在 OLTP 系统中。
分析所用的数据来自运营数据的采集和转换后的数据,存储在数据仓库中,通过 OLAP 系统查询分析,生成报表。

SMP 和 MPP

在大数据领域中,对称多处理(Symmetric Multiprocessing,SMP)和大规模并行处理(Massively Parallel Processing,MPP)是两种常见的处理架构,用于处理和分析大规模数据集。
对称多处理(SMP)

  • 对称多处理是一种共享存储器的处理架构,其中包含多个处理器核心(通常是对称的),这些核心共享系统的内存和其他资源。在SMP系统中,所有处理器核心可以访问相同的存储器和数据,因此可以同时处理和操作相同的数据集。这种架构适用于对数据进行并发处理和分析,但可能会受到内存带宽和共享资源的限制。

大规模并行处理(MPP)

  • 大规模并行处理是一种分布式处理架构,其中包含多个处理节点(通常是非对称的),每个节点都具有自己的处理器、内存和存储器。在MPP系统中,数据被分割成多个部分,并分配到不同的处理节点上并行处理。每个节点独立地处理其分配的数据部分,然后将结果合并以生成最终的分析结果。MPP系统通常具有良好的可扩展性和性能,适用于处理大规模数据集和复杂的分析任务。

总的来说,SMP适用于对数据进行并发处理和分析,而MPP则适用于处理大规模数据集和复杂的分析任务,具有更好的可扩展性和性能。在选择处理架构时,需要考虑数据规模、处理需求、性能要求以及系统成本等因素。
下图是 SMP 和 MPP 数据库设计的对比:

lambda 架构

Lambda架构是一种大数据处理架构,旨在通过使用批处理和实时流处理方法来处理海量数据。其想法是通过使用批处理获得全面、准确的批量数据视图,并平衡延迟、吞吐量、扩展和容错能力,同时使用实时流处理提供在线数据的视图(例如物联网设备、 Twitter 源或计算机日志文件)。
该架构通过包含批处理和流处理来同时满足查询历史数据和实时数据的需求,架构设计的三个关键原则如下:
双数据模型

  • Lambda 架构使用一种模型进行批处理(批处理层),另一种模型进行实时处理(流层)。这使得系统能够处理批量和实时数据,并以可扩展和容错的方式执行这两种类型的处理。

单一统一视图

  • Lambda 架构使用单个统一视图(称为应用层)向最终用户呈现批处理和实时处理的结果。这使得用户可以看到完整且最新的数据视图,即使数据正在由两个不同的系统处理。

解耦处理层

  • Lambda 架构将批处理层和实时处理层解耦,使它们可以独立扩展、单独开发和维护,从而实现灵活性和易于开发。

下图是 lambda 架构的概述:

  • 数据消费层:接入多个数据源的数据,包括属实时流数据和批数据
  • 流处理层:增量更新流数据,该层的数据可能存在数据质量问题
  • 批处理层:批处理层的数据是真实可靠的,会对流处理层的数据进行校验,批处理层的数据会进行大量的 ETL 任务。
  • 应用层:可以同时对外提供实时的可能存在数据质量问题的流数据和准确的批处理数据,默认对外提供批数据。

lambda 架构的缺点

  • **复杂:**需要同时维护实时和批处理两套系统
  • 实时处理性能有限:对于大量数据的实时处理不如 Kappa 架构
  • 对状态处理的支持有限:Lambda 架构专为无状态处理而设计,可能不太适合需要跨多个事件维护状态的应用程序。例如,一家零售商店,其推荐系统根据客户的浏览和购买行为推荐产品。如果该系统使用 Lambda 架构,单独处理每个事件而不维护状态,则可能会错过客户的购物旅程和意图。如果客户浏览鞋子,然后浏览袜子,然后浏览鞋油,无状态系统可能无法正确推荐相关商品,因为它不考虑事件的顺序。它还可能会推荐客户购物车中已有的商品。

总的来说,如果需要构建一个既可以处理批量数据又可以处理实时数据但需要提供单一统一数据视图的分布式系统,应该考虑 Lambda 架构。如果需要有状态处理或处理大量实时数据,您可能需要考虑 Kappa 架构。

Kappa 架构

与旨在处理实时和批量数据的 Lambda 架构不同,Kappa 旨在仅处理实时数据,该架构的三个关键原则:
实时处理

  • Kappa 架构专为实时处理而设计,这意味着事件在收到后立即进行处理,而不是稍后进行批量处理。这减少了延迟并使系统能够快速响应不断变化的条件。

单一事件流

  • Kappa 架构使用单个事件流来存储流经系统的所有数据。这有很好的可扩展性和容错能力,因为数据可以轻松地分布在多个节点上。

无状态处理

  • 在Kappa架构中,所有处理都是无状态的。这意味着每个事件都是独立处理的,不依赖于先前事件的状态。这使得扩展系统变得更容易,因为不需要跨多个节点维护状态。

下图是对 Kappa 架构的一个概述:

Kappa 架构的缺点
复杂

  • Kappa 架构涉及单个事件流和无状态处理,这比其他架构的实现和维护更加复杂。

批处理支持有限

  • Kappa架构是为实时处理而设计的,不容易支持历史数据的批量处理。如果需要执行批处理,可能需要考虑 Lambda 架构。

对即席查询的支持有限

  • 由于 Kappa 架构是为实时处理而设计的,因此它可能不太适合需要处理大量历史数据的即席查询。

总的来说,Kappa 架构是构建需要实时处理大量数据、需要可扩展、容错和低延迟的分布式系统的绝佳选择,比如说流媒体平台和金融交易系统。但是,如果需要执行批处理或支持即席查询,那么 Lambda 架构可能是更好的选择。

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

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

相关文章

【脚本】多功能Ubuntu临时授予用户sudo权限管理工具

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 设计原理和初衷可以看这里:【技巧】Ubuntu临时授予用户sudo权限,并在一定时间后自动撤销_ubuntu jianshao sudo-CSDN博客文章浏览阅读404次。非常实用_ubuntu jianshao sudohttps://blog.c…

【微信小程序——开发DAY4(黑马程序员课程)】

学习目标 自定义小程序组件自定义组件(1.)创建自定义组件文件夹(2.)引用自定义组件(3.)组件和页面的区别(4.)自定义组件的隔离性——自定义组件不影响小程序的样式——自定义组件也只…

【系统分析师】计算机网络

文章目录 1、TCP/IP协议族1.1 DHCP协议1.2 DNS协议1.3网络故障诊断 2、网路规划与设计2.1逻辑网络设计2.2物理网络设计2.3 分层设计 3、网络接入3.1 接入方式3.2 IPv6地址 4、综合布线技术5、物联网5.1物联网概念与分层5.2 物联网关键技术 6、云计算7、网络存储技术&#xff08…

特征工程(IV)--特征选择

特征工程 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。 特征工程是…

ssm051网上医院预约挂号系统+jsp

网上医院预约挂号系统设计与实现 摘 要 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级,也为了更好的维护医院预约挂号信息,网上医院…

Echarts简单的多表联动效果和添加水印和按钮切换数据效果

多表联动 多表联动效果指的是在多个表格之间建立一种交互关系,以便它们之间的操作或选择能够相互影响。通常情况下,多表联动效果可以通过以下方式之一实现: 数据关联: 当在一个表格中选择或操作某些数据时,另一个表格…

matlab学习(三)(4.9-4.15)

一、空域里LSB算法的原理 1.原理: LSB算法通过替换图像像素的最低位来嵌入信息。这些被替换的LSB序列可以是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。 2.实现步骤: (1)将图像文件中的所有像素点以RGB形…

域权限维持—黄金票据和白金票据

黄金票据和白金票据 前言 某老哥的一次面试里问到了这个问题,故来做一番了解 该攻击方式在BlackHat 2014被提出,演讲者为Alva Duckwall & Benjamin Delpy(gentilkiwi)进行了演示,该演讲提出了Kerberos协议实现过程中的设计…

【5G PHY】5G无线链路监测原理简述

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

bugku-web-文件包含2

页面源码 <!-- upload.php --><!doctype html><html><head><meta charset"utf-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-widt…

精品方案- 智慧养殖业IOT项目技术建议书(免费下载)

本项目建设从实际需求出发&#xff0c;利用物联网信息化手段进行畜牧业经济运行监测&#xff0c;掌握畜牧业生产与畜牧业经济运行的动态&#xff0c;监测畜牧业生产经营的成本收益变化&#xff0c;对畜牧业生产经营活动提供分析。提高畜牧业市场监管的电子化、网络化水平&#…

Unity上接入手柄,手柄控制游戏物体移动

1、unity软件上安装system input 组件。菜单栏【window】-【Packag Manager】打开如下界面,查找Input System,并且安装。 2、安装成功后插入手柄到windows上,打开菜单栏上【window】--【Analysis】--【Input Debuger】 进入Input Debug界面,可以看到手柄设备能被Unity识别。…