hive數倉要點總結

1.OLTP和OLAP區別

OLTP(On-Line Transaction?Processing)即聯機事務處理,也稱為面向交易的處理過程,其基本特征是前臺接收的用戶數據可以立即傳送到計算中心進行處理,并在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一,特點是事務操作頻繁,數據量小。

OLAP(On-Line Analytical Processing)即聯機分析處理,支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。這類系統的特點是沒有事務性操作,主要是查詢操作,數據量大。

對比項目

OLTP

OLAP

功能

面向交易的事務處理

面向分析查詢

設計

面向業務

面向主題

數據

最新數據,二維數據

歷史數據,多維數據

存儲

M,G ( 存儲單位 )

T、P、E

響應時間

用戶

業務操作人員

管理決策人員

2.什么是數據倉庫

????? 數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、數據集成的(Integrated)、相對穩定(非易失)的(Non-Volatile)、反映歷史變化(時變)(Time Variant)的數據集合,用于支持管理決策(Decision Making Support)。

3.什么是維度分析

3.1什么是維度

維度就是看問題的角度,給你一個數據表,怎么分析,怎么看就是屬于維度范疇

比如2025年的訂單數據,怎么分析,可以從時間(月份)分析,商品質量分析,用戶分析,這個就是維度

維度分為定性維度定量維度兩種,定性維度就是字符類型的特征,比如區域維度包括全國各省份;定量維度就是數值類型的特征,如價格區間、銷量區間等,如價格區間維度分為0--100、100-1000兩個區間,可以按價格區間維度來對指標進行分析.

3.2什么是指標

指標就是從維度方向得到的數據進行進一步考量產生的度量值,常見的比如count(),sum(),max()等等.

指標分為絕對數值相對數值,絕對數值反映具體的大小和多少,如價格、銷量、分數等;相對數值反映一定的程度,如及格率、購買率、漲幅等。

綜上:維度分析就是針對一個主題,,從不同維度進行統計分析,從而得到各種指標的過程

4.什么是維度分層

通常在分析結果中首先看到的是一個總數,比如全年課程購買量,然后會詳細去看每個季度、每個月的課程購買量,全年、季度、月這些屬于時間維度的一個層次,年、季度、月是這個層次的三個級別;再比如按地區分析課程購買量,全國、省、市、縣屬于地區維度的一個層次,層次中共有四個級別。

相當于將維度進行細分。細分兩層,則維度包含一個層次,多個級別。 細分三層,則維度包含多個層次,多個級別。

eg:

時間維度:

一個層次四個級別:年、月、天、小時

課程維度:

課程名稱:只有一個級別,每門課程的名稱

課程分類:兩個級別,大類和小類

課程難度:只有三個級別,簡單、一般、難

課程等級:只有三個級別,初、中、高

地區維度:

一個層次三個級別:省、市、縣

5.什么是下鉆,上卷

獲取高級別的匯總信息的過程叫上卷,把獲取低級別的明細信息的過程叫下鉆,比如:課程訪問量分析,時間維度有四個級別,分別是年、月、天、小時,現在我們某個級別分析每天的課程訪問量,比如按天分析課程訪問量,此時我們可以按小時下鉆分析,得出一天內每小時的課程訪問量,也可以按月上卷,得到月度的課程訪問量。

下鉆維度:

天、小時

上卷維度:

年、月

6.什么是數倉建模?建模種類有哪些?

數倉建模簡單來講就是在hive中建表,建表思路和數倉怎么去設計的方案。兩種:

三范式建模法:基于減少數據冗余

?????定義:要求一個數據庫表內的每一個數據項都是不可再分割的原子數據項,并確保每一個表只圍繞一個主題,且表中的字段都依賴于主鍵。

  • 優點
    • 減少數據冗余
    • 提高數據一致性:由于數據的更新只需在一個地方進行,然后通過關聯關系自動反映到其他相關表中,從而保證了數據的一致性。例如,當員工的部門發生變更時,只需在員工部門信息表中更新一次,其他相關表中的員工部門信息就會通過關聯關系自動更新。

