【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】金融風控分析案例-10.1 風險數據清洗與特征工程

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


文章大綱

  • PostgreSQL金融風控分析案例:風險數據清洗與特征工程實戰
    • 一、案例背景:金融風控數據處理需求
    • 二、風險數據清洗實戰
      • (一)缺失值處理策略
      • (二)異常值檢測與修正
      • (三)重復數據處理
      • (四)數據質量報告
    • 三、特征工程實踐:從原始數據到風控特征
      • (一)時間序列特征構建
      • (二)信用風險特征衍生
      • (三)特征轉換技術
      • (四)特征選擇方法
    • 四、PostgreSQL性能優化實踐
      • (一)索引優化策略
      • (二)存儲過程優化
      • (三)執行計劃分析
    • 五、總結與最佳實踐
      • (一)實施效果
      • (二)PostgreSQL最佳實踐
      • (三)未來優化方向

PostgreSQL金融風控分析案例:風險數據清洗與特征工程實戰

在這里插入圖片描述

一、案例背景:金融風控數據處理需求

在金融風控領域,數據質量直接影響風險評估模型的準確性。

  • 某消費金融公司擁有百萬級貸款用戶數據,包含以下核心數據集:
數據模塊數據表核心字段數據量更新頻率
基礎信息user_basicuser_id、age、education、employment_status800萬條實時
交易記錄transactionuser_id、trans_date、amount、merchant_type5000萬條每日
征信數據credit_reportuser_id、overdue_days、credit_score、blacklist_flag300萬條每月
  • 原始數據存在嚴重質量問題
    • 23%的年齡字段缺失,15%的交易金額出現負值,8%的身份證號存在重復記錄
    • 業務目標是通過PostgreSQL實現高效數據清洗,并構建包含50+特征的風控特征集,支撐后續違約預測模型開發。
CREATE TABLE IF NOT EXISTS user_basic (user_id              BIGINT       PRIMARY KEY,  -- 用戶唯一標識age                  INTEGER      NOT NULL,     -- 年齡(18-60)education            VARCHAR(50)  NOT NULL,     -- 學歷(高中/專科/本科/碩士)employment_status    VARCHAR(50)  NOT NULL,     -- 就業狀態(在職/失業)update_time          TIMESTAMPTZ  NOT NULL DEFAULT CURRENT_TIMESTAMP,  -- 更新時間(帶時區)address              VARCHAR(255),               -- 地址(允許空值)birth_date           DATE                          -- 出生日期(新增字段)
);INSERT INTO user_basic (user_id, age, education, employment_status, update_time, address, birth_date)
SELECT user_id,age,education,employment_status,update_time,address,-- 通過子查詢已生成的age計算birth_date(DATE '2024-01-01' - INTERVAL '1 year' * age  -- 直接引用子查詢中的age字段- INTERVAL '1 day' * floor(random() * 365)  -- 隨機天數偏移)::DATE AS birth_date
FROM (-- 子查詢先生成基礎字段(包括age)SELECT generate_series(COALESCE((SELECT MAX(user_id) FROM user_basic), 0) + 1, COALESCE((SELECT MAX(user_id) FROM user_basic), 0) + 100) AS user_id,floor(random() * 43 + 18)::INTEGER AS age,  -- 生成18-60歲(ARRAY['高中','專科','本科','碩士'])[floor(random() * 4) + 1] AS education,(ARRAY['在職','失業'])[floor(random() * 2) + 1] AS employment_status,CURRENT_TIMESTAMP - (random() * INTERVAL '30 days') AS update_time,'城市'||floor(random() * 100)::VARCHAR||'區街道'||floor(random() * 1000)::VARCHAR||'號' AS addressFROM generate_series(1, 100)
) AS subquery;-- 交易記錄表(5000萬條每日數據)
CREATE TABLE IF NOT EXISTS transaction (trans_id      SERIAL       PRIMARY KEY,  -- 交易唯一IDuser_id       BIGINT       NOT NULL,     -- 用戶ID(外鍵)trans_date    TIMESTAMP    NOT NULL,     -- 交易時間amount        NUMERIC(10,2) NOT NULL,    -- 交易金額(精確到分)merchant_type VARCHAR(50)  NOT NULL,     -- 商戶類型(餐飲/購物等)FOREIGN KEY (user_id) REFERENCES user_basic(user_id)
);INSERT INTO transaction (user_id, trans_date, amount, merchant_type)
SELECT generate_series(1, 100) AS user_id,(current_date - (random() * 365)::INTEGER * INTERVAL '1 day')::TIMESTAMP AS trans_date,  -- 修復后的時間計算round( (random() * 990 + 10)::numeric, 2 ) AS amount,CASE floor(random() * 5)WHEN 0 THEN '餐飲'WHEN 1 THEN '購物'WHEN 2 THEN '交通'WHEN 3 THEN '娛樂'ELSE '醫療'END AS merchant_type;-- 征信數據表(300萬條每月數據)
CREATE TABLE IF NOT EXISTS credit_report (report_id     SERIAL       PRIMARY KEY,  -- 征信報告唯一IDuser_id       BIGINT       NOT NULL UNIQUE, -- 用戶ID(唯一約束)overdue_days  INTEGER      NOT NULL CHECK (overdue_days >= 0), -- 逾期天數(≥0)credit_score  SMALLINT     NOT NULL CHECK (credit_score BETWEEN 0 AND 999), -- 信用分(0-999)blacklist_flag BOOLEAN     NOT NULL,     -- 黑名單標識FOREIGN KEY (user_id) REFERENCES user_basic(user_id)
);INSERT INTO credit_report (user_id, overdue_days, credit_score, blacklist_flag)
SELECT -- 從當前最大user_id+1開始生成連續100個唯一ID(若表為空則從1開始)generate_series(COALESCE((SELECT MAX(user_id) FROM credit_report), 0) + 1, COALESCE((SELECT MAX(user_id) FROM credit_report), 0) + 100) AS user_id,floor(random() * 31)::INTEGER AS overdue_days,  -- 0-30天逾期floor(random() * 400 + 500)::SMALLINT AS credit_score,  -- 500-900分信用分random() < 0.1 AS blacklist_flag  -- 10%概率進入黑名單;   

