【大數據】一些基本概念

一、數據庫、數據倉庫、數據湖

在這里插入圖片描述

1.什么是數據庫 (Database, DB)

數據庫是指長期儲存在計算機中的有組織的, 可共享的數據集合
就是存儲數據的倉庫
數據庫有三個特點: 永久存儲, 有組織, 可共享

數據庫是一種結構化數據存儲技術,用于存儲和管理有組織的數據。數據庫通常使用關系型模型來組織數據,并使用SQL來查詢和操作數據。數據庫是用于處理事務性數據的最常見類型的存儲,適用于需要高度結構化和規范化的應用場景,例如企業管理系統、電子商務平臺等。

2.什么是數據倉庫(Data Warehouse)

數據倉庫是一個面向主題的、集成的、非易失的、隨著時間變化的,用于支持管理人員決策的數據集合。
數據倉庫是一種專門用于分析和報告的大型結構化數據存儲技術。與傳統數據庫不同,數據倉庫通常包含歷史記錄和大量冗余信息,以便支持復雜的分析查詢。它們通常是企業級解決方案,用于從各種源中采集和存儲數據,以便進行分析和報告。通常使用數據倉庫ETL工具將數據從多個源中提取并轉換為通用格式,然后將其加載到數據倉庫中,并使用OLAP工具進行多維分析。
在這里插入圖片描述

將數據經過數倉建模形成 ODS、DWD、DWS、DM 等不同數據層,每層都需要進行清洗、加工、整合等數據開發(ETL)工作,并最終加載到關系型數據庫中。
在這里插入圖片描述

3.什么是數據湖

數據湖是一種存儲理念,用于存儲各種原始數據。
數據湖是一種非結構化或半結構化大型數據存儲技術,用于存儲各種類型和格式的原始或未處理的數據。數據庫、數據倉庫和數據湖的區別之一在于,數據湖通常不需要預定義模式或架構,并且可以在需要時進行靈活地查詢和分析。數據湖也可以從多個源中采集和存儲數據,但它們通常不會在數據加載之前對其進行轉換。由于其靈活性和可擴展性,數據湖適用于大規模數據分析和機器學習等應用場景。
在這里插入圖片描述

數據湖三種格式:
Iceberg、Hudi和Delta是三個用于大數據存儲和處理的開源項目。它們都旨在提供更可靠、高效和可擴展的數據管理和分析解決方案。
在這里插入圖片描述

4.數據倉庫與數據湖的區別

在這里插入圖片描述

【注】寫入型schema” v.s.“讀取型schema”,其實本質上來講是數據schema的設計發生在哪個階段的問題。
“寫入型schema”背后隱含的邏輯是數據在寫入之前,就需要根據業務的訪問方式確定數據的schema,然后按照既定schema,完成數據導入,帶來的好處是數據與業務的良好適配;但是這也意味著數倉的前期擁有成本會比較高,特別是當業務模式不清晰、業務還處于探索階段時,數倉的靈活性不夠。
數據湖強調的“讀取型schema”,背后的潛在邏輯則是認為業務的不確定性是常態:我們無法預期業務的變化,那么我們就保持一定的靈活性,將設計去延后,讓整個基礎設施具備使數據“按需”貼合業務的能力。

二、關系型數據庫與非關系型數據庫

在這里插入圖片描述

1.關系型數據庫

1.1概念

關系型數據庫:指采用了關系模型來組織數據的數據庫。
關系模型指的就是二維表格模型,而一個關系型數據庫就是由二維表及其之間的聯系所組成的一個數據組織。
● 關系:一張二維表,每個關系都具有一個關系名,也就是表名。
● 元組:二維表中的一行,在數據庫中被稱為記錄。
● 屬性:二維表中的一列,在數據庫中被稱為字段。
● 域:屬性的取值范圍,也就是數據庫中某一列的取值限制。
● 關鍵字:一組可以唯一標識元組的屬性,數據庫中常稱為主鍵,由一個或多個列組成。
● 關系模式:指對關系的描述。其格式為:關系名 (屬性 1,屬性 2, … … ,屬性 N),在數據庫中成為表結構。