維度建模法:基于分析

????? 維度數據模型應用于自下向上的數據倉庫架構。簡稱DM(Dimensional modeling),維度數據模型是一種趨向于支持最終用戶對數據倉庫進行查詢的設計技術,是圍繞性能和易理解性構建的。維度模型是按照用戶看待或分析數據的角度來組織數據。

??????維度建模的兩個核心概念:事實表和維度表

7.什么是事實表和維度表?

事實表:

????? 記錄了特定事件的數字化信息,一般由數值型數字和指向維度表的外鍵組成。事實表的設計依賴于業務系統,事實表的數據就是業務系統的指標數據。數據分析的實質就是基于事實表開展的計算操作。

分類:

  1. 事務事實表:記錄的事務層面的事實,保存的是最原子的數據,也稱“原子事實表”或“交易事實表”。事務事實表中的數據在事務事件發生后產生,數據的粒度通常是每個事務一條記錄。一旦事務被提交,事實表數據被插入,數據就不再進行更改,其更新方式為增量更新。溝通中常說的事實表,大多指的是事務事實表。
  2. 周期快照事實表:(加快查詢速率)

    Periodicsnapshot fact table,周期快照事實表以具有規律性的、可預見的時間間隔來記錄事實,時間間隔如每天、每月、每年等等。典型的例子如銷售日快照表、庫存日快照表等。

    想象以下場景,需要統計一個季度的商品成交量怎么去做?如果用一個季度內的事實事務表進行計算,雖然可以得出結果但是效率太低,在實際生產中并不可行,因此,需要定期對指定的度量進行整合,作為周期快照表用于下游應用。一般設計事實表時,事務事實表和周期快照表是成對設計的,大部分的周期表由事務表加工產生,還有部分特殊數據是直接應用系統產生(如訂單評價)。

  3. 累積快照事實表:

    Accumulatingsnapshot fact table,累積快照事實表和周期快照事實表有些相似之處,它們存儲的都是事務數據的快照信息。但是它們之間也有著很大的不同,周期快照事實表記錄的確定的周期的數據,而累積快照事實表記錄的不確定的周期的數據。

    累積快照事實表代表的是完全覆蓋一個事務或產品的生命周期的時間跨度,它通常具有多個日期字段,用來記錄整個生命周期中的關鍵時間點。例如訂單累計快照事實表會有付款日期,發貨日期,收貨日期等時間點。

特點

事務事實

周期快照事實

累積快照事實

時間/時期

時間

時期

時間跨度較短的多個時點

粒度

每行代表一個事務事件

每行代表一個時間周期

每行代表一個業務周期

事實表加載

新增

新增

新增和修改

事實表更新

不更新

不更新

新事件產生時更新

時間維

業務日期

時期末

多個業務過程的完成日期

事實

事務活動

時間周期內的績效

限定多個業務階段內的績效

維度表:

???? 在進行事實表的統計分析時,用到的外鍵(其他表的主鍵),這個其他表就是維度表,維度表不一定存在,而維度一定存在。

??? 分類:

  1. 高基數維度數據:數據量大,而且表數據經常變化,一般是用戶資料表、商品資料表類似的表。
  2. 低基數維度數據:數據量小,而且不經常變化一般是配置表,比如枚舉值對應的中文含義,或者日期維表、地理維表等。

注:基數指的是一個字段中不同值的個數,比如主鍵列具有唯一值,所以具有最高的基數,而性別枚舉值(日期、地區等)這樣的列的基數就很低。

8.有哪些維度建模中建模方法?

1.星型模型:

????????? 是一種多維的數據關系。一個事實表為中心,多個維度表環繞周圍。一個星型模型中可以有一個或多個事實表,每個事實表可以引用任意數量的維度表。

