目录

一、各阶段的架构简介

二、各个架构的详细解释

1. 传统离线架构

2.1. Lambda架构-离线数仓分析+实时链路分析

2.2. Lambda架构-离线数仓+实时数仓

3. Kappa/流批一体架构

4. 湖仓一体架构

三、总结

一、各阶段的架构简介

技术架构

核心驱动(核心需求)

‌关键技术

特点

传统离线架构

海量存储需求

Hadoop生态

1.仅支持离线数据分析
2.不支持实时场景

Lambda架构

离线数仓分析

+实时链路分析

实时分析需求

批流双引擎

1.支持离线、实时数据分析
2.实时数据分析不分层,数据无法复用

离线数仓

+实时数仓

1.支持离线、实时数据分析
2.离线、实时两套代码,开发、维护成本高
3.离线、实时两套数仓,存储成本、计算成本开销大

Kappa/流批一体架构

开发效率与一致性

Flink/Spark

统一API

1.以实时数据分析为主,适用于离线分析少的场景
2.离线、实时一套代码,消除代码冗余
3.KafKa无法存储海量数据
4.KafKa不支持OLAP分析(SQL分析),临时性需求无法快速满足
5.数据重播时资源消耗大,故障恢复复杂

湖仓一体架构

存储治理与灵活性平衡

Delta Lake

/Iceberg

1.存储中的小文件问题
2.实时数据分析效率不高

二、各个架构的详细解释

1. 传统离线架构

核心特点

1. 批处理主导

数据通过周期性ETL(如每日全量同步)导入HDFS等分布式存储,计算依赖MapReduce、Hive等离线引擎。

2. 高存储性价比

基于HDFS的廉价存储适合PB级历史数据,但时效性仅为T+1。

技术栈

Hadoop生态(HDFS/Hive)为主,结合关系型数据库作数据源。

2.1. Lambda架构-离线数仓分析+实时链路分析

核心特点

1.支持离线、实时两种数据分析

离线数据、实时数据各有一套处理逻辑,能够对关键性指标进行实时数据分析处理。

2.实时数据分析不分层,数据无法复用

实时分析中仅仅是通过Kafka分发消息后通过Flink进行流处理,没有分层的结构,导致每个需求都要单独开发,数据几乎无法复用。

技术栈

Hadoop生态(HDFS/Hive)+ 实时相关生态技术(Kafka + Flink + Sparkstreaming ... ...)。

2.2. Lambda架构-离线数仓+实时数仓

核心特点

1.开发、维护成本高

离线、实时各有一套代码,开发时要开发两套,维护时也要维护两套,成本翻倍。

2.存储成本、计算成本开销大

离线、实时各有一套数仓,数据冗余度高,存储成本、计算成本翻倍。‌

技术栈

Hadoop生态(HDFS/Hive)+ 实时相关生态技术(Kafka + Flink + Sparkstreaming ... ...)。

注:2.2相较于2.1其实就是引入了数仓的概念到实时链路中。

3. Kappa/流批一体架构

核心特点

1. 以实时分析为主,离线分析少‌
2. 放弃离线批处理,直接通过实时数据分析进行数据处理。
2. Kafka在流批一体场景下存在一定的缺陷
  • Kafka 无法存储海量数据
  • 数据治理平台无法迁移使用
  • Kafka 不支持数据的更新操作

技术栈

Flink/Spark统一API

流批一体架构的思想

  • 架构角度:一套架构既能完成流处理也能完成批处理
  • 计算框架:一个框架既可以处理批数据也可以处理流数据
  • SQL 层面:一套 SQL 可以处理批也可以处理流数据
  • 存储层面:离线数据和实时数据只需要存储一份

4. 湖仓一体架构

核心特点

1. 数据孤岛与整合难题

统一存储结构化、半结构化和非结构化数据,消除传统架构中数据仓库与数据湖的割裂,减少数据冗余和迁移成本。

2. 小文件问题

传统离线数仓,HDFS中其实也会存在类似的问题。

3. 实时数据处理慢

