從數據倉庫到數據湖(上):數據湖導論

文章目錄

  • 一、什么是數據湖?
    • 起源
    • 數據湖的特征
  • 二、為什么要用數據湖?
  • 三、數據湖與數據倉庫的區別
      • 數據倉庫和數據湖的對比
  • 四、數據湖本質
    • 數據存儲架構
    • 數據處理工具:三類
      • 第一類工具
      • 第二類工具
      • 第三類工具
    • 小結
  • 五、總結
  • 六、參考資料

一、什么是數據湖?

起源

數據湖的概念最早由Pentaho的創始人兼CTO詹姆斯·迪克森(James Dixon)于2010年10月在紐約Hadoop World大會上提出。然而,在國內,數據湖的概念直到2019年Iceberg、Hudi和Delta Lake三大數據湖開源后才真正流行起來。

讓我們先看看維基百科對數據湖的介紹:

數據湖(英語:Data Lake)是指以其原始格式(如BLOB或文件等)存儲的數據存儲庫或系統[1]。數據湖通常會將所有數據統一存儲,包括源系統數據、傳感器數據、社交數據等的原始副本,以及用于報表、可視化、數據分析和機器學習等流程中轉換后的數據。數據湖還可能包括關系數據庫的結構化數據(行與列)、半結構化的數據(CSV、日志、XML、JSON)及非結構化數據(電子郵件、文件、PDF)和二進制數據(圖像、音頻、視頻)等。數據湖可能是“on premises”(指在組織的數據中心里),也可能放在云端(使用Amazon、微軟或Google的云端服務)。

一言以蔽之:數據湖是一個理論上只要是可以轉化成二進制的數據均可存儲的數據存儲管理系統

數據湖的特征

數據湖具有以下特點:

  1. 容量大
    數據湖匯聚各個業務數據源,容納散落在各處的數據,理論上存儲空間巨大。

  2. 格式多
    數據湖架構面向多數據源的信息存儲,可以快速高效地采集、存儲、處理大量來源不同、格式各異的原始數據,包括文本、圖片、視頻、音頻、網頁等各類無序的非結構化數據。數據湖能將不同種類的數據匯聚存儲在一起,并對匯聚后的數據進行管理,建立數據之間的關聯關系,具有很強的兼容性。

  3. 處理速度快
    數據湖技術能將各類原始數據快速轉化為可直接提取、分析、使用的標準格式,統一優化數據結構并對數據進行分類存儲。根據業務需求,數據湖可以對存儲的數據進行快速的查詢、挖掘、關聯和處理,并實時傳輸給終端用戶。

  4. 分布式體系
    由于Hadoop也能基于分布式文件系統來存儲和處理多類型數據,因此許多人認為Hadoop的工作機制就是數據湖的處理機制。當然,Hadoop基于其分布式、可橫向擴展的文件系統架構,可以管理和處理海量數據,但它無法提供數據湖所需的復雜元數據管理功能。最直觀的表現是,數據湖的體系結構表明數據湖是由多個組件構成的生態系統,而Hadoop僅提供了其中的部分組件功能。

注意:嚴格來說數據湖沒有跟具體哪個技術綁定

二、為什么要用數據湖?

要回答這個問題,我們需要先回顧一下數據庫和數據倉庫的概念。

數據庫的基本概念大家應該都不陌生。如今但凡是個業務系統,都或多或少需要用到數據庫。即便我們不直接跟數據庫打交道,它們也在背后默默地為我們服務,比如刷個卡、取個錢,后臺都是數據庫在運行。

數據庫示意圖

數據庫用于聯機事務處理,通常處理的是小數據量的高頻讀寫操作。

當企業的數據越來越多,開始希望基于業務數據進行決策分析時,便有了 數據倉庫 的出現。數據庫等原始數據經過 ETL(Extract, Transform, Load)加工后,被裝進數據倉庫。數據倉庫主要用于聯機分析業務,通常處理大數據量的讀取。