2.雪花模型:(維護不便,sql分析難度加大)(生產中盡量減少,去優化它們)

?????????當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,就像多個雪花連接在一起,故稱雪花模型。雪花模型是對星型模型的擴展,它對星型模型的維表進一步層次化,原有的各維表可能被擴展為小的事實表,形成一些局部的 "層次 " 區域,這些被分解的表都連接到主維度表而不是事實表。

模型之間共享,維度一樣的可以合成一個

9.什么是漸變維(SCD)

??????維度可以根據變化劇烈程度主要分為無變化維度變化維度。例如一個人的相關信息,身份證號、姓名和性別等信息數據屬于不變的部分;而婚姻狀態、工作經歷、工作單位和培訓經歷等屬于可能會變化的字段。

????? 為了減少維度變化帶來的分析誤差,出現了SCD

分類:

1.SCD1(緩慢漸變類型1)

??? 通過更新維度記錄直接覆蓋已存在的值。不維護記錄的歷史。一般用于修改錯誤的數據,即歷史數據就是錯誤數據,除此沒有他用

總結:將錯誤數據重寫

2.SCD2(緩慢漸變類型2)

????在源數據發生變化時,給維度記錄建立一個新的“版本”記錄,從而維護維度歷史。SCD2不刪除、不修改已存在的數據。SCD2也叫拉鏈表

????通過起始時間(valid From)來標識,Valid To(封鏈時間)為 NULL 的標識當前數據,也可以用2999,3000,9999等等比較大的年份。數倉內部需要保持統一。每個版本都會產生一行新的數據。eg:

總結:形成拉鏈表維護數據,適用保存歷史,會造成冗余

3.SCD3(緩慢漸變類型3)

??? 修改數據時去增加列(修改的字段),弊端為維護麻煩,需次次修改表結構(增加列)

10.為什么要數倉分層?怎么分

????? 為了自己的數據能夠有秩序地流轉,數據的整個生命周期能夠清晰明確被設計者和使用者感知到。

  1. 清晰數據結構:每一個數據分層都有它的作用域和職責,在使用表的時候能更方便地定位和理解。
  2. 復雜問題簡單化:將一個復雜的任務分解成多個步驟來完成,每一層解決特定的問題。
  3. 便于維護:當數據出現問題之后,可以不用修復所有的數據,只需要從有問題的步驟開始修復。
  4. 減少重復開發:規范數據分層,開發一些通用的中間層數據,能夠減少重復開發的工作量。
  5. 高性能:數據倉庫的構建將大大縮短獲取信息的時間,數據倉庫作為數據的集合,所有的信息都可以從數據倉庫直接獲取,尤其對于海量數據的關聯查詢和復雜查詢,所以數據倉庫分層有利于實現復雜的統計需求,提高數據統計的效率。

分層方法:

  1. 源數據ODS)

此層數據無任何更改,直接沿用外圍系統數據結構和數據,不對外開放;為臨時存儲層,是接口數據的臨時存儲區域,為后一步的數據處理做準備。

???? 2.數據倉庫層DW)

DW 層的數據應該是一致的、準確的、干凈的數據,即對源系統數據進行了清洗(去除了雜質)后的數據。

此層可以細分為三層:

明細層DWD(Data Warehouse Detail):存儲明細數據,此數據是最細粒度的事實數據。該層一般保持和ODS層一樣的數據粒度,并且提供一定的數據質量保證。同時,為了提高數據明細層的易用性,該層會采用一些維度退化手法,將維度退化至事實表中,減少事實表和維表的關聯。

中間層DWM(Data WareHouse Middle):存儲中間數據,為數據統計需要創建的中間表數據,此數據一般是對多個維度的聚合數據->(周期快照事實表),此層數據通常來源于DWD層的數據。