索引机制(如Bloom索引假阳性)和写入模式(COW小文件问题)可能导致实时数据处理延迟。

技术栈

HDFS、Delta Lake 、Iceberg

三、总结

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

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

相关文章

STM32 HAL库驱动0.96寸OLED屏幕

STM32 HAL库驱动0.96寸OLED屏幕 项目概述 本项目使用STM32 HAL库为0.96寸OLED屏幕编写驱动程序。OLED屏幕通过I2C接口与STM32单片机通信,实现文本、数字和图形的显示功能。 项目仓库地址:STM32_Sensor_Drives 硬件连接 OLED屏幕通过I2C接口与STM32连…

横向越权:修改参数访问不属于自己的数据

一、什么是横向越权定义 横向越权(Horizontal Privilege Escalation)是指 同一权限级别的用户,通过篡改请求参数或资源标识,访问本不属于自己的数据或功能。例子 假设一个在线商城,用户 A 访问订单详情的 URL&#xff…

攻击实验(ARP欺骗、MAC洪范、TCP SYN Flood攻击、DNS欺骗、DHCP饿死)

实验一 ARP欺骗一、拓扑二、实验准备、1.设置终端漏洞靶机集合选择需要的数量和镜像打开设备上的驱动精灵安装网卡安装成功后查看IP地址、网关信息等。三、实验步骤1.实验原理中间人(攻击者)在终端与网关之间持续发送伪造的 ARP 应答包,双向欺…

VSCode 禁用更新检查的方法

通过设置菜单禁用 这是最直接和推荐的方法,可以永久禁用自动更新: 打开 VSCode。点击左下角的齿轮图标,然后选择“设置”。或者通过菜单栏“文件” > “首选项” > “设置”进入。在顶部的搜索框中输入“update”。找到“Update: Mode”…

Flutter - 应用启动/路由管理

