大數據面試題之數倉(2)

目錄

維度表和事實表的區別??

什么是ER模型??

OLAP、OLTP解釋(區別)三范式是什么,舉些例子?

維度設計過程,事實設計過程?

維度設計中有整合和拆分,有哪些方法,并詳細說明?

事實表設計分幾種,每一種都是如何在業務中使用?

單事務事實表、多事務事實表區別與作用?

說下一致性維度、一致性事實、總線矩陣?

從ODS層到DW層的ETL,做了哪些工作??

數據倉庫與(傳統)數據庫的區別??

數據質量是怎么保證的,有哪些方法保證?

怎么衡量數倉的數據質量,有哪些指標?

增量表、全量表和拉鏈表?


維度表和事實表的區別??

維度表和事實表是數據倉庫設計中的兩個核心概念,它們在數據倉庫架構中扮演著不同的角色,服務于不同的目的。以下是它們的主要區別:

維度表(Dimension Table)

  1. 描述性屬性:維度表包含用于描述數據上下文的信息,比如時間、地點、產品、客戶等。這些信息幫助分析人員從多個角度(維度)理解數據。
  2. 寬而淺:維度表通常有很多列(屬性),但行數相對較少。例如,一個時間維度表可能包含年、月、日、星期等列,但是相對于事實表,其行數是有限的。
  3. 高冗余:為了便于查詢和提高效率,維度表中可能存在一定的數據冗余。例如,產品名稱可能會在多個行中重復出現,以確保每個相關的事實記錄都能直接關聯到完整的維度信息。
  4. 緩慢變化維:維度表還處理緩慢變化維度的問題,即隨著時間推移,維度屬性可能會發生變化,需要設計策略來管理這種變化,如類型1(直接覆蓋)、類型2(增加新行記錄變化)或類型3(添加額外列存儲歷史狀態)。

事實表(Fact Table)

  1. 度量值:事實表存儲的是業務事件的量化度量,比如銷售額、訪問次數、訂單數量等。這些度量值是分析的主要對象。
  2. 長而深:與維度表相反,事實表通常有較少的列(主要是度量值和外鍵),但行數非常多,隨著業務活動的增長而快速增長。
  3. 關聯維度:事實表通過外鍵與維度表關聯,每個事實記錄都關聯到一個或多個維度,這樣就可以從不同維度分析度量值。
  4. 粒度:事實表的設計粒度(記錄級別的細節程度)是非常關鍵的,可以是交易級、日志級、匯總級等,決定了可以進行分析的詳細程度和效率。

總結
維度表為分析提供視角和背景信息,事實表則記錄了實際發生的業務活動和度量。兩者相結合,通過星型或雪花型模式連接,形成了數據倉庫的基礎,使得用戶能夠快速高效地對大量數據進行多維度分析和報告生成。在數據倉庫的設計和實施過程中,明確區分和合理設計這兩類表是至關重要的。

什么是ER模型??

ER模型,全稱為實體-關系模型(Entity-Relationship Model),是一種概念數據模型,廣泛應用于數據庫設計中,用以描述現實世界中的數據結構。ER模型由Peter Chen于1976年提出,它提供了一種不受任何特定數據庫管理系統(DBMS)約束的、面向用戶的表達方法,使得設計人員和非技術用戶能夠有效地溝通和理解數據需求。

ER模型的核心組成部分包括:

1、實體(Entity):實體代表現實世界中可區分的事物或概念,比如人、地點、事件或對象。在數據庫中,實體通常轉化為表格的形式。
2、屬性(Attribute):屬性是描述實體特征的具體細節,例如,一個人實體可能有姓名、年齡、地址等屬性。
3、聯系(Relationship):聯系表示實體之間的關聯方式,它可以是一對一、一對多或多對多的關系。例如,一個學生(實體)可以注冊多個課程(實體),而一門課程也可以被多個學生注冊,這就表示了一種多對多的聯系。
ER模型通過實體-聯系圖(E-R Diagram)來視覺化表示這些概念,圖中使用矩形表示實體,橢圓或菱形表示屬性,而菱形則用來表示實體間的聯系類型,并用連線將它們連接起來,標明關系的名稱和 cardinality(基數),比如“一個學生參加多個課程”。

ER模型在數據庫設計的早期階段,即概念設計階段,發揮著關鍵作用。它幫助設計者理解并記錄數據需求,隨后這些需求會被轉換為邏輯數據模型(如關系模型),進一步細化為物理數據模型,最終實現為具體的數據庫結構。由于其直觀且易于理解的特點,ER模型成為了數據庫設計和開發過程中不可或缺的工具。

OLAP、OLTP解釋(區別)三范式是什么,舉些例子?