1.2.優勢與不足

優勢:

  1. 容易理解:二維表結構是非常貼近邏輯世界的一個概念,關系模型相對網狀、層次等其他模型來說更容易理解
  2. 使用方便:通用的 SQL 語言使得操作關系型數據庫非常方便
  3. 易于維護:豐富的完整性 (實體完整性、參照完整性和用戶定義的完整性) 大大減低了數據冗余和數據不一致的概率
    不足:
  4. 網站的用戶并發性非常高,往往達到每秒上萬次讀寫請求,對于傳統關系型數據庫來說,硬盤I/O是一個很大的瓶頸。
  5. 網站每天產生的數據量是巨大的,對于關系型數據庫來說,在一張包含海量數據的表中查詢,效率是非常低的。
  6. 在基于 web 的結構當中,數據庫是最難進行橫向擴展的,當一個應用系統的用戶量和訪問量與日俱增的時候,數據庫卻沒有辦法像web server和app server那樣簡單的通過添加更多的硬件和服務節點來擴展性能和負載能力。當需要對數據庫系統進行升級和擴展時,往往需要停機維護和數據遷移。
  7. 性能欠佳:在關系型數據庫中,導致性能欠佳的最主要原因是多表的關聯查詢,以及復雜的數據分析類型的復雜 SQL 報表查詢。為了保證數據庫的 ACID 特性,必須盡量按照其要求的范式進行設計,關系型數據庫中的表都是存儲一個格式化的數據結構。
    數據庫事務必須具備ACID特性,ACID分別是Atomic原子性,Consistency一致性,Isolation隔離性,Durability持久性。

1.3.當下流行的關系型數據庫

● Oracle
● Microsoft SQL Server
● MySQL
● PostgreSQL
● DB2
● Microsoft Access
● SQLite
● Teradata
● MariaDB(MySQL 的一個分支)
● SAP

2.非關系型數據庫

1.1概念
非關系型數據庫:指非關系型的,分布式的,且一般不保證遵循ACID原則的數據存儲系統。
非關系型數據庫結構:
非關系型數據庫以鍵值對存儲,且結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加一些自己的鍵值對,不局限于固定的結構,可以減少一些時間和空間的開銷。
1.2.優點與不足
優點:

  1. 用戶可以根據需要去添加自己需要的字段,為了獲取用戶的不同信息,不像關系型數據庫中,要對多表進行關聯查詢。僅需要根據id取出相應的value就可以完成查詢。
  2. 適用于SNS(Social Networking Services)中,例如 facebook,微博。系統的升級,功能的增加,往往意味著數據結構巨大變動,這一點關系型數據庫難以應付,需要新的結構化數據存儲。由于不可能用一種數據結構化存儲應付所有的新的需求,因此,非關系型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合。
    不足:
  3. 只適合存儲一些較為簡單的數據,對于需要進行較復雜查詢的數據,關系型數據庫顯得更為合適。
  4. 不適合持久存儲海量數據。
    1.3.分類
  5. 鍵值數據庫:Redis、Memcached、Riak
  6. 列族數據庫:Bigtable、HBase、Cassandra
  7. 文檔數據庫:MongoDB、CouchDB、MarkLogic
  8. 圖形數據庫:Neo4j、InfoGrid

三、OLAP與OLTP

數據處理大致可以分成兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)。
OLTP是傳統的關系型數據庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。
OLAP是數據倉庫系統的主要應用,支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。
OLTP 系統強調數據庫內存效率,強調內存各種指標的命令率,強調綁定變量,強調并發操作; OLAP 系統則強調數據分析,強調SQL執行市場,強調磁盤I/O,強調分區等。

1.什么是OLAP

