目錄
1.研究背景與意義
2、國內外研究現狀
3、相關理論與技術
(一)分布式計算系統Spark
(二)數據倉庫Hive
(三)讀取服務器本地磁盤的日志數據Flume
(四)分布式消息隊列Kafka
4、設計目標
(一)訂單管理功能
(二)訂單數據實時預測
(三)庫存管理功能
(四)庫存預警
(五)物流管理功能
(六)商品庫存實時分析功能
(七)供應鏈訂單數據報表與可視化
(八)系統管理功能
5、設計思路
(一)研究路線。
(二)需求分析。
1.系統功能性需求
2. 系統非功能性需求
(三)系統概要設計。
1.系統架構設計
6、參考文獻
1.研究背景與意義
????????隨著時代的發展和IT技術的進步,大數據等技術在電商領域被廣泛應用。對于大多數電商企業而言,傳統的供應鏈管理系統面臨著許多挑戰,如數據孤島、響應遲緩和分析能力不足等問題2023年,我國供應鏈數字化服務的收入約為3.6萬億元,同比增速11.0%,受宏觀經濟波動等不穩定因素影響,行業增速較過去兩年呈下降趨勢。其中,供應鏈數字化物流服務規模達到2.9萬億元,同比增速9.6%,占供應鏈數字化服務收入總規模的81.2%;供應鏈數字化資金流服務規模達到3454億元,同比增速22.8%,占供應鏈數字化服務收入總規模的9.8%;供應鏈數字化信息流服務規模達到3214億元,同比增速12.6%,占供應鏈數字化服務收入總規模的9.0%。[1]傳統供應鏈管理系統存在以下幾個方面的問題:供應鏈的各個環節使用不同系統,數據無法互聯互通,導致數據分散,無法進行綜合分析,庫存無法同步,庫存不對,以及無法進行智能庫存預測,庫存預警的問題。[2]使用傳統的技術手段,系統在面臨海量訂單和突發情況時的反應速度較慢[3],影響了業務處理效率。傳統供應鏈管理系統的數據分析能力有限,無法進行深入的數據挖掘和智能計算,難以為決策提供有力支持。
????????鑒于以上情況,本課題擬建設《基于Spark的電商供應鏈系統》對數據基于Spark進行實時庫存預測和實時庫存報警,主要解決電商多渠道銷售時候庫存難同步,庫存不準確,庫存難預測的問題。將各供應鏈環節的數據進行整合,利用Spark的實時計算特性進行實時庫存計算,還能對系統積累的海量數據進行實時多維度分析和預測,挖掘有價值的信息,為企業的業務發展和決策提供支持。
2、國內外研究現狀
????????為了解決電商企業隨著業務高速擴張和用戶需求不斷激增所帶來的系統響應問題,學術界和工業界在供應鏈管理系統方面進行了多項研究。有的研究認為供應鏈創新具有流程、技術和網絡結構三個要素,有的將供應鏈創新分為創新目標、創新特征和供應鏈特征三個維度,有的將供應鏈創新劃分為技術創新、概念創新兩大類和技術、結構、運營、革命性創新四小類。[4]迄今為止,供應鏈創新經歷了基于資源觀的供應鏈整合能力創新、基于新一代信息技術支撐的數字化供應鏈管理創新和基于智能化、網絡化供應鏈骨架的經營體系重塑創新3個階段。[5]通過對已有供應鏈創新與應用試點政策效果評價的研究進行梳理后發現,供應鏈創新與應用試點政策通過不同路徑對試點企業發展發揮了一定的正面促進作用,如顯著促進企業經營績效和技術創新水平提升。[6]企業通過供應鏈數字化變革,以及供應鏈標準化、集約化、專業化和平臺型建設,增強了鏈主創新能力。[7]發展供應鏈金融引導產業低碳轉型發展,可以提升勞動力投資效率、物資采購集中度和資金使用效率、供應鏈效率,促進供應鏈低碳發展。[8]國內供應鏈管理系統在發展過程中仍面臨一些挑戰。一方面,標準化和規范化程度有待提高。目前,國內供應鏈管理系統在數據格式、接口標準等方面尚未形成統一規范[9],導致企業間的信息共享和協同作業存在一定難度。另一方面,部分企業對供應鏈管理系統的認識不足,缺乏專業的管理人才和技術支持,導致系統的應用效果不盡如人意。[10]
????????通過研讀以上國內外研究成果,發現電商供應鏈管理系統在數據分析能力等方面還有較大的優化空間,從積極方面來看,一定量的庫存可以提高企業對市場的反應速度,能夠快速滿足下游企業或客戶的需求;從消極方面來看,過多庫存會增加庫存持有成本,從而減少企業盈利。因此,供應鏈庫存管理目標是將庫存水平控制在合理范圍內。因此,本項目決定使用Spark作為核心數據處理技術,?
????????采用大數據分析技術,構建一個高效、靈活、智能的電商供應鏈系統,主要對商品的庫存進行分析和預測,達到商品庫存的智能調撥和智能預警的效果。該系統能夠實時處理和分析海量供應鏈數據,提供高效的供應鏈管理解決方案。
3、相關理論與技術
(一)分布式計算系統Spark
????????Spark是一個開源的分布式計算系統,被廣泛用于大數據處理。其核心是實現高效、分布式的數據處理和實時分析。Spark提供了豐富的API,支持多種數據操作和機器學習算法。Spark使用先進的DAG(Directed Acyclic Graph,有向無環圖)執行引擎,支持循環數據流與內存計算,基于內存的執行速度可比Hadoop MapReduce快上百倍,基于磁盤的執行速度也能快十倍。Spark提供了完整而強大的技術棧,包括SQL查詢、流式計算、機器學習和圖算法組件,這些組件可以無縫整合在同一個應用中,足以應對復雜的計算。Spark Streaming是將流式計算分解成一系列短小的批處理作業。這里的批處理引擎是Spark Core,也就是把Spark Streaming的輸入數據按照batch size(如1秒)分成一段一段的數據(Discretized Stream),每一段數據都轉換成Spark中的RDD(Resilient Distributed Dataset),然后將Spark Streaming中對DStream的Transformation操作變為針對Spark中對RDD的Transformation操作,將RDD經過操作變成中間結果保存在內存中。
(二)數據倉庫Hive
????????Hive是建立在Hadoop之上的,所有Hive的數據都是存儲在HDFS中的。而數據庫則可以將數據保存在塊設備或者本地文件系統中。Hive 中沒有定義專門的數據格式,數據格式可以由用戶指定,用戶定義數據格式需要指定三個屬性:列分隔符(通常為空格、”\t”、”\x001″)、行分隔符(”\n”)以及讀取文件數據的方法(Hive 中默認有三個文件格式 TextFile,SequenceFile 以及 RCFile)。由于在加載數據的過程中,不需要從用戶數據格式到 Hive 定義的數據格式的轉換,因此,Hive 在加載的過程中不會對數據本身進行任何修改,而只是將數據內容復制或者移動到相應的 HDFS 目錄中。而在數據庫中,不同的數據庫有不同的存儲引擎,定義了自己的數據格式。所有數據都會按照一定的組織存儲,因此,數據庫加載數據的過程會比較耗時。
(三)讀取服務器本地磁盤的日志數據Flume
????????基于流式架構,具有靈活簡單的特點,主要用于實時讀取服務器本地磁盤的日志數據,并將這些數據寫入到諸如Hadoop HDFS等數據存儲系統中。Flume的部署單元稱為Agent,每個Agent本質上是一個JVM(Java虛擬機)進程。Agent內部以事件(Event)的形式將數據從源頭(Source)送至目的地(Sink)。Flume支持分布式集群部署,具有良好的擴展性。當節點出現故障時,日志能夠被傳送到其他節點上而不會丟失。Flume采用流模式進行數據實時采集。
(四)分布式消息隊列Kafka
????????Kafka是一個開源的分布式流處理平臺,由Apache軟件基金會開發,主要用于構建實時數據管道和流應用。它是一種高吞吐量的分布式發布訂閱消息系統,能夠處理消費者在網站中的所有動作流數據,如網頁瀏覽、搜索和其他用戶行為。支持高吞吐量的消息傳遞,能夠處理大量數據。將消息持久化到磁盤,并可以在多個副本之間復制,以實現容錯性。設計目標是達到亞秒級的延遲,適合實時數據處理場景。
4、設計目標
????????本課題擬利用Flume、Hive、Spark等大數據分析處理技術構建系統,將原有的數據處理工具在大數據環境下進行實時數據采集,基于隨機森林算法進行計算,使用Kafka進行實時數據采集和使用Hive進行數據存儲,建立統一的數據源,主要包含多平臺統一訂單管理中心、庫存管理、商品管理、物流管理、商品銷售預測、商品庫存分析、供應鏈訂單數據可視化、系統管理等功能。
(一)訂單管理功能
????????平臺實時跟蹤訂單的生成、處理和交付狀態。主要包括訂單來源,訂單明細,商品數量,商品信息,物流狀態。
(二)訂單數據實時預測
????????基于歷史銷售數據,進行訂單數據的預測,為采購和庫存管理提供參考。通過準確的銷售預測,可以合理安排庫存和生產,降低成本,提高運營效率。
(三)庫存管理功能
????????系統可以進行商品的庫存管理,關聯訂單,入庫單和出庫單進行自動的庫存添加和修改,產生的庫存數據可以用于庫存分析功能。實時掌握庫存數量、位置和狀態,避免缺貨或積壓。通過準確的庫存跟蹤,你可以及時了解庫存情況,合理安排補貨和銷售策略。
(四)庫存預警
????????設置庫存上下限預警,當庫存水平達到預警線時,系統自動提醒進行補貨或調整銷售策略。這有助于你提前做好庫存管理,避免因庫存不足或過多而影響業務。
(五)物流管理功能
????????分析和優化物流路徑,提供物流狀態追蹤。系統可以收集和分析物流數據,優化物流路徑,根據不同的配送情況進行物流的路線重放,路線推薦。
(六)商品庫存實時分析功能
????????基于Flume進行數據采集使用Kafka進行數據傳輸,存儲到Hive中,使用Spark進行實時計算和數據清洗,將計算結果存儲到Mysql中。基于移動平均算法進行庫存的預測,預測出階段日期內的庫存走勢,方便進行商品的入庫,商品的調撥滿足不同區域的訂單銷售。
(七)供應鏈訂單數據報表與可視化
????????提供統一的可視化界面,展示訂單的數據分析結果。系統支持多種視圖和報表,幫助用戶及時掌握供應鏈狀態和趨勢。
(八)系統管理功能
????????系統管理功能主要包括用戶管理、角色管理、權限管理和系統監控等。不同的用戶擁有不同的功能權限,系統管理員可以通過管理平臺配置和維護系統。
5、設計思路
(一)研究路線。
????????本課題基于Spark的大規模電商供應鏈管理系統,結合實際電商供應鏈平臺的功能需求,從用戶的角度出發,具體描述系統的主要功能,包括庫存管理、訂單處理、供應商管理、商品管理、進出庫管理、庫存監控、庫存預測、調撥單等模塊,深入分析現有基于Spark進行大數據處理的研究文獻和技術資料,了解Hive、Flume等大數據技術的應用與原理。之后將著重考慮數據存儲結構、服務器負載均衡、服務注冊等關鍵機制的設計,以確保系統的高效性和可擴展性。最后,進行系統的開發、全面測試、部署和評審實施,以確保系統能夠在實際應用中穩定運行并滿足預期需求。如圖1所示。
圖1 研究路線圖
(二)需求分析。
1.系統功能性需求
????????本系統主要提供給三類用戶使用:系統管理員用戶、倉儲管理員用戶。根據需求分析,各類用戶的具體功能如下:
(1)系統管理員用戶
管理員功能圖如圖2所示。
圖2 管理員功能圖
①用戶管理
對系統用戶進行管理和維護,包括用戶名稱、單位、部門、職務等信息。
②角色管理
對系統中的角色進行管理和維護。
③權限管理
控制系統中功能的可用性和數據操作權限。
④系統監控
實時監控系統工作狀態和性能指標。
(2)倉儲管理員用戶
倉庫管理員功能圖如圖3所示。
圖3 倉庫管理員功能圖
①商品管理
????????電商供應鏈管理系統中的商品管理功能點是主要包括商品的新增和商品的修改以及根據商品的名稱進行模糊產線。商品主要包括的屬性有名稱、描述、價格、品牌、規格型號等。
②訂單管理
????????電商供應鏈管理系統中的訂單管理功能點是主要包括根據渠道來源和商品進行訂單的查詢,根據日期進行商品的查詢,查看具體訂單的詳情。另外支持手動錄入訂單信息,以滿足特殊場景下的訂單處理需求。
????????銷售預測,基于歷史銷售數據和市場趨勢進行銷售預測,為采購和庫存管理提供參考。通過準確的銷售預測,你可以合理安排庫存和生產,降低成本,提高運營效率。
③入庫管理
????????倉庫管理人員根據入庫申請單,對到貨商品進行數量、規格、批次等信息的核對,確認無誤后進行收貨操作。根據倉庫布局和存儲需求,合理規劃商品的存儲位置和上架方式,確保商品存儲的安全性和易取性。對異常情況進行及時處理,包括與供應商溝通退換貨、調整庫存數據等,確保入庫流程的順暢進行。支持通過商品名稱、批次、入庫時間等多種方式查詢入庫記錄,便于企業隨時了解商品的入庫情況。
④出庫管理
????????在商品離開倉庫前,確保出庫商品與訂單信息一致。對出庫商品進行二次復核,確保數量、規格、批次等信息無誤。在商品出庫后,系統自動扣減相應庫存數量,確保庫存數據的準確性。與電商平臺或其他銷售渠道的庫存數據進行實時同步,確保線上線下庫存數據的一致性。
⑤實時庫存監控分析預測
????????倉庫管理員可以對商品的庫存預警值進行設置,商品的庫存進入預警值范圍內的時候會進行庫存預警通知。基于移動平均法進行庫存預測,生成對應的預測記錄,幫助倉庫管理員進行調撥單創建。基于Flume進行數據采集之后,Kafka進行數據實時傳輸使用Hive進行數據存儲,使用Spark進行數據清洗,通過SparkMLlib訓練模型,基于周期內的庫存入庫和出庫數據,進行實時庫存報警。
⑥調撥單管理
????????支持從商品庫中選擇需要調撥的商品,可以單個選擇或批量選擇。填寫調撥單的基本信息,包括調撥日期、調出倉庫、調入倉庫、調撥數量、調撥原因等。允許在調撥單創建后對其進行編輯,以滿足實際業務中的變化需求。在創建調撥單時,系統自動檢查調出倉庫的庫存數量,確保調撥數量不超過庫存量。一旦調撥單被確認,系統自動鎖定相應數量的庫存,防止其他操作(如銷售、其他調撥)對該部分庫存的占用。
2. 系統非功能性需求
(1)系統運行環境
系統的運行環境分為服務器端和客戶端,具體要求如下:
服務器端:運行在Linux操作系統上,采用Java開發環境。數據處理框架使用Spark,用于處理和分析大規模供應鏈數據;大數據存儲工具使用Hadoop Hive。另外,系統需要配置Kafka進行消息隊列管理。數據庫系統使用MySQL 8.0。
(2)時間特性
對于該軟件的時間特性要求如下:
響應時間:小于2秒。
更新處理時間:小于1秒。
數據的轉換和傳送時間:小于1秒。
(三)系統概要設計。
1.系統架構設計
系統架構設計采用分層模型,主要包括以下幾層如圖4所示。
圖4 系統架構圖?
(1)應用層
????????使用Echat進行供應鏈訂單數據的圖表展示分析,使用Vue進行業務功能的界面開發展示主要包括商品管理,庫存管理,進出庫管理和庫存預警以及庫存分析預測。
(2)大數據分析計算層
????????大數據分析層主要由Apache Spark負責數據處理和分析,將分析結果提交到應用層以供用戶使用。
(3)大數據存儲層
????????大數據存儲層由Hive等工具構成,用于存儲從Flume采集層傳輸而來的數據。
(4)數據采集與傳輸層
????????日志采集層主要使用Flume從供應鏈各節點實時采集各個銷售渠道的訂單數據,各個平臺的商品數據和對應的庫存數據,各個倉庫的商品和庫存以及入庫出庫單數據,并將采集的數據傳輸到大數據存儲層以供分析和處理。
主要算法應用
移動平均法
系統在進行商品庫存預測的時候使用移動平均法進行計算。??移動平均法?是一種常用的預測方法,通過使用一組最近的實際數據值來預測未來一期或幾期內的需求量、產能等。這種方法特別適用于即期預測,當商品庫存既不快速增長也不快速下降,且不存在季節性因素時,移動平均法能有效消除預測中的隨機波動,顯示出事件的發展趨勢。各元素的權重相等,如(公式1)所示。
EMAt=∝Yt+(1-α)EMAt-1? ? ?(公式1)
假設我們有一個時間序列數據集,表示某產品在過去10天的每日銷量,如下所示
銷量 = [ 10 , 12 , 14 , 13 , 16 , 18 , 20 , 22 , 21 , 19 ]
我們使用窗口大小為3的簡單移動平均來平滑數據:
第1個窗口(第1-3天):(10 + 12 + 14) / 3 = 12
第2個窗口(第2-4天):(12 + 14 + 13) / 3 = 13
第3個窗口(第3-5天):(14 + 13 + 16) / 3 = 14.33
第4個窗口(第4-6天):(13 + 16 + 18) / 3 = 15.67
第5個窗口(第5-7天):(16 + 18 + 20) / 3 = 18
第6個窗口(第6-8天):(18 + 20 + 22) / 3 = 20
第7個窗口(第7-9天):(20 + 22 + 21) / 3 = 21
第8個窗口(第8-10天):(22 + 21 + 19) / 3 = 20.67
該商品歷史十天數據得到的平滑數據是上升趨勢,基于該數據結合現有的庫存數據進行判斷預測下一個時間周期內需要多少庫存,然后進行商品的補貨或者庫存調撥,另外還可以根據預測數據進行庫存預警值,達到按照目前的銷售趨勢,當前庫存還夠使用X天,需要盡快補貨的效果。
6、參考文獻
[1]大數據基礎理論與系統關鍵技術淺析. 華強勝;鄭志高;胡振宇;鐘芷漫;林昌富;趙峰;金海;石宣化.數據與計算發展前沿,2021(05).
[2]基于大數據的信息系統關鍵技術研究. 朱攀.電子技術與軟件工程,2024(04).
[3]張曉芹.供應鏈創新研究述評與展望:內涵、測量與影響機制[J].重慶工商大學學報(社會科學版),2021,38(05):9-21.
[4]祝丹楓,李宇坤,李搖琴.供應鏈創新驅動經濟高質量發展的理論內涵與現實路徑[J].經濟學家,2022(10):74-83.
[5]沈麗瓊,黃光于,葉飛.供應鏈政策與企業技術創新——來自政府認定供應鏈創新試點企業的經驗證據[J].科技管理研究,2022,42(19):97-110.
[6]“直播+電商”營銷模式的困境與對策[J]. 王運昌;楊柳.現代營銷(下旬刊),2021(06).
[7]一種優選移動平均預測模型的Min-Min算法[J]. 徐齊利.計算機應用研究,2021(06).
[8]基于改進三次指數平滑法的航材需求預測[J]. 史永勝;王文琪.計算機工程與設計,2020(11).
[9]Exploring the Influencing Factors in Identifying Soil Texture Classes Using Multitemporal Landsat-8 and Sentinel-2 Data[J]. Zhou Yanan;Wu Wei;Liu Hongbin.Remote Sensing,2022.
[10]A Study on the Influencing Factors of Consumers' Purchase Intention During Livestreaming e-Commerce: The Mediating Effect of Emotion [J]. Zhou Rong;Tong Lei.Frontiers in Psychology,2022.