【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】3.1 數據質量評估指標(完整性/一致性/準確性)

👉 點擊關注不迷路
👉 點擊關注不迷路
👉 點擊關注不迷路


文章大綱

  • 數據質量評估核心指標:完整性、一致性、準確性實戰解析
    • 3.1 數據質量評估指標體系
      • 3.1.1 完整性:數據是否存在缺失
        • 1.1.1 核心定義與業務影響
        • 1.1.2 檢測方法與SQL實現
        • 1.1.3 案例分析:電商用戶數據清洗
      • 3.1.2 一致性:數據是否符合邏輯規則
        • 1.2.1 核心定義與典型問題
        • 1.2.2 檢測方法與技術實現
        • 1.2.3 深度案例:金融交易數據清洗
      • 3.1.3 準確性:數據是否真實反映現實
        • 1.3.1 核心定義與判別標準
        • 1.3.2 檢測方法與工具鏈
        • 1.3.3 實戰案例:醫療數據清洗
      • 3.1.4 三大指標的協同關系與評估矩陣
    • 3.2 數據質量評估最佳實踐
      • 3.2.1 建立數據質量監控視圖
      • 3.2.2 制定數據質量修復策略
    • 3.3 總結:數據質量是分析的生命線

數據質量評估核心指標:完整性、一致性、準確性實戰解析

  • 在PostgreSQL數據分析全流程中,數據質量評估是數據清洗與預處理的核心環節。
  • 本章將從 完整性(Completeness)、一致性(Consistency)、準確性(Accuracy) 三大核心指標展開,結合真實數據案例與SQL檢測方法,構建系統化的數據質量評估體系。

3.1 數據質量評估指標體系

在這里插入圖片描述

3.1.1 完整性:數據是否存在缺失

1.1.1 核心定義與業務影響
  • 定義:數據記錄中必填字段無缺失,所有業務規則要求的信息均存在
  • 核心問題
    問題類型示例場景業務影響
    字段級缺失用戶表中email字段存在20%的NULL值無法進行用戶觸達與分組分析
    記錄級缺失訂單表中缺少對應商品表的關聯記錄導致訂單-商品關聯分析失敗
    時間序列斷裂傳感器數據中某時段監測值完全缺失無法進行連續時間序列趨勢分析
1.1.2 檢測方法與SQL實現
  • (1)字段缺失率檢測
-- 計算用戶表各字段缺失率
SELECT column_name,(total_missing / total_rows) * 100 AS missing_rate
FROM (SELECT 'user_id' AS column_name,SUM(CASE WHEN user_id IS NULL THEN 1 ELSE 0 END) AS total_missing,COUNT(*) AS total_rowsFROM usersUNION ALLSELECT 'email' AS column_name,SUM(CASE WHEN email IS NULL THEN 1 ELSE 0 END) AS total_missing,COUNT(*) AS total_rowsFROM users
) AS missing_stats;
  • (2)外鍵完整性檢測
-- 檢測訂單表中存在無效商品ID(商品表不存在的ID)
SELECT COUNT(*) AS invalid_product_orders
FROM orders
WHERE product_id NOT IN (SELECT product_id FROM products);
1.1.3 案例分析:電商用戶數據清洗

在某電商用戶表中檢測發現:

  • registration_time字段缺失率3.7%(主要為第三方登錄用戶)
  • phone_number字段存在15%的空字符串(使用''而非NULL存儲)
  • 修復策略
      1. registration_time缺失值,使用注冊當天0點填充(業務允許)
      1. 統一空字符串為NULL,便于后續缺失值處理函數使用

3.1.2 一致性:數據是否符合邏輯規則

1.2.1 核心定義與典型問題
  • 定義:數據在不同字段、表或業務規則間保持邏輯統一,無矛盾沖突
  • 維度劃分
    一致性維度檢測要點示例規則
    格式一致性數據格式符合預設標準日期字段統一為’YYYY-MM-DD’格式
    邏輯一致性字段間關系符合業務規則訂單金額=數量×單價(誤差<0.01)
    跨表一致性關聯數據保持同步更新商品下架后,對應訂單狀態自動標記
1.2.2 檢測方法與技術實現
  • (1)格式一致性檢測(正則表達式)
-- 檢測郵箱格式是否符合規范
SELECT user_id, email,CASE WHEN email ~ '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$' THEN '有效' ELSE '無效' END AS email_validity
FROM users;
  • (2)邏輯一致性檢測(業務規則校驗)
