存貨庫存模型升級始末|得物技術
1 背景
公司存在多種物料種類、不同型別的庫存和價值管理不一,存貨系統目前主要接入包裝耗材、商品資料。目的是為了:
管理出入庫價格、數量、庫齡等業務資料,便於管理部門追溯及財務管控,協助倉庫提升存貨和物料的管理能力。
管理倉庫物料及商品的費用價值,提升核算及業務的效率,實現業務資訊一體化及憑證自動化。
輔助計劃或採購部門檢視庫存,為採購計劃提供資料支撐。
存貨系統先接入了包耗材資料,這類資料的特性是行資料不多,但每行數量很大。後接入了商品的庫存,由於行資料量增長N倍以上,並且隨著業務不斷增長資料量越來越大,考慮到原有底層設計不能很好的支撐這麼大的資料量,故有了這次系統的模型升級。
2 面對的問題
2.1 資料承接點問題
原業務流程在資料承接上跨越了核心P0鏈路後才把資料落地到庫存應用(造成了一定的技術風險,歷史上也確實發生過一次技術故障 ,消費上游訊息程式碼有bug,導致P0清結算鏈路資料下發出現阻塞,影響了部分結算單據的處理時效):
(1)資料落庫在單據系統
(2)關聯訂單資料
(3)查詢出未稅單價
(4)組裝後下發庫存
2.1 資料儲存設計問題(資料每日倍化膨脹)
重構前的設計,成本表儲存邏輯:不管每天成本價有沒有變化,都會維護一條記錄;臺賬表儲存邏輯:每天如果有出入庫資料按照業務型別彙總+2條期初期末資料,如果沒有出入庫資料,只儲存2條期初期末資料。從儲存邏輯不難看出儲存了很多冗餘資料,且臺賬表期初期末資料以行的形式儲存也是不合理的。
如下是例子資料
2.2.1 明細表(record)
每天出入庫、調價單的資料
2.2.2 成本表(cost_price)
所有物料每天都需要計算一個成本價
2.2.3 臺賬表(ledger)
日臺賬:彙總當天明細資料、以及期初、期末價格和數量 月臺賬:彙總當月明細資料、以及期初、期末價格和數量
2.3 頁面資料查詢效能瓶頸
2.3.1 大盤&臺賬表分析:
透過大盤和臺賬表分析,在接入倉庫商品資料後,頁面查詢介面耗時很高,介面效能存在問題
2.3.2 日/月進銷存也面臨同樣的問題
3 解決方案
3.1 資料承接最佳化
3.1.1 庫存應用直接承接單據池落地資訊表
3.1.2 具體實現過程
3.2 資料儲存設計問題最佳化
3.2.1 簡單示例
比如一個物料,3月1日的成本價為100元,後在3月30日又進一件成本價200元的相同物料,則我們庫裡的記錄資訊如下, 2條資料即可 , 【無須每日更新資料,只有當前物料當日有出入庫、調價資料時,才需要插入當日最新資料】,
實際場景,當業務程式碼查詢3月10日的成本價時,往前查詢到03.01的資料即可
3.2.2 期望的資料儲存樣式
而不是30條資料 ( 03.02 至 03.29,這28條資料都是冗餘的資料)
3.2.3 頁面資料查詢效能瓶頸解決方案
由於資料儲存邏輯變更,只會儲存有變動的資料,而進銷存報表是每天都需要產出的不管資料有沒有變化。結合當前業務邏輯以及資料量最後決定把資料同步到數倉,在數倉進行資料補全後,透過報表平臺拉取報表資訊。
棄用當前後管平臺查詢報表 轉為使用報表平臺拉取庫存報表資訊
資料同步流程如下:
報表平臺具備生成類似於Excel的資料展示,以及任意維度查詢資訊的能力,同時也具備Excel匯出的功能
4 重構後的價值
4.1 量化業務價值:
每月節省核算以及稽核時間約30小時,佔核算組總月結時間比例為30%。
4.2 不可量化業務價值
將倉庫業務納入存貨系統,龐大資料量透過系統自動核算,輸出表格,節約手工核算的時間,以及提升核算資料的準確性,解決無法透過表格實現的困境;
提升核算質量的同時,可以完成更多庫存、銷售資料分析,如週轉率分析,出入庫渠道分析,減值計提等等。分析結果提升公司退貨商品的管理以及庫存管理。
功能重構從基礎資料、入庫模型、調價單、成本計算、出庫模型、重算、報表都做了升級,在資料接收、成本計算等過程中增加了校驗邏輯和修復資料的功能。
4.3 技術價值
(1)技術價值:首次嘗試了線上TIDB切換流程(包括資料複製、資料同步、資料比對、資料切流),積累了TIDB切換經驗,給後續的TIDB遷移專項提供了經驗沉澱。
(2)技術價值:把P0級的清結算應用裡的部分功能遷移到庫存應用中,解決了大流量的倉庫資料下傳至清結算應用的風險,實現了交易和非交易在應用級別的解耦和隔離。
(3) 團隊價值:以賽代練,透過該專案培養了組內成員對於數倉平臺和報表平臺的實踐和使用,拓寬了團隊整體的技術棧,並積累了資料開發的對應經驗,也落地了數倉平臺和報表平臺的操作使用文件(節省了後續團隊成員的資料開發熟悉接入的成本)。
來自 “ 得物技術 ”, 原文作者:通古;原文連結:http://server.it168.com/a2023/0307/6792/000006792756.shtml,如有侵權,請聯絡管理員刪除。
相關文章
- 可計算儲存技術全面升級CSD 3000儲存體驗
- 得物技術多興趣召回模型實踐模型
- 深度乾貨 | 讓資料存得起 看得見,雲原生多模資料庫Lindorm技術解析資料庫ORM
- 得物直播低延遲探索 | 得物技術
- 前端儲存技術前端
- 深入理解Sora技術原理|得物技術Sora
- TDengine 的儲存引擎升級之路儲存引擎
- openGauss儲存技術(一)——行儲存引擎儲存引擎
- 阿里新零售中的智慧補貨(I)— 庫存模型阿里模型
- DartVM GC 深度剖析|得物技術DartGC
- 分散式系統技術:儲存之資料庫分散式資料庫
- 如何擴充套件大模型的上下文長度|得物技術套件大模型
- 知識抽取簡述|得物技術
- 下單穩定性治理 | 得物技術
- SpEL應用實戰|得物技術
- 得物技術登入元件重構元件
- 155_模型_Power BI & Power Pivot 進銷存之安全庫存模型
- OceanStor Pacific 9920分散式儲存獲得IT168技術卓越獎分散式
- 5G、物聯網等新技術加持,打造智慧物業管理“升級版”
- 雲端計算儲存技術
- 雲端儲存的技術原理
- Spring Boot:使用Redis儲存技術Spring BootRedis
- 前端儲存技術Cookie,Storage,IndexedDB前端CookieIndex
- MongoDB技術分享:WiredTiger儲存引擎MongoDB儲存引擎
- 雲端儲存技術體系
- TiDB 技術內幕 - 說儲存TiDB
- 庫存系統:倉庫層、排程層、銷售層的庫存資料模型設計模型
- 從0到1,億級訊息推送的穩定性保障|得物技術
- 從0到1,億級訊息推送的穩定性保障 | 得物技術
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- Android的3種資料儲存技術(一)File儲存Android
- 雲端計算導論 # 3 雲端儲存技術:概念、結構模型、關鍵技術、分散式資料儲存、常見儲存結構、應用與問題模型分散式
- StarRocks存算分離在得物的降本增效實踐
- 什麼是庫存?什麼是零庫存?庫存的定義
- 不同體系分散式儲存技術的技術特性分散式
- 【得物技術】深入理解synchronzied底層原理
- openGauss儲存技術(二)——列儲存引擎和記憶體引擎儲存引擎記憶體
- 資料庫儲存與索引技術(三)LSM樹實現案例資料庫索引