OLAP(On-Line Analytical Processing)聯機分析處理
也稱為面向交易的處理過程,其基本特征是前臺接收的用戶數據可以立即傳送到計算中心進行處理,并在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一。應用在數據倉庫,使用對象是決策者。OLAP系統強調的是數據分析,響應速度要求沒那么高。
A是可分析性(Analysis),指用戶無需編程就可以定義新的專門計算,將其作為分析的一部 分,并以用戶所希望的方式給出報告;M是多維性(Multi—dimensional),指提供對多維視圖和分析;I是信息性(Information),指能及時獲得信息,并且管理大容量信息。

2.什么是OLTP

OLTP(On-Line Transaction Processing)聯機事務處理
它使分析人員能夠迅速、一致、交互地從各個方面觀察信息,以達到深入理解數據的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特征。主要應用是傳統關系型數據庫。OLTP系統強調的是內存效率,實時性比較高。

3.OLTP與OLAP之間的比較:

總得來說:
聯機分析處理(OLAP,On-line Analytical Processing),數據量大,DML少。使用數據倉庫模板。
聯機事務處理(OLTP,On-line Transaction Processing),數據量少,DML頻繁,并行事務處理多,但是一般都很短。使用一般用途或事務處理模板。
決策支持系統(DDS,Decision support system),典型的操作是全表掃描,長查詢,長事務,但是一般事務的個數很少,往往是一個事務獨占系統。

在這里插入圖片描述

四、數據源、數據元、元數據

1.數據源

數據源(Data Source):數據源是指存儲和提供數據的地方或系統。數據源可以是數據庫、文件系統、API、傳感器、網絡服務等。它是數據的來源,提供了訪問和讀取數據的接口。數據源可以是結構化的數據庫,也可以是非結構化的文件或流式數據。常見的數據源包括關系型數據庫(如MySQL、Oracle)、分布式文件系統(如HDFS、Amazon S3)以及實時流處理系統(如Apache Kafka)等。
如dlink中:
在這里插入圖片描述

2.數據元

據元(Data Element):數據元是指數據的基本單元,通常是指數據的最小、不可再分的組成部分。數據元可以是一個數據項、字段、屬性、列或其他類似的概念。例如,在關系型數據庫中,數據元可以是表的一列(字段);在文本文檔中,數據元可以是一個單詞或一個字符。數據元是組成數據的基本單位,它們的組合和關聯形成了更復雜的數據結構。
數據元一般來說由三部分組成:
● 對象類:思想、概念或真實世界中的事物的集合,它們具有清晰的邊界和含義,其特征和行為遵循同樣的規則。
● 特性:對象類中的所有成員共同具有的一個有別于其它的、顯著的特征。
● 表示:它描述了數據被表達的方式

3.元數據

概念:元數據(Metadata):元數據是關于數據的描述信息,它提供了關于數據的定義、結構、屬性、關系和其他相關信息的數據。元數據可以包括數據的名稱、類型、大小、創建時間、更新時間、所有者、數據源、數據質量等。
數據的作用可總結一下包括:描述、檢索、選擇、定位和關聯分析等
在這里插入圖片描述

五、物理備份與邏輯備份

物理備份和邏輯備份是兩種常見的數據備份方法,用于保護和恢復數據

1.物理備份

定義:物理備份是指直接備份存儲在磁盤或存儲介質上的原始數據副本。

它是對數據的二進制級別的備份,包括數據文件、操作系統文件、系統配置等。物理備份是一個底層備份方法,通常由數據庫管理系統(如MySQL、Oracle等)提供的工具或第三方備份工具執行。

使用場景: 物理備份速度快,適用于大規模的數據恢復和災難恢復,但對于特定的數據庫或應用程序進行單獨恢復或數據提取相對困難。使用工具:物理備份通常使用如 xtrabackup、RMAN等工具

2.邏輯備份

定義:邏輯備份是指將數據導出為可讀的邏輯格式(如SQL語句、CSV文件等),并備份到文件系統或存儲介質中。

