【物流大數據實踐】基於阿裡雲Maxcompute實現物流跟蹤

来源:http://www.cnblogs.com/libo66/archive/2017/03/15/6552938.html
-Advertisement-
Play Games

摘要: 目前我國物流業保持較快增長,但還是存在一些問題:物流成本高、效率低,條塊分割嚴重(自營物流、規模小、技術落後、標準不統一)、基礎設施相對滯後(物流基礎設施之間不銜接、不配套),對訂單創建到用戶簽收整套完整流程缺乏完善的監控和預警手段. ...


免費開通大數據服務:https://www.aliyun.com/product/odps

摘要:

目前我國物流業保持較快增長,但還是存在一些問題:物流成本高、效率低,條塊分割嚴重(自營物流、規模小、技術落後、標準不統一)、基礎設施相對滯後(物流基礎設施之間不銜接、不配套),對訂單創建到用戶簽收整套完整流程缺乏完善的監控和預警手段.


 

基於建設統一物流平臺的基本要求,用戶希望打通各大系統,能夠跟蹤所有訂單在物流系統中的流轉過程、處理狀態等信息,具體如下需求:

1:訂單分為5個階段,訂單處理、發運處理、揀貨出庫、配送和簽收

2:每個階段的狀態判定:未處理、一般報警、嚴重報警、完成

3:超期天數:需要判定基於訂單、裝運單的超期天數

4:進度:當前階段的進度百分比                        

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 

由上圖我們能夠分析得出此需求可能涉及多個系統的數據整合,其中訂單來源於ERP系統,發運處理和揀貨出庫數據來源SAP系統,而配送簽收就需要使用到GPS等外部系統數據。實際場景中訂單、交貨單、運單分別來自不同的資料庫,所以整體工作項包括:

1、首先要進行數據的整合上雲  

2、利用阿裡雲大數據計算服務進行數據處理和預警判定產生預警結果

3、將預警結果同步到本地預警資料庫中

4、本地搭建訂單預警應用使用預警資料庫進行可視化展示

 

技術架構

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

主要處理流程:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 

開發環境: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項目

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

1.3.點擊進入工作區,進入到odps工作空間,工具欄點擊【新建】,選擇新建表

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

對應本地數據訂單抬頭表,將需要進行數據處理的欄位提出來,新建表sql如下

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

註:登錄阿裡雲市場點擊【我的頭像】點擊【管理控制台】下的【大數據開發套件】,進入項目管理找到自己新建的項目點擊【進入工作區】,在IDE工作環境中標題欄中選擇【數據管理】。在左邊標題欄下點擊【數據表管理】,載入出數據管理頁面。找到我【管理的表】,點擊查看                        

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

以上就完成了Maxcompute建立項目和建表的工作內容。

 

2、配置DataX數據同步配置文件

  首先需要下載的datax(datax 是不同類型的資料庫中間交換數據的工具)

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=以下是配置job.json 示例

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

以上配置: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. 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

執行成功

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

註:datax 在window下亂碼異常解決方式:

打開cmd.exe命令行視窗,通過chcp命令改變代碼頁為65001

chcp 65001
在命令行標題欄上點擊右鍵,選擇“屬性”->“字體”,將字體修改為True Type字體“Lucida Console”,然後點擊確定將屬性應用到當前視窗

 

3、查看雲上表數據

    登錄阿裡雲市場點擊【我的頭像】點擊【管理控制台】下的【大數據開發套件】,進入項目管理,找到自己新建的項目點擊【進入工作區】,在IDE工作環境中標題欄中選擇【數據管理】。在左邊標題欄下點擊【數據表管理】,載入出數據管理頁面。找到我【管理的表】,點擊查看

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

雙擊【t_oc_hostorderline】進入表的詳情頁面在表的詳情頁面點擊【數據預覽】。下麵出現本地數據,說明數據本地同步到odps成功

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 

二、數據處理、預警判定、結果集輸出

   我們使用阿裡雲Data IDE流程組件中的ODPS_SQL節點來進行數據處理(包括數據集合併、單位統一、數據空值補全等),然後基於阿裡雲標準開發自定義的MR來進行預警判定,最後將預警結果寫入到結果表中,具體操作步驟如下:

 

1.建立任務

登錄阿裡雲市場點擊【我的頭像】點擊【管理控制台】下的【大數據開發套件】,進入項目管理找到自己新建的項目點擊【進入工作區】,在工具欄點擊【新建】,選擇新建

選擇工作流任務,周期調度

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

2.獲取訂單信息,交貨單信息,運單信息,根據訂單號組裝成預警判定所需要的訂單預警對象,根據訂單號分組組裝成完整的預警數據對象640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