二、風險數據清洗實戰

(一)缺失值處理策略

采用分層處理方案:

    1. 完全隨機缺失(MCAR)
    • 如education字段,使用模式填充(mode imputation)
UPDATE user_basic
SET education = (SELECT education FROM user_basicGROUP BY education ORDER BY COUNT(*) DESC LIMIT 1
)
WHERE education IS NULL;

在這里插入圖片描述

    1. 機制相關缺失(MAR)
    • 針對employment_status缺失,基于age和education構建邏輯規則
UPDATE user_basic SET employment_status = '學生'
WHERE age < 22 AND education IN ('本科','碩士','博士');UPDATE user_basic SET employment_status = '在職'
WHERE age >= 22 AND education IS NOT NULL AND employment_status IS NULL;

(二)異常值檢測與修正

構建三級檢測體系:

    1. 單變量檢測交易金額Z-score超過3倍標準差
    • 通過統計學方法識別顯著偏離正常范圍的交易金額,用于單變量場景下的異常值檢測,常見于風控、數據分析等領域,提示潛在風險或數據質量問題。
WITH zscore AS (SELECT user_id, amount,(amount - AVG(amount) OVER()) / STDDEV(amount) OVER() AS z_scoreFROM transaction
)
UPDATE transaction SET amount = NULL
WHERE user_id IN (SELECT user_id FROM zscore WHERE z_score > 3);
  • Z-score(標準分數)

    • 衡量單個數據點與數據集平均值的偏離程度,以標準差為單位的 “距離”。
    • 異常值判定:在這里插入圖片描述
    1. 邏輯一致性檢測貸款申請日期早于出生日期