數據倉庫示意圖

數據倉庫工作原理

以上是數據庫和數據倉庫的簡單介紹。盡管它們的應用場景不同,但它們都處理 結構化數據。在相當長的一段時間內,數據庫和數據倉庫聯合起來,共同滿足企業的實時“交易”型業務和聯機“分析性”業務需求。

然而,隨著時代的發展,數據的類型變得越來越多樣化,人們對數據的需求也越來越復雜。

數據多樣化

企業希望把生產經營中的所有相關數據,歷史的、實時的,在線的、離線的,內部的、外部的,結構化的、非結構化的,都能完整保存下來,方便“沙中淘金”。

大數據處理

企業越來越重視 “大數據” 的價值,希望能夠存儲并有效利用這些數據。

這些數據種類繁多,五花八門,數據庫和數據倉庫都無法勝任這項任務,怎么辦呢?

索性挖個大坑吧!

數據湖示意圖

這就是數據湖的原型。

簡單來說,數據湖就像一個“大水坑”,是一種將各類異構數據進行集中存儲的架構。數據湖能夠存儲結構化、半結構化和非結構化數據,使企業可以在一個統一的平臺上存儲、管理和分析各種類型的數據。這不僅能夠降低數據存儲的成本,還能提高數據分析的靈活性和效率,幫助企業更好地挖掘數據價值,做出更明智的業務決策。

三、數據湖與數據倉庫的區別

數據倉庫和數據湖的對比

640-82

從數據含金量來比,數據倉庫里的數據價值密度更高一些,數據的抽取和Schema的設計,都有非常強的針對性,便于業務分析師迅速獲取洞察結果,用與決策支持。

而數據湖更有一種“兜底”的感覺,甭管當下有用沒有/或者暫時沒想好怎么用,先保存著、沉淀著,將來想用的時候,盡管翻牌子就是了,反正都原汁原味的留存了下來。

img

而從產品形態看,數據倉庫可以是獨立的標準化產品,數據湖則是一種解決方案,通常是圍繞對象存儲為“湖底座”的大數據管理方案組合。

640-84

四、數據湖本質

數據湖的本質:是由 數據存儲架構數據處理工具 組成的 解決方案。而不是某個單一獨立產品。

數據存儲架構

數據存儲架構需要具備足夠的擴展性和可靠性,確保企業能夠存儲所有原始數據,并且長期保存。這些存儲系統包括:

  • Hadoop 的 HDFS
  • 對象存儲系統,如 Amazon Web Services(亞馬遜云科技)

數據處理工具:三類

第一類工具

解決的問題是:如何將數據“搬到”湖里,即 ETL(Extract, Transform, Load)。

ETL

第二類工具

解決的問題是:數據管理。如果元數據缺失,數據湖中的數據質量將無法保證,各種數據無序堆積,最終會導致數據湖變成 數據沼澤

數據管理

第三類工具

解決的問題是:從湖中的海量數據中“淘金”。數據存儲在數據湖中并不是終點,還需要對數據進行分析、挖掘和利用。例如,對湖中的數據進行查詢,同時將數據提供給機器學習和數據科學類的業務,以便實現“點石成金”。

數據分析

小結

數據湖不僅僅是一個“囤積”數據的“大水坑”。除了存儲技術構建的湖底座以外,還包含一系列的數據入湖、數據出湖、數據管理和數據應用工具集,共同組成了數據湖解決方案。

五、總結

數據湖的概念最早由詹姆斯·迪克森在2010年提出,隨著2019年Iceberg、Hudi和Delta Lake等開源項目在國內流行起來。數據湖是一種多功能系統,能夠存儲各種類型的數據,包括結構化、半結構化和非結構化數據,具備高容量存儲和快速處理多種數據格式的能力。

與傳統的數據庫和數據倉庫不同,數據湖不僅可以保存原始數據,還能支持快速的查詢、數據分析和機器學習應用,幫助企業更有效地挖掘數據的潛力。數據湖由數據存儲架構和多種數據處理工具組成,而不是單一的獨立產品。