使用場景:邏輯備份靈活,適用于特定的數據恢復和遷移需求。它可以選擇性地備份特定的表、數據集、視圖等,也可以進行數據轉換和格式轉換。常用的工具有 mysqldump、pg_dump

3.二者區別

在這里插入圖片描述

六、思考

1.數據庫從同構轉化為異構,或者從異構轉化為同構如何實現?MySQL->Mysql mysql-oracle ?
2.大數據量的數據備份遷移,怎么做,如何選擇備份策略,如何保證數據一致性?
3.數據檢驗的方式方法?

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

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

相關文章

微信小程序云開發快速入門(2/4)

前言 我們對《微信小程序云開發快速入門(1/4)》的知識進行回顧一下。在上章節我們知道了云開發的優勢以及能力,并且我們還完成了碼仔備忘錄的本地版到網絡版的改造,主要學習了云數據庫同時還通過在小程序使用云API直接操作了云數…

SciencePub學術| 智能計量類重點SCIE征稿中

SciencePub學術 刊源推薦: 智能計量類重點SCIE征稿中!信息如下,錄滿為止: 一、期刊概況: 智能計量類重點SCIE 【期刊簡介】IF:2.0-2.5,JCR3區,中科院4區; 【版面類型】正刊&#…

new BigDecimal(double val)注意事項 / JWT解析BigDecimal類型數據