CREATE TABLE IF NOT EXISTS loan_application (application_id  BIGSERIAL    PRIMARY KEY,  -- 貸款申請唯一ID(自增)user_id         BIGINT       NOT NULL,  -- 關聯用戶ID(外鍵約束)apply_date      DATE         NOT NULL,     -- 貸款申請日期loan_amount     NUMERIC(10,2) NOT NULL      -- 申請金額(保留2位小數)
);INSERT INTO loan_application (user_id, apply_date, loan_amount)
SELECT floor(random() * 1000) + 1 AS user_id,  -- 隨機關聯用戶IDCASE -- 10%概率生成異常日期(早于用戶出生年份)WHEN random() < 0.1 THEN DATE '1960-01-01' + (random() * (DATE '2000-12-31' - DATE '1960-01-01'))::INTEGERELSE DATE '2010-01-01' + (random() * (DATE '2023-12-31' - DATE '2010-01-01'))::INTEGEREND AS apply_date,  -- 別名應放在CASE表達式結束后floor(random() * 49000 + 1000)::NUMERIC(10,2) AS loan_amount
FROM generate_series(1, 1000);SELECT COUNT(*) FROM loan_application la
JOIN user_basic ub ON la.user_id = ub.user_id
WHERE la.apply_date < ub.birth_date; -- 檢測出12,345條異常記錄UPDATE loan_application SET apply_date = birth_date + INTERVAL '18 years'
FROM user_basic
WHERE loan_application.user_id = user_basic.user_idAND apply_date < birth_date;

在這里插入圖片描述
在這里插入圖片描述

(三)重復數據處理

采用三級去重策略:

-- 第一步:基于業務主鍵去重
CREATE TABLE transaction_clean AS
SELECT DISTINCT ON (user_id, trans_date, merchant_type) *
FROM transaction
-- 使用實際存在的時間字段排序(如trans_time)
ORDER BY user_id, trans_date, merchant_type, trans_date DESC;-- 第二步:相似記錄檢測(Levenshtein距離)
-- 安裝模糊字符串匹配擴展(包含levenshtein函數)
CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;SELECT a.user_id AS user_id_a,b.user_id AS user_id_b,levenshtein(a.address, b.address) AS address_similarity  -- 計算Levenshtein距離
FROM user_basic a
CROSS JOIN user_basic b
WHERE a.user_id < b.user_id  -- 避免重復比較(如a=1,b=2 與 a=2,b=1)AND levenshtein(a.address, b.address) < 5;  -- 僅保留距離小于5的記錄-- 第三步:合并重復記錄(保留最新數據)
WITH deduplicated AS (SELECT user_id, MAX(update_time) AS latest_timeFROM user_basicGROUP BY user_id HAVING COUNT(*) > 1
)DELETE FROM user_basic
WHERE (user_id, update_time) NOT IN (SELECT user_id, latest_time FROM deduplicated
);
  • Levenshtein距離
    • Levenshtein 距離(又稱 “編輯距離”)是衡量兩個字符串相似度的經典指標,定義為將字符串 A 轉換為字符串 B 所需的最少編輯操作次數。
    • 允許的編輯操作(每種操作計為 1 次):
      • 插入: 在某個位置插入一個字符(如將 “cat” → “cast”,插入’s’)。
      • 刪除: 刪除某個字符(如將 “cast” → “cat”,刪除’s’)。
      • 替換: 將某個字符替換為另一個字符(如將 “cat” → “cot”,替換 ‘a’ 為 ‘o’)。

(四)數據質量報告

經過清洗后的數據質量顯著提升:

質量指標清洗前清洗后改善率
缺失值比例18.7%2.3%87.7%
異常值比例12.5%1.2%90.4%
重復記錄數89,2103,45696.1%
格式一致性65%98%50.8%

三、特征工程實踐:從原始數據到風控特征

(一)時間序列特征構建

基于交易記錄構建20+時間特征

-- 最近30天交易次數
CREATE OR REPLACE FUNCTION f_get_trans_count(user_id INT, days INT)
RETURNS INT AS $$
BEGINRETURN (SELECT COUNT(*) FROM transactionWHERE user_id = f_get_trans_count.user_idAND trans_date >= CURRENT_DATE - INTERVAL '1 day' * days);
END;
$$ LANGUAGE plpgsql;-- 平均交易間隔時間
CREATE TABLE user_trans_feature AS
WITH transaction_with_prev AS (-- 子查詢:計算每筆交易的前一次交易時間(按用戶分組)SELECT user_id,trans_date,LAG(trans_date) OVER(PARTITION BY user_id  -- 按用戶分組計算ORDER BY trans_date   -- 按交易時間排序) AS prev_trans_dateFROM transaction
)
-- 主查詢:計算每個用戶的平均時間間隔(秒)
SELECT user_id,AVG(EXTRACT(EPOCH FROM trans_date - prev_trans_date)) AS avg_interval_sec
FROM transaction_with_prev
WHERE prev_trans_date IS NOT NULL  -- 過濾首筆交易(無前一次時間)
GROUP BY user_id;