OLAP(聯機分析處理)和OLTP(聯機事務處理)是數據庫和數據處理領域的兩種主要應用場景,它們有著不同的設計目標和應用場景。

OLAP(聯機分析處理)
?1) 目標:OLAP系統主要用于支持復雜的分析查詢,如趨勢分析、數據挖掘、報表生成等,幫助決策者進行業務洞察和戰略規劃。
?2) 特點:

  • 查詢復雜,涉及大量數據的聚合、分組和鉆取操作。
  • 數據更新頻率低,通常數據是定期加載或更新。
  • 使用星型或雪花型模型,數據通常是去范式化的,以優化查詢性能。
  • 面向市場和決策支持,提供歷史數據的多維度視圖。

OLTP(聯機事務處理)
?1) 目標:OLTP系統專注于處理日常業務操作,如訂單處理、賬戶轉賬、庫存管理等,保證數據的即時性和準確性。
?2) 特點:

  • 高并發,處理簡單而頻繁的事務,如增刪改查操作。
  • 需要高度的事務一致性、隔離性和持久性(ACID屬性)。
  • 數據庫設計遵循范式化原則,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF),以減少數據冗余和提高數據完整性。
  • 實時性要求高,對響應時間敏感。

三范式(以第三范式為例)
數據庫設計的三范式是為了減少數據冗余、提高數據的一致性和完整性。第三范式(3NF)要求:

  • 滿足第二范式(2NF),即非主屬性完全依賴于任何一個候選鍵。
  • 非主屬性之間相互獨立,沒有傳遞依賴。也就是說,如果非主屬性A依賴于非主屬性B,而B又依賴于主鍵,那么這種依賴關系需要消除。

例子
OLAP例子

  • 一個零售公司的數據倉庫用于分析去年各季度不同地區的銷售情況,包括按產品類別、時間序列的銷售額分析,以及促銷活動對銷量的影響等。

OLTP例子

  • 在線購物平臺的訂單系統,處理用戶的商品選購、支付、訂單確認等即時交易操作,確保每筆交易的準確無誤,并實時更新庫存信息。

第三范式(3NF)例子
假設有一個訂單管理系統的數據庫,其中包含訂單表(Order)、產品表(Product)和客戶表(Customer)。

  • 訂單表(Order)有訂單ID(主鍵)、客戶ID(外鍵)、產品ID(外鍵)和數量等字段。這里,訂單ID直接關聯訂單詳情,而客戶ID和產品ID分別指向客戶表和產品表,避免了在訂單表中直接存儲客戶和產品的詳細信息,減少了數據冗余,符合3NF的要求。如果訂單表還包含了一個字段記錄客戶的地址,但由于地址信息實際上是由客戶ID確定的(地址依賴于客戶,客戶再依賴于訂單ID),這將違反3NF,因為出現了傳遞依賴。正確的做法是在客戶表中存儲地址信息。

維度設計過程,事實設計過程?

維度設計中有整合和拆分,有哪些方法,并詳細說明?

維度設計中的整合和拆分是構建高效數據倉庫的關鍵策略,旨在優化查詢性能、簡化數據管理并適應復雜的業務分析需求。以下是一些常用的整合與拆分方法:

維度整合
1、層次化整合:

  • 將具有層次關系的維度屬性組織在一起,如地理位置維度可以整合國家、州/省、城市等層次。這種整合有利于在不同層級上進行數據聚合和深入分析。

2、一致性維度:

  • 在不同事實表之間共享相同的維度表,確保跨業務領域的數據一致性。例如,客戶維度表可能被銷售、服務和營銷等多個事實表引用,以維持客戶信息的一致性。

3、多值維度處理:

  • 當一個事實記錄與多個維度值相關聯時,可以采用橋接表或數組等形式整合這些多值關系,確保數據的完整性。

維度拆分
水平拆分

  • 原則:根據維度的不同分類屬性或類型進行拆分,解決特定維度屬性差異較大或業務關聯程度不同的問題。
  • 依據:維度的屬性差異情況和業務關聯程度指導拆分決策。
  • 應用:例如,將大型客戶維度表按行業或地區拆分為多個小表,以減小單表體積,提升查詢效率。

垂直拆分
?目的:將大而復雜的維度表分解為多個小表,以提高查詢性能和管理的便捷性。
方法:

  • 主從維度:將穩定、產出時間早、使用頻繁的屬性放在主維表中,而變化快、產出時間較晚、使用頻率較低的屬性放在從維表中。
  • 擴展性考慮:通過垂直拆分,可以更容易地擴展表結構,適應未來變化的業務需求。

