【華爲雲技術分享】玩轉物聯網IoTDA服務系列三-自動售貨機銷售分析場景示例

摘要:物聯網解決方案中,做爲數據主體的「物」可能數量會很是大,產生的數據已經沒法經過傳統的數據處理服務進行處理。如何分析與利用這龐大的物聯網設備數據對物聯網企業來講又是一個新的挑戰。本文以自動售貨機銷售分析場景示例,分析售貨銷量情況。

場景簡介

經過收集自動售貨機系統的銷售數據,EI數據分析售貨銷量情況。html

該場景主要描述的是設備能夠經過MQTT協議與物聯網平臺進行交互,應用側能夠到物聯網平臺訂閱設備側變化的通知,用戶能夠在控制檯或經過應用側接口建立數據轉發規則,把設備上報的屬性轉發給其餘華爲雲服務。數據庫

核心知識點:產品模型、編輯碼插件、訂閱推送、屬性上報、MQTT協議、數據轉發規則。json

場景流程

流程解釋:api

1.建立自動售貨機產品:物聯網平臺以產品爲粒度管理批量設備。用戶能夠經過平臺提供的API接口控制檯建立產品。安全

2. 上傳產品模型:產品模型是定義一種設備的基本屬性和命令。產品模型能夠經過控制檯,也能夠導入公共產品庫的模型。該場景沒有編解碼插件,是由於設備是基於安卓操做系統開發的,可以經過MQTT協議與平臺進行交互。學習

3. 批量註冊自動售貨機設備:平臺提供了應用側API接口能夠註冊設備,也能夠經過控制檯批量註冊。註冊設備時獲取的設備ID,是設備側與平臺交互的惟一標識。網站

4. 建立自動售貨機設備狀態變化的訂閱:售貨管理系統能夠在平臺建立設備變化的通知訂閱,須要把callback url即應用回調地址傳給平臺,平臺後續會推送通知到該url。ui

5. 設備建鏈:MQTT設備是指經過MQTT協議,不管是集成了華爲IoT Device SDK,仍是原生MQTT協議接入,只要是json數據格式傳輸給平臺,平臺就無需使用編解碼插件。若是是二進制上傳,則須要先作編解碼插件的開發。MQTT是長鏈接,須要先建鏈才能進行數據傳輸,能夠經過安全加密方式8883端口接入(推薦),也能夠經過非安全加密方式1883端口接入。加密

6. 推送自動售貨機設備激活通知:平臺會根據以前應用訂閱的回調地址,把自動售貨機設備上線的通知類型經過HTTP/HTTPS推送回去。url

7. 建立數據轉發規則:售貨管理系統能夠經過API接口建立規則,也能夠經過控制檯建立,指定過濾指定的屬性,給指定的通道轉發數據

8. 開通DIS通道/MRS服務:華爲公有云上有豐富的SaaS服務和PaaS服務,供您結合本身的業務須要進行組合使用。DIS服務提供高效採集、傳輸、分發能力,支持多種IoT協議,能夠開通該服務,經過IoTDA規則引擎,把自動售貨機設備的數據轉發給DIS,而後再利用諸如MRS服務,實現自動售貨銷量情況數據分析。

9. 自動售貨機屬性上報:設備側能夠經過SDKMQTT原生協議接入平臺,屬性上報銷售信息。這裏值得注意的是,設備側上報的數據,是經過屬性上報,與消息上報最大的區別在因而否通過產品模型。屬性上報的內容與格式都要跟產品模型定義保持一致。具體概念介紹能夠參閱「物模型」。

10. 按規則數據轉發:平臺收到設備上報的屬性後,規則引擎會進行過濾(不論屬性仍是消息,平臺都會作規則過濾),把設定好的屬性值轉發到指定的DIS通道,而後再經過DIS的接口,由MRS去消費DIS的數據,實現對銷量的分析。

最佳實踐

場景說明

物聯網解決方案中,做爲數據主體的「物」可能數量會很是大,產生的數據已經沒法經過傳統的數據處理服務進行處理。如何分析與利用這龐大的物聯網設備數據對物聯網企業來講又是一個新的挑戰。

華爲雲物聯網平臺提供規則引擎能力,支持將數據上報的數據轉發至華爲雲其餘雲服務,可實現將海量數據經過數據接入服務(DIS)轉發至MapReduce服務(MRS),對數據進行處理後再由數據可視化服務(DLV)讀取數據呈現爲可視化報表,實現數據的一站式採集、處理和分析。

在本示例中,咱們實現下述場景:

自動售貨機每次銷售商品後上報銷售商品種類、數量、時間和所屬區域到物聯網平臺,物聯網平臺將數據經過數據接入服務轉發至MapReduce服務,MapReduce服務處理數據並寫爲統計文件,數據可視化服務從統計文件讀取數據展示爲四個維度的銷售報表。

建立MapReduce集羣

建立集羣,用於存儲和處理DIS轉儲的數據。

1.登陸華爲雲官方網站,訪問MapReduce服務

2. 單擊「當即購買」,建立集羣,如下配置僅爲樣例。

注:下圖以新版自定義購買界面爲例,須要在「購買集羣」界面點擊右上角的「點擊體驗新版」,而後選擇「自定義購買」。

3.集羣建立成功後,等待15到30分鐘,集羣狀態變動爲「運行中」則表示建立成功。

建立OBS桶

1.登陸華爲雲官方網站,訪問對象存儲服務

2. 單擊「管理控制檯」進入對象存儲服務管理控制檯。

3. 單擊頁面右上角的「建立桶」,根據需求選擇桶規格後,單擊「當即建立」。

建立數據接入通道和轉儲任務

建立通道並配置轉儲任務,實現將設備管理服務傳入DIS的數據轉發至MRS。

1.登陸華爲雲官方網站,訪問數據接入服務

2. 單擊「當即購買」,購買接入通道,如下配置僅爲樣例。

3.通道購買成功後,進入DIS控制檯「接入管理 > 通道管理」頁面。

4.單擊須要查看的通道名稱,進入所選通道的管理頁面,選擇「轉儲管理」頁籤。

5.單擊「添加轉儲任務」按鈕。

6. 在彈出的「添加轉儲任務」頁面配置轉儲相關配置項。

7.單擊「當即建立」。

配置設備接入服務

在設備接入服務中建立產品模型、註冊設備並設置數據轉發規則,實現當設備上報數據時將數據轉發至DIS。

1.登陸華爲雲官方網站,訪問設備接入服務

2. 單擊「當即使用」進入設備接入控制檯。

3. 單擊「規則 > 建立規則 > 數據轉發」,首次建立對接到DIS服務的規則時,平臺會根據對接的雲服務和區域彈出對應的雲服務訪問受權窗口。

4. 單擊左側導航欄的「產品」,單擊右上角下拉框,選擇新建產品所屬的資源空間。

注:本文中使用的產品模型和設備僅爲示例,您可使用本身的產品模型和設備進行操做。

5. 單擊右上角的「建立產品」,建立一個基於MQTT協議的產品,填寫參數後,單擊「確認」。

6. 在功能定義頁面,單擊「上傳模型文件」,單擊Profile.zip,獲取產品模型文件樣例。

7. 進入「設備 > 設備註冊」頁面,單擊「註冊設備」,參考下表填寫參數。

填寫完成後單擊「肯定」,請注意保存註冊成功返回的「設備ID」和「設備密鑰」。

8. 單擊左側導航欄的「規則」,單擊右上角的「建立規則」,選擇「數據轉發」。

9. 填寫規則內容,規則名稱自定義,「數據類型」選擇「JSON」,轉發至「數據接入服務(DIS)」,「區域」選擇您開通OBS的區域,「通道」選擇您建立的桶,填寫完成後單擊「建立規則」。

配置數據可視化服務

配置數據可視化服務,新建數據報表視圖。

1.登陸華爲雲官方網站,訪問數據可視化服務

2. 單擊「進入控制檯」。

注:若您未開通DLV服務,可單擊「體驗試用」獲取30天的基礎版免費試用。

3. 訪問DLV控制檯「個人大屏」頁面,新建一個大屏。

4. 選擇空白模板,輸入大屏名稱後,單擊「建立大屏」。

5. 單擊「文本 > 標題」新增一個標題。

6. 在右側「數據」面板修改靜態數據中「value」的值爲「每日銷量」。

7. 在大屏內拖動標題到左上角,並拉伸成合適的形狀。

8. 單擊「經常使用圖表 > 線狀圖」新增一個線狀圖報表。

9. 拖動圖表到標題下面並拉伸成合適的形狀。

10. 重複以上步驟再添加一個標題爲「時間段銷量」柱狀圖,一個標題爲「種類銷量」的餅狀圖,一個標題爲「地區銷量」的區域排行圖,並根據本身的須要設置圖表的樣式。最終效果相似下圖。

11. 單擊頁面右上角的返回按鈕退出編輯頁面。

