大數據架構演變之路

目錄

一、各階段的架構簡介

二、各個架構的詳細解釋

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;項目功能介紹&…