業務層DWS(Data WareHouse Service):存儲寬表數據,此層數據是針對某個業務領域的聚合數據,應用層的數據通常來源與此層,為什么叫寬表,主要是為了應用層的需要在這一層將業務相關的所有數據統一匯集起來進行存儲,方便業務層獲取。此層數據通常來源與DWD和DWM層的數據。

在實際計算中,如果直接從DWD或者ODS計算出寬表的統計指標,會存在計算量太大并且維度太少的問題,因此一般的做法是,在DWM層先計算出多個小的中間表,然后再拼接成一張DWS的寬表。由于寬和窄的界限不易界定,也可以去掉DWM這一層,只留DWS層,將所有的數據在放在DWS亦可。

???? 3.數據DA)

前端應用直接讀取的數據源;根據報表、專題分析的需求而計算生成的數據。

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

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

相關文章

【實戰手冊】8000w數據遷移實踐:MySQL到MongoDB的完整解決方案

?? 本文將帶你深入解析大規模數據遷移的實踐方案,從架構設計到代碼實現,手把手教你解決數據遷移過程中的各種挑戰。 ??博主其他匠心之作,強推專欄: 小游戲開發【博主強推 匠心之作 拿來即用無門檻】文章目錄 一、場景引入1. 問題背景2. 場景分析為什么需要消息隊列?為…

運行小程序需要選擇什么配置的服務器

主要是看有多少人瀏覽,如果是每天有幾十個人瀏覽,通常2核或者4核就可以滿足需求,內存的話建議4g或者8g,足夠的內存可以使服務器同時處理多個請求,避免因內存不足導致的卡頓或程序崩潰。 硬盤存儲方面,50GB…

基于SpringBoo的地方美食分享網站

作者:計算機學姐 開發技術:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源碼”。 專欄推薦:前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄:…

Solidity私有函數和私有變量區別,私有變量可以被訪問嗎