維度變化的解決方案(緩慢變化維)
緩慢變化維:處理維度屬性隨時間變化的情況,如客戶地址變更。

  • 類型1:直接覆蓋舊值。
  • 類型2:為每個變化點創建新的行記錄,保留歷史版本。
  • 類型3:在維度表中增加額外列存儲歷史狀態。

快照維表:定期保存維度的完整快照,適用于需要保留歷史記錄的場景。
極限存儲和微型維度:針對特殊場景的優化策略,前者處理極端大的維度表,后者處理非常小且變化頻繁的維度。
這些方法的運用需要根據具體的數據倉庫規模、查詢需求、性能要求和維護成本綜合考慮,靈活選擇和應用。

事實表設計分幾種,每一種都是如何在業務中使用?

事實表設計主要分為三種類型:事務事實表(Transaction Fact Table)、周期快照事實表(Periodic Snapshot Fact Table)和累積快照事實表(Accumulating Snapshot Fact Table)。每種類型在業務中的使用方式如下:

一、事務事實表(Transaction Fact Table)
1. 定義與特點

  • 也稱為原子事實表,描述業務過程,跟蹤控件或時間上某點的度量事件,保存的是最原子的數據。
  • 類似MySQL的binlog日志,每次相關的change都會記錄下來,生成一行新的數據。

2. 業務使用

  • 記錄業務細節:事務事實表用于詳細記錄每個業務事務的詳細信息,如訂單的下單、支付、發貨等。
  • 支持實時分析:由于記錄了最原子的數據,事務事實表支持對業務過程的實時分析和跟蹤。
  • 復雜事件分析:對于需要分析復雜業務過程(如用戶行為路徑)的場景,事務事實表提供了豐富的數據基礎。

二、周期快照事實表(Periodic Snapshot Fact Table)
1. 定義與特點

  • 以一個周期為時間間隔來記錄事實,周期可以是每天、每周、每月、每年等。
  • 主要記錄某個時間段內一些聚集事實值或狀態度量。

2. 業務使用

  • 周期性數據分析:周期快照事實表適用于分析具有周期性特征的數據,如每日銷售額、每周庫存量等。
  • 趨勢分析:通過對比不同周期的數據,可以分析業務趨勢,如銷售額的月度變化趨勢。
  • 性能評估:在評估系統或業務性能時,周期快照事實表提供了關鍵的時間點數據支持。

三、累積快照事實表(Accumulating Snapshot Fact Table)
1. 定義與特點

  • 用來描述過程開始和結束之間的關鍵步驟事件,覆蓋過程的整個生命周期。
  • 通常具有多個日期字段來記錄關鍵時間點,并隨著過程的變化而更新記錄。

2. 業務使用

  • 過程分析:累積快照事實表特別適用于分析業務過程的各個階段,如訂單從下單到支付的整個流程。
  • 時間間隔計算:通過記錄每個關鍵步驟的時間點,可以方便地計算不同業務過程之間的時間間隔,如訂單處理時間、物流配送時間等。
  • 全量數據保存:累積快照事實表還常用于保存全量數據,為數據探查、統計分析、數據挖掘等提供全面的數據支持。

總結
事實表設計的三種類型各有特點,在業務中的使用方式也各不相同。事務事實表適用于詳細記錄業務事務的詳細信息;周期快照事實表適用于分析具有周期性特征的數據;累積快照事實表則特別適用于分析業務過程的各個階段和時間間隔。在實際應用中,可以根據業務需求和數據特點選擇合適的事實表類型進行設計。

單事務事實表、多事務事實表區別與作用?

單事務事實表和多事務事實表是數據倉庫中維度建模的兩種不同策略,它們主要在數據范圍、復雜性、應用場景以及設計和維護要求上有所區別:

單事務事實表
?1) 數據范圍:專注于單一類型的事件或業務過程,如訂單、點擊流記錄或庫存變動等。每個業務過程對應一個獨立的事實表,專門記錄該過程中的度量信息。
?2) 復雜性:相比多事務事實表,設計和維護較為簡單,因為它們集中于單一業務領域,維度和度量的關聯更為直接和明確。
?3) 應用場景:適用于需要深入分析特定業務活動細節的場景,比如詳細分析訂單處理過程中的各種指標。
?4) 作用:提供高度詳細的業務過程數據視圖,支持高度針對性的查詢和報告需求,便于追蹤和理解單個業務流程的績效。
多事務事實表
?1) 數據范圍:整合了多種類型的事件或業務過程在同一張事實表中,涵蓋了多個相關但可能不同的業務活動。
?2) 復雜性:設計更為復雜,需要仔細規劃如何統一不同業務過程的度量和維度,以避免數據冗余和保持數據一致性。
?3) 應用場景:適用于需要跨業務領域進行綜合分析的場景,如分析某段時間內所有銷售相關活動的整體表現,包括訂單、退貨、優惠使用等。
?4) 作用:為用戶提供一個跨業務過程的全局視圖,便于進行高層次的匯總分析和趨勢發現,支持更廣泛的業務決策需求。
選擇依據
選擇單事務還是多事務事實表主要取決于業務需求、數據分析的目標、數據的可用性以及下游用戶的具體使用情況。如果業務過程之間度量和維度相似且分析需求經常涉及跨過程的綜合視圖,多事務事實表可能是更好的選擇。反之,如果需要深度分析單一業務過程的細節,單事務事實表則能提供更精細的數據支持。此外,設計時還需考慮數據冗余、查詢性能、維護成本等因素。