一、应用入口1. 初始化 Flutter 底层绑定 ,运行 App。import package:flutter/material.dart; import package:flutter_base/Application.dart;void main() {// 确保绑定初始化WidgetsFlutterBinding.ensureInitialized();// App初始化Application.init(); }2. 注册…

MySQL 数据操作全流程:创建、读取、更新与删除实战

MySQL系列 文章目录MySQL系列前言一、Create(创建)并插入数据1.1 单行数据 全列插入1.2 多行数据 指定列插入1.3 插入冲突时同步更新1.4 冲突时替换二、Retireve读取数据2.1 全列查询2.2 查询指定列2.3 查询字段为表达式2.4 结果去重 DISTINCT2.5 where条件筛选2.6 order by语…

SQL约束:数据完整性的守护者

在SQL中,约束(Constraints) 是作用于数据库表字段上的规则,用于强制保证数据的完整性、准确性和一致性。当插入、更新或删除数据时,约束会自动验证操作是否符合规则,若违反则拒绝执行。 以下是SQL中常见的约…

Springboot-vue 地图展现

在很多社区管理系统中,地图展示功能是一个重要的模块,它能直观地呈现小区的地理位置分布。本文将详细梳理从前端触发请求到地图上展示小区数据的完整流程,帮助大家理解前后端协同工作的具体细节。一、前端触发:页面加载与地图初始…

Vue 3 登录组件

Login.vue 组件详细分析整体架构 Vue 3 登录组件&#xff0c;采用 Composition API Element Plus UI 库&#xff0c;实现了完整的用户认证界面。 模板结构分析 1. 容器布局 <div class"login-container"><el-card class"login-card"><!-- …

小结: getSpringFactoriesInstances从 `spring.factories` 文件中加载和实例化指定类型的类

getSpringFactoriesInstances 方法工作原理 getSpringFactoriesInstances 是 Spring Boot 框架中的一个核心方法&#xff0c;用于从 spring.factories 文件中加载和实例化指定类型的类。这是 Spring Boot 实现自动配置和插件化扩展的关键机制。 1. 基本功能 该方法的主要作用是…

selenium SessionNotCreatedException问题解决办法

在上周有一台服务器重启之后&#xff0c;Chrome浏览器也自动升了级&#xff0c;原本能够正常使用的自动化办公程序突然没法用了&#xff0c;出现了下面的报错提示。codes/addCancelBdld.py:980: DeprecationWarning: use options instead of chrome_optionsdriver webdriver.C…

SOAP HTTP Binding

SOAP HTTP Binding 引言 SOAP(Simple Object Access Protocol)是一种轻量级、简单的协议,用于在网络上交换结构化信息。它广泛应用于Web服务中,用于实现不同系统和应用程序之间的通信。SOAP HTTP Binding是SOAP协议的一种实现方式,它允许使用HTTP协议来传输SOAP消息。本…

GPT-5免费使用教程(国内可访问)

GPT-5来了&#xff0c;压力给到各大AI模型厂商&#xff1f; 北京时间2025年8月7日&#xff0c;OpenAI 推出两款开源模型 gpt-oss-120b / 20b&#xff0c;性能逼近 o4-mini/o3-mini&#xff0c;一时间火爆AI圈&#xff1b;但这好像只是一道开胃小菜&#xff0c;在北京时间2025年…

内存作假常见方案可行性分析

内存作假通常修改所涉及到的几个文件&#xff1a;M sys/frameworks/base/core/java/android/app/ActivityManager.javaM sys/frameworks/base/core/jni/android_os_Debug.cppM sys/frameworks/base/core/jni/android_util_Process.cppM sys/frameworks/base/services/core/java…

C#(vs2015)利用unity实现弯管机仿真

以下是基于 Visual Studio 2015 和 Unity 实现弯管机仿真的完整技术流程&#xff0c;结合工业仿真开发的最佳实践整理而成&#xff0c;涵盖建模、通信、运动控制和交互逻辑等核心模块&#xff1a;---一、环境配置与基础框架搭建 1. Unity 与 VS2015 联动 - 安装 [Visual Studio…

华为USG防火墙双机,但ISP只给了1个IP, 怎么办?

华为USG防火墙双机&#xff0c;但ISP只给了1个IP&#xff0c; 怎么办&#xff1f; 华为USG双机使用VRRP&#xff0c;需要3个Ip 本次联通只给了 100.1.1.0/30 这一个互联段 联通侧用了100.1.1.1&#xff0c; 我们这一侧只有100.1.1.2 怎么办&#xff1f; 找联通多要几个Ip&…

Go 工具链环境变量实战:从“command not found”到工具全局可用的全流程复盘

在 Go 生态里&#xff0c;丰富的命令行工具极大提升了开发效率。但很多小伙伴第一次用 go install 安装第三方工具后&#xff0c;却遇到终端里找不到命令的尴尬——明明装好了&#xff0c;终端却报 “command not found”。这是为什么呢&#xff1f;本文结合我亲身踩过的坑&…

MCU 软件断点注意事项!!!

——为什么调试器会在运行中改我的Flash程序&#xff1f;调试单片机时&#xff0c;很多人都有这样的疑问&#xff1a;明明我在调试前刷进去的固件是好的&#xff0c;为什么加了一个断点之后&#xff0c;调试器居然去改了 Flash&#xff1f; 如果我拔掉调试器&#xff0c;这个固…

腾讯iOA:数据安全的港湾

声明&#xff1a;文章为本人真实测评&#xff0c;非广告&#xff0c;无推广&#xff0c;为用户体验文章 前言 当前网络安全威胁日益复杂化&#xff0c;恶意软件攻击手段不断升级。例如&#xff1a;钓鱼邮件携带的伪装安装包可能引发勒索病毒在内网扩散&#xff0c;导致业务中断…

相册管理系统介绍

之前在github和gitee上了找了好久也没找到符合自己需求的相册管理系统&#xff0c;最近就静下心来自己写了一套。系统分为前台相册系统与后台管理系统。 技术框架采用的是前端vueelementui&#xff0c;后端springbootmybatisplus。 下面是项目截图&#xff1a;项目功能介绍&…