3.選擇節點組件的虛節拖拽連接完整的處理流程

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

工作流如下:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

ODPS_SQL節點,以SQL語句來進行多表數據的合併、空數據補全、單位統一等處理

OPEN MR節點,使用JAVA語言開發的自定義預警MapReduce程式(打包為jar上傳到平臺使用)

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

    以上流程開發完畢後即可點擊"測試"按鈕,測試運行整個流程任務,也可設置任務為周期任務設置任務定時啟動的時間,這樣任務就可以按照設定周期性的定時執行。

    

    以上流程中,在ODPS SQL進行數據處理之後,結果作為MapReduce輸入表,以訂單號作為key,訂單預警對象作為value,分發給不同的Reduce進行規制判定,將滿足預警條件的結果寫入MaxCompute結果表【orderalarm_result】中

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 

三、計算結果同步到本地

   通過以上流程任務的運行,已經產生了我們需要的預警結果數據,但用戶不希望將預警結果數據放在雲端使用,用戶想將結果數據能夠放在本地MySQL或其它資料庫中,基於本地搭建預警應用使用本地資料庫中的數據進行可視化展示。

    基於以上用戶需求,我們只基於雲平臺產生了預警結果數據,接下來我們還需要將雲端的數據同步到本地。

  (我們使用DataX工具設置job任務將大數據平臺結果表中的數據同步到本地預警平臺資料庫的預警結果表中)

1、新建配置文件 

 t_oc_hostorderline2.json,job文件內容如下

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

打開cmd.exe命令行視窗  輸入datax文件地址我的是:D:\programFiles\file2\datax\bin
執行命令 datax.py   ..\job\result.json. 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

執行成功

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

3、查看本地資料庫

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

四、可視化展示

    將雲上預警結果數據同步到本地資料庫以後,用戶即可基於本地環境搭建預警應用,使用本地資料庫中的數據來進行可視化展示。

 

1、建立ssm項目添加訂單預警

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

2、展示頁面

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

 

以上基於阿裡雲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
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Swift _ OC _ 混編 在OC環境下使用Swift. "GitHub源碼" ...
  • 前言 自Weex發佈伊始, 其口號 "Write Once, Run Everywhere"就吸引了大批前端與客戶端程式猿紛紛入坑, 我也不能獨善其中. 就我目前所學習Weex的經驗在此記錄一下, 由於我是一名剛入行不久iOS開發者, 所以這篇博客含金量不高, 下麵就簡單闡述下如何將Weex初步集成 ...
  • CoreAnimation 寄宿圖 博客園makedown支持不佳,如有需要請進 "GitHub" . 寄宿圖:圖層中所包含的圖 by:旭寶愛吃魚     針對於寄宿圖我在這裡只討論contents屬性以及Custom Drawing. contents &n ...
  • 在移動互聯網領域蓬勃發展的今天,APP的性能也成為各大公司重點關註的方向,該系列文章主要針對iOS的性能的幾個方面做一些研究。 什麼是HTTP2.0? 什麼是HTTP2.0? 網上很容易搜到關於HTTP2.0的概念的文章,這裡不再累述。 蘋果從iOS9開始支持HTTP2.0,對iOS開發人員來說,即 ...
  • 本文主要講述了在FineReport移動端中釘釘如何集成設計器的插件從而實現企業應用。 ...
  • phpMyAdmin的程式主要使用php和javascript開發,它的安裝使用都比較簡單而且已有很多相關介紹,今天來自騰訊雲資料庫團隊的高級開發工程師在此給大家介紹一下——源碼中的一個核心組件sql-parser ...
  • 3月9日14點,業內首個結合技術與應用的線上大數據技術峰會即將展開,屆時6位阿裡技術大咖與4位行業資深實踐者將從技術與業務兩個方面,與大家探討大數據如何最快落地到實踐。較為有看點的是: 最深入的實踐:本次線上峰會上,6個阿裡規模的大數據實踐將被深入分享,包括大數據平臺的性能調優、流式增量計算、持續發... ...
  • 前幾天卡Q在網上搜嘍大數據的課程,偶遇了廈門大學林子雨教授的大數據公開課,嚇得卡Q一身冷汗,為什麼呢? 這不,卡Q剛給自己的人生定了個小目標,比如,進入互聯網公司當個產品經理。因為在卡Q的眼裡,互聯網是個朝氣蓬勃的圈子,裡面的人都很牛掰,和聰明人共事,運氣總不會太差,所以,卡Q決定削尖了腦袋也要和聰... ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...