說下一致性維度、一致性事實、總線矩陣?

在數據倉庫和商業智能領域,"一致性維度"、"一致性事實"和"總線矩陣"是構建和維護企業級數據倉庫的重要概念,它們有助于確保數據的一致性和可復用性,促進數據集成和標準化。以下是這三個概念的詳細說明:

一致性維度
定義:一致性維度是指在整個數據倉庫體系中,對于相同業務實體的描述采用統一的維度表和維度模型。這意味著無論哪個數據集市或哪個業務領域的事實表引用某個維度(如時間、產品、客戶等),都使用同一個維度表作為參照,保證了維度屬性的定義、層次結構和數據質量的一致性。

優點:

  • 減少數據冗余和不一致性。
  • 提高數據查詢和分析的準確性和可靠性。
  • 簡化維護工作,當維度信息發生變化時,只需在一個地方更新即可。

一致性事實
定義:一致性事實是指在不同業務過程中,對于相同度量的計算規則和單位保持一致。例如,無論是在銷售、庫存還是財務模塊中,關于收入的計算方式應該保持統一,這樣在進行跨業務領域的匯總分析時,數據才具有可比性和準確性。

優點:

  • 確保跨部門、跨業務線的報告和分析結果具有可比性。
  • 支持更深層次的業務洞察,避免因計算標準不一導致的誤解。
  • 便于數據治理,降低因度量定義不清晰帶來的問題。

總線矩陣
定義:總線矩陣是數據倉庫架構中的一個設計工具,用來規劃和展示數據倉庫中各個主題域(如產品、銷售、客戶等)、維度和事實表之間的關系。它以表格形式呈現,行表示源系統或數據主題,列表示數據倉庫中的維度和事實,交點處則表明數據流動的方向和關系。

作用:

  • 規劃數據集成:幫助設計者理解數據來源、如何轉換以及如何加載到數據倉庫中的具體位置。
  • 管理依賴關系:清晰展示不同數據實體間的依賴,便于識別和解決數據集成中的沖突。
  • 促進溝通:作為一個共同的語言,總線矩陣幫助項目團隊成員、業務用戶和技術團隊之間有效溝通數據模型和數據流的設計思路。

綜上所述,一致性維度和一致性事實確保了數據倉庫中數據的一致性和可比性,而總線矩陣則是實現這一目標的規劃和管理工具,三者共同支撐起數據倉庫的架構設計和數據治理。

從ODS層到DW層的ETL,做了哪些工作??

從ODS(Operational Data Store,操作數據存儲)層到DW(Data Warehouse,數據倉庫)層的ETL(Extract-Transform-Load,抽取-轉換-加載)過程,是數據倉庫建設中的核心步驟之一,旨在將業務系統中的原始數據轉化為適合分析用途的結構化數據。具體來說,這一過程包括以下幾個關鍵步驟:

1、抽取(Extract):

  • 數據源識別:確定需要從哪些業務系統或數據源中抽取數據,這些數據源可能包括數據庫、文件系統、API接口等。
  • 數據提取:編寫腳本或使用ETL工具,按照預定的計劃或觸發機制,從源系統中提取所需的數據。這可能涉及到SQL查詢、API調用或文件讀取操作。

2、轉換(Transform):

  • 數據清洗:去除數據中的錯誤、重復記錄、缺失值或異常值,確保數據質量。
  • 數據轉換:將數據格式標準化或規范化,如日期格式轉換、數值單位統一、字符串處理等。
  • 數據映射:將源系統的數據字段映射到數據倉庫的維度和事實表結構中。
  • 數據聚合與分割:根據業務需求,可能需要對數據進行聚合(如按時間段匯總銷售數據)或分割(如將一條記錄拆分成多條以適應星型模式)。
  • 緩慢變化維度處理:處理維度表中的數據變化,如類型1、類型2或類型3的緩慢變化維度處理方法。