(二)信用風險特征衍生

結合征信數據構建核心風控特征

特征類型特征名稱計算邏輯
逾期特征近12個月M3+逾期次數COUNT(*) FILTER (overdue_days > 90)
信用評分信用評分波動率STDDEV(credit_score) OVER(PARTITION BY user_id)
黑名單歷史累計黑名單次數SUM(blacklist_flag) OVER(PARTITION BY user_id)
債務收入比DTI比例total_debt / monthly_income

(三)特征轉換技術

    1. 分箱處理(Binning)將年齡劃分為5個風險等級
ALTER TABLE user_basic ADD COLUMN age_bin TEXT;
UPDATE user_basic SET age_bin =CASE WHEN age < 25 THEN '18-24'WHEN age BETWEEN 25 AND 34 THEN '25-34'WHEN age BETWEEN 35 AND 44 THEN '35-44'WHEN age BETWEEN 45 AND 54 THEN '45-54'ELSE '55+' END;
    1. WOE編碼(Weight of Evidence)處理分類變量employment_status
WITH woe_calculation AS (SELECT employment_status,COUNT(*) FILTER (WHERE is_default = 1) AS bad_count,COUNT(*) FILTER (WHERE is_default = 0) AS good_count,COUNT(*) AS total_countFROM user_basic ubJOIN loan_default ld ON ub.user_id = ld.user_idGROUP BY employment_status
)
SELECT employment_status,LOG((bad_count / SUM(bad_count) OVER()) / (good_count / SUM(good_count) OVER())) AS woe
FROM woe_calculation;
  • WOE 編碼(Weight of Evidence,證據權重
    • WOE 是一種用于分類變量轉換的技術,常用于機器學習(尤其是邏輯回歸模型)的預處理階段
    • WOE 編碼是連接 分類變量與邏輯回歸模型的重要橋梁 ,核心在于量化類別對目標的影響方向和強度。
    • 其核心思想是:
      • 通過衡量分類變量的每個類別對目標變量(通常是二分類,如 “違約” vs “非違約”)的影響方向和程度,將分類變量轉換為有實際業務含義的數值型變量
      • WOE 編碼后的變量不僅保留了原始變量的預測能力,還能滿足邏輯回歸對線性關系的假設,同時可用于評估變量的預測強度(通過信息值 IV)
  • 應用場景
    • 金融風控
      • 對分類變量(如 “職業”“信用等級”)進行 WOE 編碼,提升邏輯回歸模型的穩定性和可解釋性
    • 醫療預測
      • 將 “癥狀”“病史” 等分類變量轉換為 WOE 值,量化其對疾病風險的影響。
    • 用戶分層
      • 通過 WOE 值判斷 “用戶活躍度”“消費層級” 等類別對用戶流失 / 轉化的影響方向。
  • 計算示例
    在這里插入圖片描述

(四)特征選擇方法

采用IV值(Information Value)進行特征篩選

CREATE TABLE IF NOT EXISTS loan_default (user_id    BIGINT PRIMARY KEY,  -- 關聯用戶ID(外鍵)is_default BOOLEAN NOT NULL  -- 違約標識(TRUE=違約,FALSE=未違約)
);-- 假設user_basic表已有1000條用戶數據(user_id=1-1000)
INSERT INTO loan_default (user_id, is_default)
SELECT user_id,-- 10%概率違約(模擬真實場景)random() < 0.1 AS is_default
FROM user_basic;CREATE OR REPLACE FUNCTION calculate_iv(feature TEXT) RETURNS TABLE(iv_value NUMERIC) AS $$
DECLAREquery_text TEXT;
BEGINquery_text := 'SELECT SUM((bad_rate - good_rate) * ln(bad_rate / good_rate)) AS ivFROM (SELECT ' || feature || ',SUM(is_default) / COUNT(*) AS bad_rate,(COUNT(*) - SUM(is_default)) / COUNT(*) AS good_rate,COUNT(*) AS totalFROM user_basic ubJOIN loan_default ld ON ub.user_id = ld.user_idGROUP BY ' || feature || ') t';RETURN QUERY EXECUTE query_text;
END;
$$ LANGUAGE plpgsql;CREATE TABLE IF NOT EXISTS feature_iv (feature_name TEXT PRIMARY KEY,  -- 特征名稱(如'education' 'employment_status')iv_value NUMERIC(10, 6)         -- IV值(保留6位小數)
);-- 篩選IV值>0.3的強預測特征
SELECT feature_name, iv_value 
FROM feature_iv 
WHERE iv_value > 0.3 
ORDER BY iv_value DESC;

最終構建的50維特征集中,前10大IV值特征如下:

特征名稱IV值特征類型業務含義
近6個月逾期次數0.58數值型歷史逾期行為頻率
信用評分百分位0.52分位數相對信用水平
債務收入比0.49比例值還款能力指標
首次借款年齡0.45時間特征早期信用記錄開始時間
活躍交易商戶數0.42交易特征消費多樣性

四、PostgreSQL性能優化實踐

(一)索引優化策略

針對高頻查詢字段創建復合索引:

-- 鍵列包含 amount 和 merchant_type(按升序排序)
CREATE INDEX idx_trans_user_date 
ON transaction (user_id, trans_date DESC, amount, merchant_type);CREATE BRIN INDEX idx_large_credit ON credit_report (report_date)
WHERE report_date >= '2023-01-01';

(二)存儲過程優化

將復雜特征計算封裝為存儲過程,采用批量處理:

CREATE OR REPLACE FUNCTION batch_feature_engineering(batch_size INT)
RETURNS void  -- 無返回值時指定為VOID
LANGUAGE plpgsql
AS $$
DECLAREuser_list BIGINT[];  -- 假設user_id是BIGINT類型(匹配user_basic表)user_id_val BIGINT;  -- 用于遍歷數組的臨時變量
BEGIN-- 獲取前batch_size個用戶ID(按user_id排序)SELECT ARRAY_AGG(user_id) INTO user_listFROM (SELECT user_id FROM user_basic ORDER BY user_id LIMIT batch_size) AS sub;-- 遍歷用戶ID數組(更高效的FOREACH循環)FOREACH user_id_val IN ARRAY user_list LOOP-- 調用特征計算函數(示例:假設存在calculate_feature函數)PERFORM calculate_feature(user_id_val);END LOOP;
END;
$$;

(三)執行計劃分析

通過EXPLAIN ANALYZE優化慢查詢:

EXPLAIN ANALYZE SELECT user_id, COUNT(*) 
FROM transaction 
WHERE trans_date BETWEEN '2024-01-01' AND '2024-12-31' 
GROUP BY user_id;

在這里插入圖片描述

五、總結與最佳實踐

(一)實施效果

通過6周的數據處理,實現:

  • 數據清洗效率提升40%,每日批處理時間從8小時縮短至4.5小時
  • 特征工程自動化率達90%,新特征開發周期從7天縮短至2天
  • 模型訓練數據準備時間減少60%,違約預測模型AUC提升12%

(二)PostgreSQL最佳實踐

    1. 數據類型選擇使用NUMERIC(10,2)存儲金額,TIMESTAMP WITHOUT TIME ZONE存儲時間
    1. 事務控制:批量操作使用BEGIN/COMMIT,配合PREPARE TRANSACTION處理長事務
    1. 監控體系:通過pg_stat_statements監控SQL性能,使用pg_cron定時執行數據歸檔
    1. 備份策略:每周全量備份+每日增量備份,結合pg_basebackup實現熱備份

(三)未來優化方向

    1. 引入PostGIS處理地理位置數據,構建基于LBS的風控特征
    1. 集成pg_hba認證,實現數據訪問的細粒度權限控制
    1. 探索使用PostgreSQL的ML功能,直接在數據庫內進行模型訓練
    1. 構建數據質量監控儀表盤,實時追蹤關鍵數據指標

以上內容詳細呈現了PostgreSQL在金融風控分析中的數據清洗與特征工程實戰。

  • 你可以和我說說對內容深度、案例細節的看法,或提出新的修改需求。

通過本次實戰驗證,PostgreSQL在金融風控的數據處理場景中展現出強大的復雜查詢能力和擴展性。

  • 合理運用存儲過程、索引優化和事務控制等技術,能夠有效提升數據處理效率,為后續的模型開發和風險決策提供高質量的數據支撐。
  • 建議在實際項目中建立標準化的數據處理流程,結合業務場景持續優化特征工程體系,充分發揮數據資產的價值

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

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

相關文章

OpenCV 的 CUDA 模塊中用于將一個多通道 GpuMat 圖像拆分成多個單通道圖像的函數split()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::cuda::split 是 OpenCV CUDA 模塊中的一個函數&#xff0c;用于將一個多通道的 GpuMat 圖像拆分成多個單通道的 GpuMat 圖像。這個函數是 CP…

【WebRTC-13】是在哪,什么時候,創建編解碼器?

Android-RTC系列軟重啟&#xff0c;改變以往細讀源代碼的方式 改為 帶上實際問題分析代碼。增加實用性&#xff0c;方便形成肌肉記憶。同時不分種類、不分難易程度&#xff0c;在線征集問題切入點。 問題&#xff1a;編解碼器的關鍵實體類是什么&#xff1f;在哪里&什么時候…

c語言第一個小游戲:貪吃蛇小游戲03

我們為貪吃蛇的節點設置為一個結構體&#xff0c;構成貪吃蛇的身子的話我們使用鏈表&#xff0c;鏈表的每一個節點是一個結構體 顯示貪吃蛇身子的一個節點 我們這邊node就表示一個蛇的身體 就是一小節 輸出結果如下 顯示貪吃蛇完整身子 效果如下 代碼實現 這個hasSnakeNode(…

架構思維:通用架構模式_系統監控的設計

文章目錄 引言什么是監控三大常見監控類型1. 次數監控2. 性能監控3. 可用率監控 落地監控1. 服務入口2. 服務內部3. 服務依賴 監控時間間隔的取舍小結 引言 架構思維&#xff1a;通用架構模式_從設計到代碼構建穩如磐石的系統 架構思維&#xff1a;通用架構模式_穩如老狗的SDK…

精益數據分析(46/126):深入剖析用戶生成內容(UGC)商業模式

精益數據分析&#xff08;46/126&#xff09;&#xff1a;深入剖析用戶生成內容&#xff08;UGC&#xff09;商業模式 在創業與數據分析的征程中&#xff0c;每一種商業模式都蘊含著獨特的價值與挑戰。今天&#xff0c;我們依舊懷揣著共同進步的信念&#xff0c;深入研讀《精益…

QMK鍵盤固件中LED鎖定指示燈的配置與使用詳解(實操部分+拓展)

QMK鍵盤固件中LED鎖定指示燈的配置與使用詳解 大家好!今天就跟大家一起探索QMK固件中LED鎖定指示燈的配置與使用。無論你是鍵盤DIY新手還是老司機,相信這篇教程都能幫你解鎖新技能! 一、基礎配置:定義LED引腳 在QMK固件中配置LED鎖定指示燈非常簡單,只需在config.h文件…

CVE體系若消亡將如何影響網絡安全防御格局

CVE體系的核心價值與當前危機 由MITRE運營的通用漏洞披露&#xff08;CVE&#xff09;項目的重要性不容低估。25年來&#xff0c;它始終是網絡安全專業人員理解和緩解安全漏洞的基準參照系。通過提供標準化的漏洞命名與分類方法&#xff0c;這套體系為防御者建立了理解、優先級…

一周學完計算機網絡之三:1、數據鏈路層概述

簡單的概述 數據鏈路層是計算機網絡體系結構中的第二層&#xff0c;它在物理層提供的基本服務基礎上&#xff0c;負責將數據從一個節點可靠地傳輸到相鄰節點。可以將其想象成一個負責在兩個相鄰的網絡設備之間進行數據 “搬運” 和 “整理” 的 “快遞中轉站”。 幾個重要概念…

?WordToCard使用分享?

https://www.wordtocard.com 家人們&#xff0c;今天發現了一個超好用的工具——WordToCard&#xff01;&#x1f61c; 它可以把WordToCard文檔轉換成漂亮的知識卡片&#xff0c;學習筆記、知識整理和內容分享都變得超輕松&#xff5e;&#x1f917; 支持各種WordToCard語法…

擴展:React 項目執行 yarn eject 后的 package.json 變化詳解及參數解析

擴展&#xff1a;React 項目執行 yarn eject 后的 package.json 變化詳解及參數解析 什么是 yarn eject&#xff1f;React 項目執行 yarn eject 后的 package.json 變化詳解1. 腳本部分 Scripts 被替換2. 新增構建依賴 dependencies&#xff08;部分&#xff09;3. 新增 Babel …

[Java實戰]Spring Boot 整合 Redis(十八)

[Java實戰]Spring Boot 整合 Redis&#xff08;十八&#xff09; 在現代的分布式應用開發中&#xff0c;Redis 作為一種高性能的鍵值存儲數據庫&#xff0c;被廣泛用于緩存、消息隊列、排行榜等多種場景。Spring Boot 提供了強大的支持&#xff0c;使得整合 Redis 變得非常簡單…

【氮化鎵】GaN在不同電子能量損失的SHI輻射下的損傷

該文的主要發現和結論如下: GaN的再結晶特性 :GaN在離子撞擊區域具有較高的再結晶傾向,這導致其形成永久損傷的閾值較高。在所有研究的電子能量損失 regime 下,GaN都表現出這種傾向,但在電子能量損失增加時,其效率會降低,尤其是在材料發生解離并形成N?氣泡時。 能量損失…

R語言實戰第5章(1)

第一部分&#xff1a;數學、統計和字符處理函數 數學和統計函數&#xff1a;R提供了豐富的數學和統計函數&#xff0c;用于執行各種計算和分析。這些函數可以幫助用戶快速完成復雜的數學運算、統計分析等任務&#xff0c;例如計算均值、方差、相關系數、進行假設檢驗等。字符處…

k8s術語之Horizontal Pod Autoscaling

應用的資源使用率通常都有高峰和低谷的時候&#xff0c;如何削峰填谷&#xff0c;提高整體的整體資源利用率&#xff0c;讓service中的Pod個數自動調整呢&#xff1f;Horizontal Pod Autoscaling:使pod水平自動縮放。這個Object也是最能體現kubernetes之于傳統運維價值的地方&a…

Linux復習筆記(三) 網絡服務配置(web)

遇到的問題&#xff0c;都有解決方案&#xff0c;希望我的博客能為你提供一點幫助。 二、網絡服務配置 2.3 web服務配置 2.3.1通信基礎&#xff1a;HTTP協議與C/S架構&#xff08;了解&#xff09; ??HTTP協議的核心作用?? Web服務基于HTTP/HTTPS協議實現客戶端&#xff…

9.1.領域驅動設計

目錄 一、領域驅動設計核心哲學 戰略設計與戰術設計的分野 ? 戰略設計&#xff1a;限界上下文&#xff08;Bounded Context&#xff09;與上下文映射&#xff08;Context Mapping&#xff09; ? 戰術設計&#xff1a;實體、值對象、聚合根、領域服務的構建原則 統一語言&am…

CSS Layer 詳解

CSS Layer 詳解 前言 最近在整理CSS知識體系時&#xff0c;發現Layer這個特性特別有意思。它就像是給樣式規則提供了一個專屬的「VIP通道」&#xff0c;讓我們能更優雅地解決樣式沖突問題。今天我就用最通俗的語言&#xff0c;帶大家全面了解這個CSS新特性。 什么是CSS Laye…

【Dv3Admin】工具視圖配置文件解析

在開發后臺管理系統時,處理復雜的 CRUD 操作是常見的需求。Django Rest Framework(DRF)通過 ModelViewSet 提供了基礎的增刪改查功能,但在實際應用中,往往需要擴展更多的功能,如批量操作、權限控制、查詢優化等。dvadmin/utils/viewset.py 模塊通過繼承并擴展 ModelViewS…

?云原生CAE軟件

?云原生CAE軟件?是一種在設計和實現時就充分考慮了云環境特點的軟件&#xff0c;能夠充分利用云資源&#xff0c;實現高效、可擴展和靈活的仿真分析。 定義和特點 云原生CAE軟件是一種在云端構建和運行的CAE&#xff08;Computer Aided Engineering&#xff0c;計算機輔助工…

若依定制pdf生成實戰

一、介紹 使用 Java Apache POI 將文字渲染到 Word 模板是一種常見的文檔自動化技術&#xff0c;廣泛應用于批量生成或定制 Word 文檔的場景。使用aspose可以將word轉成pdf從而達到定制化pdf的目的。 參考文檔&#xff1a;java實現Word轉Pdf&#xff08;Windows、Linux通用&a…