驗證操做

1.首先控制設備上報10條數據。

  • 您可使用配置設備接入服務時註冊的真實設備接入平臺,上報數據。
  • 您也可使用模擬器模擬設備上報數據,操做方法請參考經過MQTT.fx體驗設備接入

上報數據的樣例以下,請自行修改參數的取值模擬真實設備數據:

樣例1

{
    "msgType": "deviceReq",
    "data": [{
        "serviceId": "sales",
        "serviceData": {
            "category": "soda",
            "number": "1",
            "area": "SZLH",
            "timeStamp": "20190425T091157Z"
        }
    }]
}

上述樣例表示UTC時間2019年4月25日9點11分57秒深圳羅湖的自動販賣機銷售了一支蘇打飲料。

樣例2

{
    "msgType": "deviceReq",
    "data": [{
        "serviceId": "sales",
        "serviceData": {
            "category": "juice",
            "number": "2",
            "area": "SZFT"
            "timeStamp": "20190426T170005Z"
        }
    }]
}

上述樣例表示UTC時間2019年4月26日17點05秒深圳福田的自動販賣機銷售了兩支果汁飲料。

本文以上報下表的數據爲例。

2. 登陸MRS管理控制檯,選擇「集羣列表 > 現有集羣」,單擊集羣名進入集羣管理頁面。

3. 單擊頁面上方的「文件管理」,再單擊「HDFS文件列表」,進入轉儲文件目錄(例如「temp」)查看是否存在轉儲的數據文件。

注:DIS會將數據合併轉發,因此此處的文件數量和上報的數據條數可能會不一致。

4. 單擊頁面上方的「做業管理」,在「做業」頁籤中單擊「添加」,配置做業信息。本示例中建立一個spark類型的做業,實現分析設備上報數據,分別按日期、時間段、種類、區域統計銷量,將分析結果輸出爲CSV文件並保存至OBS。

配置完成後單擊「肯定」啓動做業。

5. 做業完成後,可在OBS桶內看到output文件夾,裏面有四個文件夾,每一個文件夾內有一個「_SUCCESS」文件和一個「part」開頭的csv文件。

注:本實驗的樣例程序分析數據時會將UTC時間轉換爲本地時間,所以數據分析結果中的日期與時間段數值會和上報時的數值不一致。

6. 登陸華爲雲官方網站,訪問數據可視化服務

7. 單擊「進入控制檯」。

8. 單擊「個人數據 > 新建數據鏈接」 ,在「新建數據鏈接」頁面左側的數據庫類型中,選擇「CSV文件」,按照下表的數據規劃填寫配置後單擊「肯定」。重複本步驟創建4個數據鏈接。

9. 返回「個人大屏」頁籤,單擊配置數據可視化服務時建立的大屏右下的編輯按鈕進入編輯頁面。

10. 選中「每日銷量」表,在右側數據面板選擇數據類型爲「CSV文件」,數據鏈接選擇步驟8添加的數據鏈接「salesByDate」。

11. 根據響應數據的屬性名稱配置字段映射。

配置 「x」爲 「saleDate」, 「y」爲 「saleNumber」。

12. 選中「時間段銷量」表,在右側數據面板選擇數據類型爲「CSV文件」,數據鏈接選擇步驟8添加的數據鏈接「salesByTime」。

13. 根據響應數據的屬性名稱配置字段映射。

配置 「x」爲 「saleTime」, 「y」爲 「saleNumber」。

14. 選中「種類銷量」表,在右側數據面板選擇數據類型爲「CSV文件」,數據鏈接選擇步驟8添加的數據鏈接「salesByCategory」。

15. 根據響應數據的屬性名稱配置字段映射。

配置 「s」爲 「category」, 「y」爲 「saleNumber」,並設置各個分類的名稱(本示例中爲「soda」,「juice」,「sport」)和圖例的顏色。

16. 選中「地區銷量」表,在右側數據面板選擇數據類型爲「CSV文件」,數據鏈接選擇步驟8添加的數據鏈接「salesByArea」。

17. 根據響應數據的屬性名稱配置字段映射。

配置 「num」爲 「saleNumber」。

18. 所有圖表配置完成後,單擊頁面右上角的

可預覽報表,示例以下圖。

至此,經過該文檔的學習,您應該對自動售貨機銷售分析場景有了必定的瞭解。接下來,能夠在系列後續文章中,能夠學習到更多的物聯網業務場景。

點擊關注,第一時間瞭解華爲雲新鮮技術~

相關文章
相關標籤/搜索