3、加載(Load):

  • 目標表準備:在數據倉庫的DWD(Data Warehouse Detail,數據倉庫明細層)或更高級別的DWS(Data Warehouse Summary,數據倉庫匯總層)中準備目標表。
  • 數據加載:將轉換后的數據加載到數據倉庫的目標表中。這可能包括全量加載、增量加載或更新加載策略。
  • 數據驗證:加載后進行數據質量檢查,確保數據正確無誤地加載到目標表中。

4、監控與調度:

  • ETL作業管理:設置定時任務或事件驅動的作業執行計劃,確保ETL流程按時執行。
  • 日志記錄與錯誤處理:記錄ETL過程中的日志信息,對發生的錯誤進行及時處理和告警。

通過上述步驟,ETL過程將原始的、零散的業務數據轉化為在數據倉庫中結構化、易于分析的數據形式,為后續的商務智能分析、數據挖掘等提供了堅實的基礎。

數據倉庫與(傳統)數據庫的區別??

數據倉庫與傳統的數據庫(通常指的是面向事務處理的數據庫,如OLTP系統)之間存在一些根本性的區別,主要體現在設計目的、數據處理、數據結構、查詢需求和性能優化等方面。以下是幾個關鍵區別:

1、設計目的:

  • 傳統數據庫:主要設計用于日常的事務處理,如記錄銷售交易、用戶登錄、庫存更新等操作,強調數據的即時插入、更新和刪除,確保數據的一致性和事務的完整性。
  • 數據倉庫:旨在支持復雜的分析和報表生成,側重于歷史數據的存儲和分析,幫助決策者通過多維度分析數據,了解市場趨勢、業務表現等。

2、數據內容與結構:

  • 傳統數據庫:存儲在線的、最新的業務數據,遵循數據庫設計范式,盡量減少數據冗余,以優化事務處理速度。
  • 數據倉庫:存儲大量的歷史數據,常通過數據整合從多個源系統中抽取數據,設計時可能會有意引入冗余(反范式設計),以提高查詢效率和適應分析需求。

3、數據處理:

  • 傳統數據庫:側重于快速處理單個交易或查詢,關注實時響應。
  • 數據倉庫:側重于批量處理和復雜查詢,如匯總、分組、聯接等操作,通常不支持實時更新,而是通過定期的數據加載和刷新來維護數據集。

4、查詢模式:

  • 傳統數據庫:面對的是短而頻繁的事務性查詢。
  • 數據倉庫:支持復雜的分析查詢,可能涉及大數據量的掃描和聚合,查詢頻率相對較低但數據量大。

5、性能優化:

  • 傳統數據庫:優化點在于提高單個事務的處理速度,減少鎖爭用,保證并發處理能力。
  • 數據倉庫:優化方向在于提高數據讀取和分析的速度,通常采用分區、索引、數據壓縮等技術來提升大規模數據集的查詢效率。

6、數據時效性:

  • 傳統數據庫:數據通常是實時或接近實時的。
  • 數據倉庫:數據更新周期較長,可能每天、每周或按需更新,強調數據的完整性而非實時性。

綜上所述,數據倉庫與傳統數據庫在設計理念、數據處理方式、數據結構和查詢需求上都有明顯的區別,各自服務于不同的業務場景和分析需求。

數據質量是怎么保證的,有哪些方法保證?

數據質量的保證是一個系統性和持續性的過程,它涉及多個環節和方法。以下是一些主要的方法和步驟,用于確保數據質量:

一、明確數據質量標準
首先,需要明確數據質量的衡量標準。這通常包括數據的準確性、完整性、一致性、可靠性、有效性等方面。確保所有相關人員對數據質量的標準有清晰的認識,以便在后續的數據處理和管理過程中有明確的指導。

二、建立數據管理制度
制定一套完善的數據管理制度,包括數據采集、存儲、處理、分析和使用的規范。這些規范應明確數據的來源、采集方法、存儲格式、處理流程、分析方法和使用權限等,以確保數據在整個生命周期內都受到有效管理。

三、數據清洗與驗證
對數據進行定期清洗,去除重復、錯誤、無效的數據。同時,對數據進行驗證,確保數據的準確性和一致性。可以使用自動化工具或算法來輔助完成這些任務,以提高效率和準確性。

四、加強數據采集與整合
確保數據采集的準確性和完整性,從源頭上提高數據質量。在數據采集過程中,遵循統一的標準和流程,避免數據歧義和錯誤。此外,還需要加強數據整合,確保不同來源的數據能夠無縫對接,避免出現數據孤島和數據不一致的問題。

五、設置數據質量標準
數據質量管理的第一步是建立一套質量標準。這包括定義數據約束,如數據類型約束、范圍限制、強制性約束、唯一性約束等,以從數據收集過程中過濾掉“臟數據”。這些標準有助于在數據收集的一開始就保持數據質量。

