如何從4.5小時加速需求規劃和Azure磚下1小時嗎
供應鏈分析的重要性
快速變化的消費購買行為可以產生實質性影響供應鏈規劃、庫存管理和業務結果。消費需求的準確預測是優化盈利能力的起點和其他業務的結果。斯威夫特庫存調整在分銷網絡是至關重要的,以確保供應滿足消費者需求,同時最小化運輸成本。此外,消費者贖回季節性提供購買插件和影響產品供應和物流規劃的訂閱。
在ButcherBox供應鏈分析
ButcherBox麵臨極其複雜的需求規劃,因為它試圖確保庫存足夠的交貨期,滿足高度可變的客戶訂單偏好,導航預測客戶注冊和管理物流配送等。它需要一個預測解決方案來應對這些挑戰,適應快速、緊密集成的Azure房地產數據。
“雖然ButcherBox cloud-born,我們所有的團隊使用電子表格,“吉米·庫珀說,頭的數據,ButcherBox。“正因為如此,我們在使用過時的數據發表的一份報告。這是一個非常不同的世界,現在我們正在與Azure磚。”
ButcherBox精簡供應鏈分析如何
ButcherBox使用Azure磚生成其需求計劃。當Azure數據工廠(ADF)觸發需求計劃來看,Azure磚從Azure數據流程供應鏈數據的湖,供應商和蜂巢緩存數據。湖新輸出存儲在一個數據,然後Azure突觸更新需求計劃生產可視化。
![配料/ MicroBatching編排Azure的磚](http://www.eheci.com/wp-content/uploads/2021/01/butcherbox-blog-1.png)
ButcherBox利用Azure磚攝取所有實時的原始數據流從供應商、內部來源和曆史數據。Azure磚相此數據項,框和分配水平需求的用戶查看即將到來的一年。然後將這些數據用於保留建模和推到Azure突觸的曆史比較。
Apache火花SQL Azure磚設計是兼容的Apache蜂巢。ButcherBox使用蜂巢從CSV文件緩存數據,然後處理緩存的數據在Azure磚,使需求計劃計算時間從4.5小時減少到少於一個小時。這使一個更新的需求計劃為業務用戶提供每天早上來幫助決策。攝入這些數據流也為其他進程創造了值得信賴的數據集和消費的活動。這些新的工具和能力幫助ButcherBox迅速理解和適應成員行為的變化,尤其是在他COVID-19大流行。
創建您的第一個需求預測使用Azure磚
為需求預測開始使用Azure磚,下載這個示例的筆記本並將其導入Azure磚工作區。
步驟1:加載存儲項目銷售數據
我們的訓練數據集是五年的事務數據在10個不同的商店。我們將定義一個模式,我們的數據讀入DataFrame為後續的查詢,然後創建一個臨時視圖。
從pyspark.sql.types進口*#訓練數據集的結構train_schema = StructType ([StructField (“日期”DateType ()),StructField (“存儲”IntegerType ()),StructField (“項目”IntegerType ()),StructField (“銷售”IntegerType ())])#培訓文件讀入dataframe火車= spark.read.csv (' / FileStore /表/ demand_forecast /火車/ train.csv”,頭=真正的,模式= train_schema)#讓dataframe可查詢作為臨時視圖train.createOrReplaceTempView (“火車”)
步驟2:檢查數據
聚集在月級別的數據,我們可以觀察到一個可識別的年度季節性模式,隨著時間的增長。我們可以調整我們的查詢來尋找其他模式,如每周的季節性和整體銷售增長。
步驟3:組裝曆史數據集
從我們以前的加載數據,我們可以構建一個熊貓DataFrame通過查詢“訓練”臨時視圖,然後刪除任何缺失的值。
#查詢彙總數據到目前為止(ds)的水平sql_statement =“‘選擇ds(日期日期),銷售為y從火車在商店= 1 = 1項ORDER BY ds“‘#在熊貓dataframe組裝數據集history_pd = spark.sql (sql_statement) .toPandas ()#刪除任何丟失的記錄history_pd = history_pd.dropna ()
第四步:建立模型
根據勘探的數據,我們需要設置模型參數根據觀察到的增長和季節模式。因此,我們選擇了一個線性增長模式,使每周的評價和每年的季節性模式。我們的模型參數設置後,我們可以很容易地適應曆史模型,數據清洗。
#設置模型參數模型=先知(interval_width =0.95,增長=“線性”,daily_seasonality =假,weekly_seasonality =真正的,yearly_seasonality =真正的,seasonality_mode =“乘法”)#適合模型的曆史數據model.fit (history_pd)
第五步:使用訓練模型來構建一個90天的預測
由於我們的模型是訓練有素的,我們可以用它來建立一個預測類似ButcherBox使用在他們的需求計劃。這可以很快完成使用曆史數據如下所示。
#定義一個數據集包括曆史日期和超越過去的可用日期90天future_pd = model.make_future_dataframe (時間=90年,頻率=' d ',include_history =真正的)#預測數據集forecast_pd = model.predict (future_pd)
顯示器(forecast_pd)
一旦我們預測未來的數據集,我們可以生產一般和季節性趨勢在我們的模型圖(如下所示)。
trends_fig = model.plot_components (forecast_pd)顯示器(trends_fig)