摘要: 目前我國物流業保持較快增長,但還是存在一些問題:物流成本高、效率低,條塊分割嚴重(自營物流、規模小、技術落後、標準不統一)、基礎設施相對滯後(物流基礎設施之間不銜接、不配套),對訂單創建到用戶簽收整套完整流程缺乏完善的監控和預警手段. ...
免費開通大數據服務:https://www.aliyun.com/product/odps
摘要:
目前我國物流業保持較快增長,但還是存在一些問題:物流成本高、效率低,條塊分割嚴重(自營物流、規模小、技術落後、標準不統一)、基礎設施相對滯後(物流基礎設施之間不銜接、不配套),對訂單創建到用戶簽收整套完整流程缺乏完善的監控和預警手段.
基於建設統一物流平臺的基本要求,用戶希望打通各大系統,能夠跟蹤所有訂單在物流系統中的流轉過程、處理狀態等信息,具體如下需求:
1:訂單分為5個階段,訂單處理、發運處理、揀貨出庫、配送和簽收
2:每個階段的狀態判定:未處理、一般報警、嚴重報警、完成
3:超期天數:需要判定基於訂單、裝運單的超期天數
4:進度:當前階段的進度百分比
由上圖我們能夠分析得出此需求可能涉及多個系統的數據整合,其中訂單來源於ERP系統,發運處理和揀貨出庫數據來源SAP系統,而配送簽收就需要使用到GPS等外部系統數據。實際場景中訂單、交貨單、運單分別來自不同的資料庫,所以整體工作項包括:
1、首先要進行數據的整合上雲
2、利用阿裡雲大數據計算服務進行數據處理和預警判定產生預警結果
3、將預警結果同步到本地預警資料庫中
4、本地搭建訂單預警應用使用預警資料庫進行可視化展示
技術架構
主要處理流程:
開發環境:windows7、Python、Data IDE
工具:DataX、Data IDE、Eclipse
【正文】
一、數據同步上雲
安裝Python環境>下載datax客戶端>創建項目>創建表>編寫json配置文件>同步數據到odps
Python地址:https://www.python.org/downloads/
Datax地址:http://datax-opensource.oss-cn- hangzhou.aliyuncs.com/datax.tar.gz"
1、基於阿裡雲大數據平臺創建數據同步表
1.1.首先您需要阿裡雲賬號並已開通大數據計算服務,如果您已開通大數據計算服務,則直接進入控制台點擊“大數據開發套件”進入Data IDE環境。
1.2.點擊管理控制台,進入管理控制台頁面,點擊創建項目,新建MaxCompter項目
1.3.點擊進入工作區,進入到odps工作空間,工具欄點擊【新建】,選擇新建表
對應本地數據訂單抬頭表,將需要進行數據處理的欄位提出來,新建表sql如下
註:登錄阿裡雲市場點擊【我的頭像】點擊【管理控制台】下的【大數據開發套件】,進入項目管理找到自己新建的項目點擊【進入工作區】,在IDE工作環境中標題欄中選擇【數據管理】。在左邊標題欄下點擊【數據表管理】,載入出數據管理頁面。找到我【管理的表】,點擊查看
以上就完成了Maxcompute建立項目和建表的工作內容。
2、配置DataX數據同步配置文件
首先需要下載的datax(datax 是不同類型的資料庫中間交換數據的工具)
以下是配置job.json 示例
以上配置:MysqlReader通過JDBC連接器連接到遠程的Mysql資料庫,並根據用戶配置的信息生成查詢SELECT SQL語句,然後發送到遠程Mysql資料庫,並將該SQL執行返回結果使用DataX自定義的數據類型拼裝為抽象的數據集,並傳遞給下游Writer處理。odpsWriter 通過 DataX 框架獲取 Reader 生成的協議數據,根據你配置的 writeMode
生成。
打開cmd.exe命令行視窗 輸入datax文件地址我的是:D:\programFiles\file2\datax\bin
執行命令 datax.py ..\job\t_oc_hostorderline.json.
執行成功
註:datax 在window下亂碼異常解決方式:
打開cmd.exe命令行視窗,通過chcp命令改變代碼頁為65001
chcp 65001
在命令行標題欄上點擊右鍵,選擇“屬性”->“字體”,將字體修改為True Type字體“Lucida Console”,然後點擊確定將屬性應用到當前視窗
3、查看雲上表數據
登錄阿裡雲市場點擊【我的頭像】點擊【管理控制台】下的【大數據開發套件】,進入項目管理,找到自己新建的項目點擊【進入工作區】,在IDE工作環境中標題欄中選擇【數據管理】。在左邊標題欄下點擊【數據表管理】,載入出數據管理頁面。找到我【管理的表】,點擊查看
雙擊【t_oc_hostorderline】進入表的詳情頁面在表的詳情頁面點擊【數據預覽】。下麵出現本地數據,說明數據本地同步到odps成功
二、數據處理、預警判定、結果集輸出
我們使用阿裡雲Data IDE流程組件中的ODPS_SQL節點來進行數據處理(包括數據集合併、單位統一、數據空值補全等),然後基於阿裡雲標準開發自定義的MR來進行預警判定,最後將預警結果寫入到結果表中,具體操作步驟如下:
1.建立任務
登錄阿裡雲市場點擊【我的頭像】點擊【管理控制台】下的【大數據開發套件】,進入項目管理找到自己新建的項目點擊【進入工作區】,在工具欄點擊【新建】,選擇新建
選擇工作流任務,周期調度
2.獲取訂單信息,交貨單信息,運單信息,根據訂單號組裝成預警判定所需要的訂單預警對象,根據訂單號分組組裝成完整的預警數據對象
3.選擇節點組件的虛節拖拽連接完整的處理流程
工作流如下:
ODPS_SQL節點,以SQL語句來進行多表數據的合併、空數據補全、單位統一等處理
OPEN MR節點,使用JAVA語言開發的自定義預警MapReduce程式(打包為jar上傳到平臺使用)
以上流程開發完畢後即可點擊"測試"按鈕,測試運行整個流程任務,也可設置任務為周期任務設置任務定時啟動的時間,這樣任務就可以按照設定周期性的定時執行。
以上流程中,在ODPS SQL進行數據處理之後,結果作為MapReduce輸入表,以訂單號作為key,訂單預警對象作為value,分發給不同的Reduce進行規制判定,將滿足預警條件的結果寫入MaxCompute結果表【orderalarm_result】中
三、計算結果同步到本地
通過以上流程任務的運行,已經產生了我們需要的預警結果數據,但用戶不希望將預警結果數據放在雲端使用,用戶想將結果數據能夠放在本地MySQL或其它資料庫中,基於本地搭建預警應用使用本地資料庫中的數據進行可視化展示。
基於以上用戶需求,我們只基於雲平臺產生了預警結果數據,接下來我們還需要將雲端的數據同步到本地。
(我們使用DataX工具設置job任務將大數據平臺結果表中的數據同步到本地預警平臺資料庫的預警結果表中)
1、新建配置文件
t_oc_hostorderline2.json,job文件內容如下
打開cmd.exe命令行視窗 輸入datax文件地址我的是:D:\programFiles\file2\datax\bin
執行命令 datax.py ..\job\result.json.
執行成功
3、查看本地資料庫
四、可視化展示
將雲上預警結果數據同步到本地資料庫以後,用戶即可基於本地環境搭建預警應用,使用本地資料庫中的數據來進行可視化展示。
1、建立ssm項目添加訂單預警
2、展示頁面
以上基於阿裡雲MaxCompute平臺通過:數據上雲、大數據計算、雲上數據同步到本地、本地可視化展示 四大步來講解如何實現物流訂單的預警與跟蹤。
其主要用到的工具包括:DataX(數據同步/集成工具)、Data IDE(大數據開發套件)、Eclips(Java、MapReduce開發)。
-END-
轉自藍智雲海公眾號
相關文章
大數據打造你的變美頻道——數加平臺上小紅唇的大數據實踐 https://yq.aliyun.com/articles/72250藉助阿裡雲數加,小小的美甲行業被美甲幫玩出了天價
https://yq.aliyun.com/articles/70510
與阿裡雲整個生態體系共同成長,更快更好的為房地產行業客戶提供高價值的服務
https://yq.aliyun.com/articles/70509
蘇州協鑫與阿裡雲合作階段性完成,良品率已提升1%
https://yq.aliyun.com/articles/69333
墨跡天氣-輕鬆處理每天2TB的日誌數據,支撐運營團隊進行大數據分析挖掘,隨時洞察用戶個性化需求 https://yq.aliyun.com/articles/68211
阿裡雲數加讓企業更專註於業務,助力東潤環能高效利用大數據資源
https://yq.aliyun.com/articles/67275
產品3周迭代一次,啟信寶駕馭8000萬企業徵信的平臺架構
https://yq.aliyun.com/articles/70359
日交易筆百萬級,Ping++的大數據平臺架構
https://yq.aliyun.com/articles/70353
專訪佰騰科技大數據團隊,談專利大數據領域的挑戰與實踐
https://yq.aliyun.com/articles/70412
技術創業難?看匯合營銷如何玩轉大數據與機器學習
https://yq.aliyun.com/articles/70347