六、實施數據監控與預警
建立數據質量監控體系,實時關注數據質量的變化。設置預警機制,當數據質量出現異常時,及時發出警報并采取相應的措施。這有助于及時發現并解決問題,防止數據質量問題對業務造成不良影響。

七、定期自查評估及數據質量考核
參考業界評估標準,對數據質量進行定期自查評估。評估可以從字段級別、跨字段級別、表級別、跨表級別等維度進行。同時,建立數據質量考核機制,將數據質量納入部門和個人的績效考核體系中,以激勵相關人員積極提高數據質量。

八、開展大數據測試
數據質量管理離不開大數據測試工作。通過日常大數據測試工作的流程規范、痛點問題及解決方案的積累、方法與經驗的總結以及專項Topic方面的投入(如測試工具、平臺的開發及應用等),可以提高大數據測試工作的質量,進而提升數據質量。

九、數據庫設計與規范化
通過設計適當的數據庫結構,建立關系約束和數據規范化,確保數據的完整性和一致性。這包括合理設計表結構、定義主鍵和外鍵、建立索引等,以提高數據的查詢效率和準確性。

十、數據審計和監控
定期審計和監控數據,以發現潛在的數據質量問題并及時處理。這包括對數據的完整性、準確性、一致性等方面進行審計和監控,確保數據質量符合業務要求。

十一、數據備份和恢復
定期備份數據,并確保可以快速、可靠地恢復數據,以防止數據損壞或丟失。這有助于保障數據的可靠性和安全性,避免因數據丟失而對業務造成不良影響。

十二、數據安全
使用安全措施保護數據免受未經授權的訪問、篡改或破壞。這包括加強網絡安全、設置訪問權限、加密敏感數據等,以確保數據的安全性和機密性。

綜上所述,保證數據質量是一個多環節、多方法的過程。通過明確數據質量標準、建立數據管理制度、加強數據采集與整合、設置數據質量標準、實施數據監控與預警、定期自查評估及數據質量考核、開展大數據測試、數據庫設計與規范化、數據審計和監控、數據備份和恢復以及數據安全等措施的綜合運用,可以有效提高數據質量,為企業的業務決策提供有力支持。

怎么衡量數倉的數據質量,有哪些指標?

衡量數據倉庫的數據質量通常涉及多個維度,確保數據的準確性、完整性、一致性、時效性和可訪問性。以下是幾個關鍵的數據質量指標:

1、正確性(Accuracy):

  • 指數據的準確無誤,可以通過明細數據對比、維度交叉驗證、實時與離線數據對比等方法來檢驗。
  • 數據清洗和數據質量控制(DQC)工具可以用來實施唯一性驗證、范圍檢查、格式驗證等,以確保數據的正確性。

2、完整性(Completeness):

  • 衡量數據集中是否存在應該有的數據記錄,沒有遺漏。這包括檢查數據字段的填充情況,確保沒有大量空值或缺失值。
  • 可以通過監控數據導入過程的記錄計數、檢查數據條目是否符合預期的全集等方法來評估。

3、一致性(Consistency):

  • 確保數據在不同時間點、不同系統或同一系統的不同部分之間保持邏輯上的一致。這涉及到數據格式、編碼規則、業務規則的一致應用。
  • 通過比較不同來源或版本的數據,實施一致性規則檢驗來保障。

4、時效性(Timeliness):

  • 數據應當在業務需要時可用,衡量數據從產生到可訪問的時間間隔。
  • 包括數據加載延遲、數據處理時間等,實時數倉中尤其重要,會監控數據接入延遲等指標。

5、一致性(Conformity):

  • 數據遵循預定義的規范、標準和數據模型,確保數據定義和計算邏輯的一致性。
  • 需要檢查數據是否遵守企業數據字典和業務規則。

6、可訪問性(Accessibility):

  • 數據應易于被授權用戶訪問和理解,包括數據的組織、索引和查詢性能。
  • 監控查詢響應時間和用戶滿意度可以間接反映數據的可訪問性。

7、合理性(Validity):

  • 數據值是否合理,符合業務邏輯,例如,年齡字段不應出現負數或異常高的數值。

8、唯一性(Uniqueness):

  • 確保沒有重復記錄,特別是在關鍵標識符上。

9、可追溯性(Traceability):

  • 數據應能追蹤到其來源,便于審計和問題排查。

10、數據源數量與質量:

  • 對于實時數倉,數據源的數量和質量直接影響數據倉庫的效能,包括數據接入速率、數據接入成功率和數據接入延遲等。

綜合運用這些指標,并結合具體的業務場景和需求,可以全面評估和改善數據倉庫的數據質量。

增量表、全量表和拉鏈表?