數據湖解決方案還包括ETL工具、元數據管理和數據分析工具,這些工具的使用確保了數據湖的高效管理和利用,防止其變成無序的“數據沼澤”。

在下一篇文章中,我們將深入探討市面上熱門的數據湖開源框架,以及這些開源框架是否能夠滿足數據湖的基本概念和功能要求。

六、參考資料

  • 從數據倉庫到數據湖(下):數據湖領域熱門的開源框架
  • 從數據庫到數據倉庫:數據倉庫導論
  • 開源框架DeltaLake、Hudi、Iceberg深度對比
  • 數據湖這個大坑,是怎么挖的?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44163.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44163.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44163.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[運維平臺]泛微運維平臺

運維平臺點擊登錄沒有反應,是因為H2數據庫損壞,H2數據庫在服務器異常重啟,磁盤滿等情況下容易損壞,請按照下面的步驟操作Linux: 運維平臺升級包https://www.weaver.com.cn/cs/monitorDownload.html 1)請停…

常見數據庫類型和選取詳解

數據庫是用于存儲、檢索和管理數據的系統。它們可以根據數據模型的不同被分類為不同類型。以下是一些常見的數據庫類型和它們的選取詳解: 1. 關系型數據庫(RDBMS) 特點: 使用表格(tables)來組織數據。基…

百日筑基第十六天-java多線程編程淺學一下4-各種線程池學習和使用

百日筑基第十六天-java多線程編程淺學一下4-各種線程池學習和使用 使用線程池 Java語言雖然內置了多線程支持,啟動一個新線程非常方便,但是,創建線程需要操作系統資源(線程資源,棧空間等),頻繁…

MQ四兄弟:如何保證消息順序性

在當今的分布式系統架構中,消息隊列(MQ)是不可或缺的組成部分。它們在確保系統組件之間高效通信方面發揮著關鍵作用。特別是在金融交易、物流跟蹤等對消息處理順序有嚴格要求的場景中,消息隊列的順序性保證顯得更為重要。接下來&a…

使用libguestfs掛載qcow2磁盤鏡像

掛載qcow2磁盤鏡像的第一種方法是使用 libguestfs,它提供了一系列工具來訪問和編輯 VM 磁盤鏡像。libguestfs 支持幾乎所有類型的磁盤鏡像,包括 qcow2。你可以像下面這樣,在Linux上安裝libguestfs工具集。 1、安裝guestmount工具 在基于 De…

主干網絡篇 | YOLOv5/v7 更換骨干網絡之 MobileNetV3 | 基于神經網絡搜索的輕量級網絡(2)

主干網絡篇 | YOLOv5/v7 更換骨干網絡之 MobileNetV3 | 基于神經網絡搜索的輕量級網絡 概述 YOLOv5和YOLOv7是目前主流的輕量級目標檢測模型,在速度和精度方面取得了良好的平衡。然而,傳統的YOLOv5/v7模型使用FPN和CSPNet等結構作為主干網絡&#xff0…

SMU Summer 2024 Contest Round 2

[ABC357C] Sierpinski carpet - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 思路:通過因為圖形的生成過程是完全一樣的。可以通過遞歸,不斷分形。函數process(x,y,k)定義為以坐標(x,y)為左上角,填充sqrt3(k)級的地毯。 int n; int c[800][800]; 默認全為…

【雜說咋說】近年來國土空間規劃行業人員轉行分析

這幾年,國土空間規劃行業的人員流動引起了不少關注。我們可以從幾個方面來看這些變化: 考公務員 許多從事國土空間規劃的專業人員選擇了考公務員。這種選擇相對穩定,不需要熬夜加班,工作環境也更為舒適。尤其是進入國家機關或住…

POSIX互斥鎖和條件變量