-- 檢測訂單金額與數量×單價的偏差(允許0.01元誤差)
SELECT order_id
FROM order_items
WHERE ROUND(price * quantity, 2) <> ROUND(amount, 2);
1.2.3 深度案例:金融交易數據清洗

在銀行交易流水表中發現:

  • transaction_time字段存在跨時區時間混合(部分為UTC,部分為本地時間)
  • balance_after字段出現負值(賬戶透支未按規則處理)
  • 解決方案
      1. 統一時間字段為UTC時區,并添加時區轉換函數
      1. 對異常負值記錄,通過前后交易流水重建正確余額(balance_before + amount = balance_after

3.1.3 準確性:數據是否真實反映現實

1.3.1 核心定義與判別標準
  • 定義:數據值與客觀現實一致,不存在錯誤、偽造或過時信息
  • 三層校驗體系
      1. 語法準確性:數據格式符合定義(如整數無字母混入)
      1. 語義準確性:數據值在業務含義上正確(如性別字段只能是M/F)
      1. 外部準確性:與第三方權威數據一致(如地址匹配行政區劃代碼)
1.3.2 檢測方法與工具鏈
  • (1)語法準確性檢測(數據類型校驗)
-- 檢測年齡字段是否存在非數字值(使用正則排除數字)
SELECT age
FROM users
WHERE age !~ '^[0-9]+$';
  • (2)語義準確性檢測(值域校驗)
-- 檢測訂單狀態是否為有效枚舉值('待支付','已支付','已取消')
SELECT order_id, status
FROM orders
WHERE status NOT IN ('待支付', '已支付', '已取消');
  • (3)外部準確性檢測(API驗證)
    通過調用地址驗證API(如Google Maps API),對訂單表中的address字段進行真實性校驗:
# Python偽代碼:調用外部API驗證地址準確性
import requestsdef validate_address(address):url = f"https://maps.googleapis.com/maps/api/geocode/json?address={address}&key=API_KEY"response = requests.get(url)return response.json()['status'] == 'OK'
1.3.3 實戰案例:醫療數據清洗

在電子健康檔案表中發現:

  • blood_type字段存在’AB+'、‘AB型’、'AB陽性’等多種表示方式 !!!
  • height字段出現180cm記錄被錯誤存儲為1800(單位混淆) !!!
  • 治理方案
      1. 建立統一字典表dict_blood_type,通過JOIN實現編碼標準化
      1. 對數值型字段添加單位校驗(如身高字段限制在50-250cm之間)

3.1.4 三大指標的協同關系與評估矩陣

指標關注重點檢測手段修復優先級技術實現難度
完整性數據存在性缺失值統計、外鍵檢查
一致性邏輯統一性正則校驗、業務規則SQL
準確性現實符合性外部API驗證、人工抽樣核查
  • 評估實施步驟
      1. 完整性掃描:先解決字段缺失、關聯斷裂等基礎問題
      1. 一致性校驗:建立字段級 / 表級規則引擎,批量清洗格式與邏輯沖突
      1. 準確性驗證:通過抽樣審計+外部數據源比對,處理核心業務字段

3.2 數據質量評估最佳實踐

3.2.1 建立數據質量監控視圖

-- 創建數據質量監控視圖(每日自動檢測)
CREATE OR REPLACE VIEW data_quality_report ASSELECT'users' AS table_name,(SELECT COUNT(*) FROM users WHERE email IS NULL) AS email_missing,(SELECT COUNT(*) FROM users WHERE age < 0 OR age > 150) AS invalid_age,CURRENT_DATE AS report_dateUNION ALLSELECT'orders' AS table_name,(SELECT COUNT(*) FROM orders WHERE order_amount < 0) AS negative_amount,(SELECT COUNT(*) FROM orders WHERE product_id NOT IN (SELECT product_id FROM products)) AS invalid_product,CURRENT_DATE AS report_date;

3.2.2 制定數據質量修復策略

問題類型修復方式適用場景
可推導缺失值均值/中位數填充數值型字段,缺失率<10%
不可推導缺失值標記為Unknown/刪除記錄分類字段或關鍵信息缺失
格式不一致正則替換+統一轉換郵箱、手機號等有明確格式的字段
邏輯矛盾業務規則反向推導涉及多字段關聯的計算型數據

3.3 總結:數據質量是分析的生命線

  • 完整性確保數據"不殘缺",一致性確保數據"不矛盾",準確性確保數據"不虛假"
  • 三者構成數據質量的鐵三角,任何一環的缺失都會導致后續分析出現偏差。
  • 在PostgreSQL實踐中,建議通過:
      1. DDL約束(NOT NULL、CHECK、外鍵)實現事前控制
      1. 定期質量報告(存儲過程+定時任務)實現事中監控
      1. ETL流程優化數據清洗管道集成質量檢測模塊)實現事后修復