web3面試題 私有函數和私有變量區別,私有變量可以被訪問嗎 ChatGPT said: 在 Web3 開發,尤其是使用 Solidity 編寫智能合約時,關于私有函數和私有變量的區別是常見的面試題。下面是詳細解析: ? 私有函數(Private Fu…

mongodb 安裝配置

1.下載 官網下載地址:MongoDB Community Download | MongoDB 2.使用解壓包 解壓包安裝:https://pan.baidu.com/s/1Er56twK9UfxoExuCPlJjhg 提取碼: 26aj 3.配置環境: (1)mongodb安裝包位置: &#xf…

多模態大語言模型arxiv論文略讀(十九)

MLLMs-Augmented Visual-Language Representation Learning ?? 論文標題:MLLMs-Augmented Visual-Language Representation Learning ?? 論文作者:Yanqing Liu, Kai Wang, Wenqi Shao, Ping Luo, Yu Qiao, Mike Zheng Shou, Kaipeng Zhang, Yang Yo…

[LeetCode 45] 跳躍游戲2 (Ⅱ)

題面: LeetCode 45 跳躍游戲2 數據范圍: 1 ≤ n u m s . l e n g t h ≤ 1 0 4 1 \le nums.length \le 10^4 1≤nums.length≤104 0 ≤ n u m s [ i ] ≤ 1000 0 \le nums[i] \le 1000 0≤nums[i]≤1000 題目保證可以到達 n u m s [ n ? 1 ] nums[…

前端面試寶典---閉包

閉包介紹 使用閉包: 在函數內聲明一個變量,避免外部訪問在該函數內再聲明一個函數訪問上述變量(閉包)返回函數內部的函數使用完畢建議閉包函數null;譯放內存 function createCounter() {let count 0;return function () {coun…

GPT4O畫圖玩法案例,不降智,非dalle

網址如下: 玩法1:吉卜力(最火爆) 提示詞:請將附件圖片轉化為「吉卜力」風格,尺寸不變 玩法2:真人繪制 提示詞:創作一張圖片,比例4:3,一個20歲的中國女孩…

4.12~4.14【Q】cv homework6

我正在寫GAMES101作業6,在這段代碼中,我十分想知道inline Intersection Triangle::getIntersection(Ray ray) 是由哪個函數,哪段代碼調用的?什么是Inline?詳細解釋,越細節越好 我正在寫GAMES101作業6&…

MATLAB雙目標定

前言: 現在有許多雙目攝像頭在出廠時以及標定好,用戶拿到手后可以直接使用,但也有些雙目攝像頭在出廠時并沒有標定。因而這個時候就需要自己進行標定。本文主要介紹基于matlab工具箱的自動標定方式來對雙目相機進行標定。 1、MATLAB工具箱標…

visual studio 常用的快捷鍵(已經熟悉的就不記錄了)

以下是 Visual Studio 中最常用的快捷鍵分類整理,涵蓋代碼編輯、調試、導航等核心場景: 一、生成與編譯 ?生成解決方案 Ctrl Shift B 一鍵編譯整個解決方案,檢查編譯錯誤(最核心的生成操作)?編譯當前文件 Ctrl F…

Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

今天寫項目的時候碰到一個報錯,在網上查找到了解決方法,這里備份一下。防止下次再次遇到 原文章鏈接:Sass import rules are deprecated and will be removed in Dart Sass 3.0.0. 報錯內容如下: Deprecation Warning: Sass i…

【QT】QWidget 概述與核心屬性(API)

🌈 個人主頁:Zfox_ 🔥 系列專欄:Qt 目錄 一:🔥 控件概述 🦋 控件體系的發展階段 二:🔥 QWidget 核心屬性 🦋 核心屬性概覽🦋 用件可用&#xff08…

Redis 在處理并發請求時,如何保證高效性和數據一致性

1. 單線程模型(核心命令處理) 單線程優勢:Redis 的核心命令處理是單線程的(基于內存操作,避免多線程競爭),所有命令按順序執行,天然避免了多線程的鎖競爭和上下文切換開銷。非阻塞 …

flutter-Text等組件出現雙層黃色下劃線的問題

文章目錄 1. 現象2. 原因3. 解決方法 1. 現象 這天我正在寫Flutter項目的頁面功能,突然發現我的 Text 文字出現了奇怪的樣式,具體如下: 文字下面出現了雙層黃色下劃線文字的空格變得很大,文字的間距也變得很大 我百思不得其解&a…

cursor+高德MCP:制作一份旅游攻略

高德開放平臺 | 高德地圖API (amap.com) 1.注冊成為開發者 2.進入控制臺選擇應用管理----->我的應用 3.新建應用 4.點擊添加Key 5.在高德開發平臺找到MCP的文檔 6.按照快速接入的步驟,進行操作 一定要按照最新版的cursor, 如果之前已經安裝舊的版本卸載掉重新安…

使用 IP 代理改 IP 后注意事項如何防封號

在使用一鍵換IP軟件輔助網絡營銷賬號切換時,需注意以下關鍵事項以確保賬號安全并降低封號風險。 一、IP有效性及質量驗證 確保更換的IP地址有效且質量高,低質量或失效的IP可能導致賬號存活時間縮短。優先選擇動態住宅IP(如“兔子IP代理”提…

qt designer 創建窗體選擇哪種屏幕大小

1. 新建窗體時選擇QVGA還是VGA 下面這個圖展示了區別 這里我還是選擇默認,因為沒有特殊需求,只是在PC端使用

數據可視化 —— 折線圖應用(大全)

一、導入需要的庫 # Matplotlib 是 Python 最常用的繪圖庫,pyplot 提供了類似 MATLAB 的繪圖接口 import matplotlib.pyplot as plt import numpy as np import pandas as pd 二、常用的庫函數 plt.plot(x軸,y軸):plot()是畫折線圖的函數。 plt.xlabe…