一.概述 1.POXIS介紹 POXIS是一種操作系統接口標準,全稱為“可移植操作系統接口”。 它最初由IEEE組織制定,目的是為了使不同的操作系統之間可以互相兼容。POSIX標準定義了一系列API(應用程序接口)和命令行工具,這些…

Mybatis核心問題總結

對MyBatis源碼的理解 ORM框架:CRUD操作 1。SQL解析: 映射文件、注解--》映射器解析 XMLMapperBuilder MapperAnnotationBuilder 2。SQL執行: SqlSession 接口--》Executor --》 SimpleExecutor ReuseExecutor 【Statement--JDBC】 3。結果映射&…

Go語言---Json

JSON (JavaScript Object Notation)是一種比XML 更輕量級的數據交換格式,在易于人們閱讀和編寫的同時,也易于程序解析和生成。盡管JSON是 JavaScript的一個子集,但 JSON采用完全獨立于編程語言的文本格式,且表現為鍵/值對集合的文…

【大模型LLM面試合集】大語言模型架構_layer_normalization

2.layer_normalization 1.Normalization 1.1 Batch Norm 為什么要進行BN呢? 在深度神經網絡訓練的過程中,通常以輸入網絡的每一個mini-batch進行訓練,這樣每個batch具有不同的分布,使模型訓練起來特別困難。Internal Covariat…

【C++高階】高效數據存儲:理解并模擬實現紅黑樹Map與Set

📝個人主頁🌹:Eternity._ ?收錄專欄?:C “ 登神長階 ” 🤡往期回顧🤡:了解 紅黑樹 🌹🌹期待您的關注 🌹🌹 ?模擬實現Map與Set 📒1.…

js ES6 part1

聽了介紹感覺就是把js在oop的使用 作用域 作用域(scope)規定了變量能夠被訪問的“范圍”,離開了這個“范圍”變量便不能被訪問, 作用域分為: 局部作用域、 全局作用域 1. 函數作用域: 在函數內部聲明的…

爬取天氣數據,利用Pyecharts作輪播圖

爬取網站鏈接:https://lishi.tianqi.com/xiamen/202312.html 爬取了廈門市2023年一整年的天氣數據,包括最高溫,最低溫,天氣,風力風向等 爬蟲代碼: import requests import pandas as pd import csv from…

UML建模案例分析-時序圖和類圖的對應關系

概念 簡單地說,類圖定義了系統中的對象,時序圖定義了對象之間的交互。 例子 一個電子商務系統,會員可通過電子商務系統購買零件。具體功能需求如下: 會員請求結賬時,系統驗證會員的賬戶是否處于登錄狀態&#xff1…

極狐GitLab 17.0 重磅發布,100+ DevSecOps功能更新來啦~【三】

GitLab 是一個全球知名的一體化 DevOps 平臺,很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中國的發行版,專門為中國程序員服務。可以一鍵式部署…

【基礎篇】1.8 C語言基礎(二)

2.9 預處理指令和宏定義 在STM32開發中,預處理和宏定義常用于配置硬件參數、啟用或禁用特定功能、以及優化代碼以適應不同的硬件配置或應用場景。通過合理地使用預處理和宏定義,我們可以編寫更加靈活、可配置和高效的代碼。 預處理指令如#include、#define等在C語言編程中起…

防火墻圖形化界面策略和用戶認證(華為)

目錄 策略概要認證概要實驗拓撲圖題目要求一要求二要求三要求四要求五要求六 策略概要 安全策略概要: 安全策略(Security Policy)在安全領域具有雙重含義。宏觀上,安全策略指的是一個組織為保證其信息安全而建立的一套安全需求、…

uniapp 微信小程序接入MQTT

MQTT安裝 前期準備 由于微信小程序需要wss,所以要有域名SSL證書 新建目錄/srv/mosquitto/config,/srv/mosquitto/config/cert 目錄/srv/mosquitto/config中新建配置文件mosquitto.conf,文件內容 persistence true persistence_location /m…