以上內容構建了數據質量評估的完整框架。

  • 通過系統化的數據質量評估體系,為后續的數據轉換、分析建模奠定堅實基礎。
  • 下一章節將深入探討數據清洗中的異常值處理與數據轉換技術,敬請期待。

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

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

相關文章

詳解 FFMPEG 交叉編譯 `FLAGS` 和 `INCLUDES` 的作用

FLAGS 和 INCLUDES這兩行是 Android NDK 編譯時的編譯器選項&#xff0c;用于控制代碼生成、優化、調試、安全性和頭文件搜索路徑。下面逐項詳解&#xff1a; 1. FLAGS 詳解&#xff08;編譯器選項&#xff09; FLAGS 定義了傳遞給 C/C 編譯器&#xff08;如 clang 或 gcc&…

【RK3588嵌入式圖形編程】-Cairo-Cairo圖形庫支持后端

Cairo圖形庫支持后端 文章目錄 Cairo圖形庫支持后端1、PNG圖像后端2、PDF文件后端3、SVG文件后端4、GTK窗口支持Cairo庫支持多種后端。在本文中,我們使用Cairo創建PNG圖像、PDF文件、SVG文件,并在GTK窗口上繪制。 1、PNG圖像后端 在第一個示例中,我們創建一個 PNG 圖像。 …

【常用算法:排序篇】2.快速排序的算法精要

快速排序是算法領域的"九陽神功"&#xff0c;掌握其精髓能讓你在算法修煉之路上突破瓶頸。 1. 快速排序的核心思想 快速排序&#xff08;Quicksort&#xff09;是一種基于分治思想的高效排序算法&#xff0c;核心步驟為&#xff1a; 選擇基準值&#xff08;Pivot&…

在現代Web應用中集成 PDF.js (pdfjs-dist 5.2 ESM): 通過 jsdelivr 實現動態加載與批注功能的思考

PDF 文檔在現代 Web 應用中越來越常見&#xff0c;無論是作為文檔預覽、報告展示還是在線編輯的載體。Mozilla 的 PDF.js 是一個功能強大的 JavaScript 庫&#xff0c;它使得在瀏覽器端渲染和顯示 PDF 文件成為可能&#xff0c;無需依賴原生插件。 本文將深入探討如何在你的項…

基于FPGA控制ADC0832雙通道采樣+電壓電流采樣+LCD屏幕顯示

基于FPGA控制ADC0832雙通道采樣電壓電流采樣LCD屏幕顯示 前言一、芯片手冊閱讀1.SPI通信時序 二、仿真分析三、代碼分析總結視頻演示 前言 定制 要求使用ADC0832芯片進行ADC采樣。其中電壓采樣以及電流采樣是固定電路&#xff0c;是硬件設計&#xff0c;跟軟件沒沒關系。本質上…

生產部署方案pm2配合python3腳本

前言 使用python3來處理redis 消息隊列&#xff0c;記錄下生產部署方案 「生產部署方案」&#xff1a; 多進程&#xff08;動態擴容&#xff09;無限自愈日志自動壓縮系統級守護可多隊列多worker 終極穩健版&#xff1a;PM2 Logrotate 自動擴容 守護鏈 適合&#xff1a…

Python全流程開發實戰:基于IMAP協議安全下載個人Gmail郵箱內所有PDF附件

文章目錄 一、需求分析與安全前置&#xff1a;為什么需要專用工具&#xff1f;1.1 痛點場景1.2 技術方案選擇 二、準備工作&#xff1a;Gmail賬號安全配置與環境搭建2.1 開啟兩步驗證&#xff08;必做&#xff01;&#xff09;2.2 創建應用專用密碼&#xff08;替代普通密碼&am…

巧用python之--模仿PLC(PLC模擬器)

工作中用到了VM(VisionMaster4.3)有時候需要和PLC打交道,但是PLC畢竟是別人的,不方便修改別人的程序,這時候需要一個靈活的PLC模擬器是多么好呀! 先說背景: PLC型號 匯川Easy521: Modbus TCP 192.168.1.10:502 在匯川Easy521中Modbus保持寄存器D寄存器 ,在modbus協議中 0-4區…

docker構建鏡像并上傳dockerhub

docker構建鏡像并上傳dockerhub 前提條件&#xff1a;需要連接梯子 將梯子配置到虛擬機中&#xff08;確保主機能夠連接 hub.docker.com&#xff09; 使用ipconfig 查詢主機的 ip4地址虛擬機的連接模式改成橋接模式&#xff08;復制主機的地址網絡&#xff09;將ip4配置到虛擬…