增量表、全量表和拉鏈表是數據倉庫和數據處理領域中常見的數據表設計模式,它們各有特點,適用于不同的業務場景和分析需求:

1、增量表(Incremental Table)
定義:增量表僅存儲自上次數據更新以來發生的數據變化,包括新記錄的添加、現有記錄的更新或刪除信息。
特點:

  • 節省存儲空間,因為僅存儲差異數據。
  • 適合頻繁更新的數據環境,能夠高效處理數據變化。
  • 通常用于定期更新數據倉庫,如每日加載前一天的數據變化。

應用場景:適合用于日志記錄、實時數據流處理或需要頻繁進行增量加載的場景。
2、全量表(Full Load Table)
定義:全量表包含某個實體或業務過程的完整數據集合,不區分數據是否已發生過變化,每次加載都是完整的數據集。
特點:

  • 存儲所有數據,不考慮數據的變更歷史,提供最新狀態的完整記錄。
  • 相對占用較多存儲空間。
  • 簡單易用,適用于數據變化不頻繁或對歷史數據完整性的要求不高場景。

應用場景:適合數據變化不頻繁或對實時性要求不高的報告和分析,以及數據恢復或備份需求。
3、拉鏈表(Slowly Changing Dimension Table)
定義:拉鏈表是一種特殊的設計模式,用于處理緩慢變化維度,即隨著時間推移逐漸變化的數據屬性。它通過保留歷史記錄的方式,存儲數據項隨時間變化的多個版本。
特點:

  • 能夠記錄數據的歷史狀態,適用于需要分析數據隨時間演變的情況。
  • 有不同類型(類型1至類型3)處理變化的方式,每種類型有不同的存儲策略,如直接更新、增加新列記錄變化或行復制。
  • 會占用更多存儲空間。

引用:https://www.nowcoder.com/discuss/353159520220291072

通義千問、文心一言

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

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

相關文章

【C++】解決 C++ 語言報錯:Invalid Array Index

文章目錄 引言 無效數組索引(Invalid Array Index)是 C 編程中常見且危險的錯誤之一。當程序試圖使用不合法的索引訪問數組時,就會發生無效數組索引錯誤。這種錯誤不僅會導致程序崩潰,還可能引發不可預測的行為和安全漏洞。本文將…

【PB案例學習筆記】-28制作一個右鍵菜單

寫在前面 這是PB案例學習筆記系列文章的第28篇,該系列文章適合具有一定PB基礎的讀者。 通過一個個由淺入深的編程實戰案例學習,提高編程技巧,以保證小伙伴們能應付公司的各種開發需求。 文章中設計到的源碼,小凡都上傳到了gite…

任天堂稱未來第一方游戲不會使用生成式AI

雖然EA、育碧、暴雪、Embracer等西方游戲廠商都大力支持生成式AI技術,但日本老牌游戲公司任天堂并不會追隨這一步伐。任天堂已經確認該公司未來的第一方游戲不會使用生成式AI技術。 在公司最近的投資人問答會上,任天堂描繪了公司未來游戲愿景。在談到AI技…

安徽農業大學學報

《安徽農業大學學報》是安徽農業大學主辦,國內外公開發行的綜合性農業科學類學術期刊,主要刊登茶葉科學、動植物遺傳育種、作物栽培、植物保護、林學、動物科學與動物醫學、水產科學、生物學、土壤學、農業生態與環境科學、園藝學、食品科學、農業機械工…

Oracle PL / SQL變量值

常量 要聲明常量,請在類型說明符之前放入關鍵字CONSTANT。 常量必須在其聲明中初始化。 每次輸入塊或子程序時,都會初始化常量。 以下代碼顯示如何定義REAL類型的常量,并為常量指定一個不可更改的值5。 DECLARE n_real CONSTANT RE…

51單片機第27步_單片機工作在睡眠模式

重點學習51單片機工作在睡眠模式。 1、進入“睡眠模式”的方法 通過將PCON寄存器中的PDWN置1,則CPU會進入“睡眠模式”。在“睡眠模式”中,晶振將停止工作,因此,定時器和串口都將停止工作,只有外部中斷繼續工作。如果單片機電源…

LeetCode——第 404 場周賽

周賽 三角形的最大高度 給你兩個整數 red 和 blue,分別表示紅色球和藍色球的數量。你需要使用這些球來組成一個三角形,滿足第 1 行有 1 個球,第 2 行有 2 個球,第 3 行有 3 個球,依此類推。 每一行的球必須是 相同 …

Go語言--自定義函數

定義格式 函數構成代碼執行的邏輯結構。在 Go語言中,兩數的基本組成為:關鍵字 func、函數名、參數列表、返回值、所數體和返回語句。 函數定義說明: func:函數由關鍵字func開始聲明FuncName:函數名稱,根據約定,數名首字母小寫即為private…