前言: 公司項目中有一個板塊需要解析JWT令牌獲取載荷里面封裝的數據,遇到要解析一個BigDecimal類型的數據 問題發現過程: 正常來說,我們解析一個JWT令牌的步驟如下: public static Claims getDataFromToken(String tok…

極狐GitLab 企業級 CI/CD 規模化落地實踐指南(一)

目錄 template 引用,減少代碼冗余,增強 CI/CD 構建擴展性 問題 1:代碼冗余,低效實踐 問題 2:維護性難,工作量大 ? local ? file ? remote ? template 收益 1:一處修改,多…

TIOBE2023年8月榜單發布,Python超越老將C/C++蟬聯冠軍

TIOBE 編程社區指數是一個衡量編程語言受歡迎程度的指標,評判的依據來自世界范圍內的工程師、課程、供應商及搜索引擎,TIOBE 官網近日公布了 2023 年 8 月的編程語言排行榜。 此次的榜單中,Python依舊穩居第一,占比達到了13.33%。…

jpg圖片太大怎么壓縮?這樣做輕松壓縮圖片

圖片太大會給存儲、分享帶來麻煩,但其實現在壓縮圖片大小也不是什么難事,下面就給大家分享幾個一直用的圖片壓縮方法,包含批量壓縮、在線壓縮、免費壓縮等多種方式,大家按需自取哈~ 方法一:嗨格式壓縮大師 這是一個可…

Kotlin Executors線程池newSingleThreadExecutor單線程

Kotlin Executors線程池newSingleThreadExecutor單線程 import java.util.concurrent.Executorsfun main() {val mExecutorService Executors.newSingleThreadExecutor()for (i in 1..5) {mExecutorService.execute {println("seq-$i tid:${Thread.currentThread().threa…

typeScript 之 基礎

工具: PlayGround 源碼: GitHub TypeScript 變量聲明 typeScript中變量聲明注意: 開頭不能以數字開頭變量名稱可以包含數字和字母除了下劃線_和美元$符號外,不能包含其他任意特殊字符 聲明的結構: let 變量名: 類型…

面試經典150題——羅馬數字轉整數

羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符 數值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#x…

docker 學習-- 01 基礎知識

docker 學習-- 01 基礎知識 文章目錄 docker 學習-- 01 基礎知識1.前言1.1 docker 是什么1.2 docker優點1.2.1 統一開發和生產環境:1.2.2 高性能:1.2.3 更輕松的維護和拓展:1.2.4 更輕松的遷移: 1.3 docker缺點1.3.1 運行環境受限1.3.2 文件管理和網絡端…

item_sku-獲取sku詳細信息

一、接口參數說明: item_sku-獲取sku詳細信息,點擊更多API調試,請移步注冊API賬號點擊獲取測試key和secret 公共參數 請求地址: https://api-gw.onebound.cn/taobao/item_sku 名稱類型必須描述keyString是調用key(點擊獲取測試…

安全中間件的設計思路和簡單實踐

rasp 的侵入式特性和攔截特性導致開發和運維普通不太愿意配合,當生產環境出現問題時往往第一時間先把責任推給 rasp,逐漸的安全部門普遍只能把 rasp 設置為告警模式,而且越是大的集群攔截開的就越少,所以字節的 elkeid 和某外賣大…

P13-CNN學習1.3-ResNet(神之一手~)

論文地址:CVPR 2016 Open Access Repository https://arxiv.org/pdf/1512.03385.pdf Abstract 翻譯 深層的神經網絡越來越難以訓練。我們提供了一個殘差學習框架用來訓練那些非常深的神經網絡。我們重新定義了網絡的學習方式,讓網絡可以直接學習輸入信息與輸出信息…

Python-OpenCV中的圖像處理-圖像直方圖

Python-OpenCV中的圖像處理-圖像直方圖 圖像直方圖統計直方圖繪制直方圖Matplotlib繪制灰度直方圖Matplotlib繪制RGB直方圖 使用掩膜統計直方圖直方圖均衡化Numpy圖像直方圖均衡化OpenCV中的直方圖均衡化CLAHE 有限對比適應性直方圖均衡化 2D直方圖OpenCV中的2D直方圖Numpy中2D…

代碼隨想錄算法訓練營20期|第七天|哈希表part02|454.四數相加II ● 383. 贖金信 ● 15. 三數之和 ● 18. 四數之和 ● 總結

454.四數相加II 比較巧思的解法,先把nums1 和nums2的數兩兩相加,并存儲sum和次數 再在nums3和nums4里找對應和sum和為0的數值i,j Time: N^2 Space:N^2, 最壞情況下A和B的值各不相同,相加產生的數字個數為 n^2 class Solution {public int fo…

Spring AOP實踐:如何通過aop記錄日志?

目錄 一、依賴 二、自定義注解 三、切面 一、依賴 以SpringBoot工程為例&#xff0c;導入aop的依賴。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 二…

為什么要自動化Web測試?

Web自動化是更快地實現所需結果的較佳方式。自動化測試在市場上引起了巨大的轟動。此軟件測試過程可以讓您使用正確的自動化測試工具和技術集自動執行測試過程。我們執行它是為了檢查軟件應用程序是否具有完全按照我們希望它執行的方式執行的勇氣。 比以往更快地獲得反饋 自動化…

基于Promise.resolve實現Koa請求隊列中間件

本文作者為360奇舞團前端工程師 前言 最近在做一個 AIGC 項目&#xff0c;后端基于 Koa2 實現。其中有一個需求就是調用兄弟業務線服務端 AIGC 能力生成圖片。但由于目前兄弟業務線的 AIGC 項目也是處于測試階段&#xff0c;能夠提供的服務器資源有限&#xff0c;當并發請求資源…

kafka和rabbitmq之間的區別以及適用場景

Kafka 和 RabbitMQ 都是流行的消息傳遞系統&#xff0c;用于實現分布式系統中的消息傳遞、事件處理和數據流。它們在設計和適用場景上有一些不同&#xff0c;下面詳細介紹它們之間的區別和適用場景。 Kafka 特點和優勢&#xff1a; 高吞吐量&#xff1a; Kafka 的設計目標是實…

【Java】數據交換 Json 和 異步請求 Ajax

&#x1f384;歡迎來到邊境矢夢的csdn博文&#xff0c;本文主要講解Java 中 數據交換和異步請求 Json&Ajax 的相關知識&#x1f384; &#x1f308;我是邊境矢夢&#xff0c;一個正在為秋招和算法競賽做準備的學生&#x1f308; &#x1f386;喜歡的朋友可以關注一下&#…