python實現的音樂播放器

python實現的音樂播放器 音樂播放器,原來寫過一個簡陋的例子,可見 https://blog.csdn.net/cnds123/article/details/137874107 那個不能拖動播放進度條上的滑塊到新的位置播放。下面介紹的可以拖動播放進度條上的滑塊到新的位置播放。 簡單實用的音樂播放器 這個簡單實用的…

[網安工具] 端口信息收集工具 —— 御劍高速 TCP 全端口掃描工具 · 使用手冊

&#x1f31f;想了解其它網安工具&#xff1f;看看這個&#xff1a;[網安工具] 網絡安全工具管理 —— 工具倉庫 管理手冊 https://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scannerhttps://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scanner 0…

數字孿生賦能智慧城市:從概念到落地的深度實踐

在城市規模與復雜度持續攀升的當下&#xff0c;傳統管理模式已難以滿足現代城市精細化治理需求。數字孿生技術憑借構建虛擬城市鏡像、實現實時數據交互與智能決策的特性&#xff0c;成為智慧城市建設的核心引擎。本文將通過多個典型案例&#xff0c;深度解析數字孿生技術如何重…

DeFi開發系統軟件開發:技術架構與生態重構

DeFi開發系統軟件開發&#xff1a;技術架構與生態重構 ——2025年去中心化金融開發的范式革新與實踐指南 一、技術架構演進&#xff1a;從單一鏈到多鏈混合引擎 現代DeFi系統開發已從單一公鏈架構轉向“跨鏈互操作混合模式”&#xff0c;結合中心化效率與去中心化安全雙重優勢…

相同IP和端口的服務器ssh連接時出現異常

起因 把服務器上的一個虛擬機搞壞了&#xff0c;所以刪除重新創建了一個&#xff0c;端口號和IP與之前的虛擬機相同。 ssh usernameIP -p port 時報錯 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone…

驗證es啟動成功

1. 查看命令行輸出信息 在啟動 Elasticsearch 時&#xff0c;命令行窗口會輸出一系列日志信息。若啟動成功&#xff0c;日志里通常會有類似下面的信息&#xff1a; plaintext [2025-05-06T13:20:00,000][INFO ][o.e.n.Node ] [node_name] started其中 [node_na…

CentOS網絡之network和NetworkManager深度解析

文章目錄 CentOS網絡之network和NetworkManager深度解析1. CentOS網絡服務發展歷史1.1 傳統network階段&#xff08;CentOS 5-6&#xff09;1.2 過渡期&#xff08;CentOS 7&#xff09;1.3 新時代&#xff08;CentOS 8&#xff09; 2. network和NetworkManager的核心區別3. ne…

Unity:父掛 Rigidbody2D、子掛 Collider2D 時觸發器不生效的問題分析

目錄 ?問題現象 &#x1f50d; 排查與定位 ?? Unity 觸發機制的核心要求 ? 為什么把 Collider2D 移到父物體后就能觸發&#xff1f; &#x1f4a1; 解決方案 在 Unity 2D 游戲開發中&#xff0c;很多人習慣用父物體掛載 Rigidbody2D&#xff0c;而將不同的身體部位&am…

Google AI版圖:解析AI Studio, Gemini, NotebookLM與GCP

1. 2C vs 2B: AI Studio: 主要是面向開發者&#xff0c;提供一個易用的界面來探索和構建基于Google模型的應用。雖然最終的應用可能服務于C端或B端&#xff0c;但AI Studio本身更多是一個開發者的工具平臺&#xff0c;可以看作是連接模型能力和各種應用的橋梁。它可以被個人開…

Oracle EBS AP發票被預付款核算創建會計科目時間超長

背景 由于客戶職能部門的水電、通信和物業等等費用統一管理或對接部門報銷費,在報銷費的時候,用戶把所有費用分攤到各個末級部門,形成AP發票行有上千行, 問題癥狀 1、用戶過賬時,請求創建會計科目一直執行20多個小時未完成,只能手工強行取消請求。 2、取消請求以后,從后…

MySQL中MVCC指什么?

簡要回答&#xff1a; MVCC&#xff08;multi version concurrency control&#xff09;即多版本并發控制&#xff0c;為了確保多線程下數據的安全&#xff0c;可以通過undo log和ReadView來實現不同的事務隔離級別。 對于已提交讀和可重復讀隔離級別的事務來說&#xff0c;M…