淺談 Linux 中的 core dump 分析方法

文章目錄 一、什么是 core dump二、發生 core dump 的原因1. 空指針或非法指針引起 core dump2. 數組越界或指針越界引起的 core dump3. 數據競爭導致 core dump4. 代碼不規范 三、core dump 分析方法1. 啟用 core dump2. 觸發 core dump2-1. 因空指針解引用而崩潰2-2. 通過 SI…

圖形編輯器基于Paper.js教程06:鼠標畫圓與橢圓

繪制橢圓與圓形:利用Paper.js進行交互式圖形設計 在Web應用中實現交互式圖形繪制功能,對于提高用戶體驗至關重要,尤其是在設計和藝術相關的應用中。Paper.js是一款強大的JavaScript庫,專門用于處理矢量圖形,它提供了一…

智能語音門鎖:置入NV170D語音芯片ic 打造便捷生活新體驗

一、智能門鎖語音芯片開發背景 隨著科技的飛速發展,傳統門鎖的局限性日益凸顯,無法滿足現代人對高效、安全生活的需求。在這樣的時代背景下,智能門鎖應運而生,它不僅繼承了傳統門鎖的基本功能,更通過融入先進的科技元素…

商標的近似分辯,商標起名稱時注意!

曾有過網友發來商標名稱,普推知商標老楊說有近似,然后網友起過新名稱還是存有近似,或者加字,后面加的通用詞,與先有商標名稱也是近似。 “良信健康”這個名稱健康是行業通用詞,加成健康后變成四個字&#x…

出現 images and labels...0 found, xx missing, 0 empty, 0 corrupt 解決方法

目錄 1. 問題所示2. 原理分析3. 解決方法1. 問題所示 訓練VOC的數據的時候出現如下問題: val: Scanning /home/l228/huoyanhao/yolov5/datasets/VOC/images/VOCdevkit/VOC2007/2007_val images and labels...0 found, 2510 missing, 0 empty, 0 corrupt: 100%|███████…

HTTP協議深入

1.了解web和網絡基礎 有客戶端和服務端雙方參與交互 客戶端發送請求:request 服務端根據請求給出響應:response 請求通過URL來指定要獲取都得資源 響應內容可以是HTML網頁,或者用json表示的數據或者其他二進制文件內容 Web使用一種名為HTTP的協議作為規范&…

jEasyUI 添加分頁組件

jEasyUI 添加分頁組件 jEasyUI(jQuery EasyUI)是一個基于jQuery的用戶界面插件集合,它為用戶提供了一系列的UI組件,如菜單、窗口、數據網格等,以簡化Web頁面的開發。分頁組件是jEasyUI中的一個重要部分,它允許用戶在處理大量數據時,將數據分頁顯示,提高用戶體驗和數據…

AI與大模型工程師證書研修班報名啦!

人工智能大模型是指擁有超大規模參數(通常在十億個以上)、超強計算資源的機器學習模型,能夠處理海量數據,完成各種復雜任務,如自然語言處理、圖像識別等。計算機硬件性能不斷提升,深度學習算法快速優化&…

ESP32CAM物聯網教學03

ESP32CAM物聯網教學03 物聯網小車 小智突發奇想:要是我在點燈物聯APP中多增加幾個按鈕,控制小車的行駛方向,不就可以做成遙控小車了嗎? 點燈物聯控制小車的行駛方向 我們可以重新編輯點燈物聯APP中的設備控件界面,如…

自定義控件之動畫篇(六)——聯合動畫的代碼及xml實現

在Android中,聯合動畫(即組合多種類型的動畫)可以通過編寫Java/Kotlin代碼或XML資源文件來實現。這里我們將分別展示如何通過這兩種方式來實現一個簡單的自定義控件動畫,該動畫將包含平移和縮放效果。 1. XML 資源文件實現 首先…

AI學習指南機器學習篇-梯度提升樹模型應用與Python實踐

AI學習指南機器學習篇-梯度提升樹模型應用與Python實踐 機器學習領域中的梯度提升樹(Gradient Boosting Tree)模型是一種非常強大且廣泛應用的模型,它在各種數據類型和問題類型上都表現出色。在本篇博客中,我們將介紹如何使用Pyt…

開關電源中強制連續FCCM模式與輕載高效PSM,PFM模式優缺點對比筆記

文章目錄 前言一、連續FCCM模式優點:缺點: 二,輕載高效PSM,PFM優點:缺點: 總結 前言 今天我們來學習下開關電源中,強制連續FCCM模式與輕載高效PSM,PFM模式優缺點對比 一、連續FCCM模式 優點: …