本文介紹如何對接物聯網平臺和阿里云大數據平臺,以實現設備數據分析、統計、計算和可視化實時展示。
前提條件
開通、購買相關阿里云產品實例和計算資源。使用阿里云大數據平臺處理物聯網平臺設備相關數據,涉及多個阿里云產品,包括云數據庫RDS MySQL版、DataHub、實時計算平臺、DataV、物聯網平臺等。
了解涉及產品的配置使用方法和注意事項。
背景信息
任務場景:在DataV可視化大屏上,實時展示物聯網平臺某產品下的設備相關數據。
實現過程:
物聯網平臺采集設備數據。
通過規則引擎,物聯網平臺將一個產品下的設備數據轉發至流數據處理平臺DataHub中。
DataHub根據相關配置,將設備數據發送至實時計算平臺進行計算處理后,再寫入RDS MySQL版數據庫中。(若無需計算處理的數據,可通過DataConnector將數據直接從DataHub 平臺同步到云數據庫RDS MySQL版數據庫中。)
DataV根據配置,以MySQL數據庫表作為數據源,實時展示相關設備數據 。
操作步驟
創建一個云數據庫RDS版MySQL數據庫,用于存儲設備數據。
了解云數據庫RDS版,請參見云數據庫RDS版文檔。
登錄云數據庫RDS版控制臺。
在云數據庫管理頁,單擊創建實例,創建一個MySQL類型的數據庫實例。
說明RDS for MySQL數據庫實例的地域須與物聯網平臺設備地域和DataHub項目地域保持一致。
在您的數據庫實例列表中,單擊該實例對應的管理。
在左側導航欄中,單擊賬號管理,創建數據庫用戶賬號。
在左側導航欄中,單擊數據庫管理,創建數據庫。
在左側導航欄中,單擊數據安全性,添加數據庫白名單。請參見設置IP白名單文檔中的設置方法。
在左側導航欄中,單擊基本信息,查看該數據庫的信息。
后續步驟中,該數據庫信息需配置到DataHub、DataV或阿里實時計算開發平臺中,用于同步數據。
在基本信息頁上方導航欄中,單擊登錄數據庫,輸入信息登錄數據庫。
創建數據庫表。如,表mytable包含兩個字段:
表 1. mytable
字段名
類型
說明
d_data
varchar(32)
時間。
device_num
int
活躍設備數量。
創建DataHub項目和Topic。
了解流數據處理平臺DataHub,請參見DataHub文檔。
登錄DataHub控制臺。
在項目管理頁面,單擊新建項目,創建項目。
在項目列表中,單擊新建項目對應的查看。
在項目信息頁,單擊新建Topic,創建Topic。
Topic是DataHub中的存儲單元,類似數據庫中的表。
Topic創建成功后,在Topic列表中,單擊該Topic對應的查看按鈕,查看Topic詳情。
(可選)配置DataConnector將Topic數據同步到數據庫表中。在Topic信息頁,單擊右上方+同步按鈕,選擇RDS & Mysql。然后,在新建Connector面板中,輸入您上一步創建的MySQL數據庫信息并選擇連接模式和網絡類型。
說明使用Connector是直接將Topic表同步到數據庫表。如果需要對DataHub中的數據進行計算,再將計算結果寫入數據庫,請參見第3步,配置實時計算平臺。
數據庫信息,在云數據庫RDS版控制臺中,對應數據庫的基本信息頁查看。
數據庫相關參數說明:
參數
說明
Host
數據庫的內網地址。
Port
數據庫的內網端口,一般為3306。
Database
數據庫的名稱。
Table
數據庫表的名稱。
User
數據庫賬號,即用戶名。
Password
數據庫的登錄密碼。
(可選)使用阿里實時計算進行流式數據計算處理。
如要統計活躍設備數量,需根據DataHub接收到的設備收發消息記錄計算出一個指標,即截至到當前時間,收發過消息的設備數量。這個指標經過實時計算,然后寫入數據庫中。
了解實時計算開發平臺,請參見什么是阿里云實時計算Flink版。
單擊新建項目,創建項目。
說明您需先購買實時計算資源,才可以創建項目。
項目創建成功后,單擊項目名稱,進入項目詳情頁。然后,單擊 ,創建一個作業。
DataHub域名列表),Project設置為DataHub中的Project名稱,然后單擊注冊。 。輸入您的DataHub Endpoint地址(各地域Endpoint地址,請參見
單擊 ,輸入已創建的數據庫信息,然后單擊注冊。
在數據存儲中,雙擊DataHub數據存儲后出現已注冊的DataHub項目名稱。雙擊項目名稱,然后雙擊Topic名稱,再單擊頁面中間的作為輸入表引用,實時計算將自動解析Topic的Schema,并自動添加對應的SQL。
在數據存儲中,找到數據庫表名,雙擊該表名,然后單擊作為結果表引用。實時計算將自動解析數據庫表,并自動添加對應的SQL。
在作業編輯框,編寫業務邏輯的SQL。如計算活躍設備數量的SQL示例:
REPLACE INTO activity_device SELECT from_unixtime(FLOOR(dm.msgtime/1000), 'yyyy-MM-dd') as d_data, count(DISTINCT dm.devicename) as device_num FROM device_message dm group by from_unixtime(FLOOR(dm.msgtime/1000), 'yyyy-MM-dd');
單擊調試,上傳數據文件進行調試SQL,得到的結果跟數據預期一致,表示SQL正確。
作業開發并調試完成后,單擊上線,然后按流程完成上線操作。
說明上線作業操作僅將您的作業提交到數據運維中,但并未真正啟動運行,若需啟動作業,需在運維界面啟動。
在物聯網平臺控制臺,創建產品和設備,并配置規則引擎。
登錄物聯網平臺控制臺。
在實例概覽頁簽的全部環境下,找到對應的實例,單擊實例卡片。
在左側導航欄中,單擊創建產品。 ,然后創建產品。如需幫助,請參見
產品創建成功后,進入該產品的產品詳情頁,根據您的業務需要,為產品創建自定義Topic類,定義產品功能(即定義物模型)等。
在左側導航欄中,單擊注冊設備。 ,然后
在左側導航欄中,單擊 ,創建一條規則。
重要若當前頁面為云產品流轉新版頁面,需先單擊右上角返回舊版,再單擊目標規則對應的查看。
在規則列表中,單擊規則對應的查看按鈕。
在數據流轉規則頁,單擊處理數據欄的編寫SQL按鈕,為該條規則編寫數據處理SQL,并調試SQL語句。
單擊轉發數據欄對應的添加操作按鈕,并配置規則動作將設備數據轉發至DataHub的Topic中。如需幫助,請參見設置數據流轉規則。
規則配置完成后,在云產品流轉頁的規則列表中,單擊該規則對應的啟動按鈕,啟動規則。
規則啟動后,使用模擬設備發送消息,檢驗設備發送的消息是否成功流轉至DataHub中。可以在設備的日志服務頁查看設備日志;在DataHub控制臺對應的Topic中,查看Shards中數據量的變化,并通過數據抽樣功能,可以看到具體的消息內容。
開發設備端,連接設備與物聯網平臺。
本例以Java Link SDK為例開發設備:下載Java SDK Demo。開發方法,請參見環境要求與配置。
設備端SDK開發完成,并將SDK燒錄至物理設備中。設備上電聯網后,建立與物聯網平臺之間的連接,便可與物聯網平臺進行數據交換。數據通過規則引擎轉發至DataHub中,再經過實時計算處理后,寫入數據庫中。
在DataV控制臺,配置DataV。
登錄DataV控制臺。
配置DataV數據源。單擊 。輸入您的RDS MySQL數據庫信息后,單擊確定。
單擊 。
在頁面左側選擇大屏模板,然后將鼠標移動至頁面中間的選擇模板區域,單擊確定。
DataV提供了一些大屏模板供您使用,您也可以選擇空白模板,然后按照自己的需求自定義大屏顯示組件和樣式。
根據您的需求配置顯示組件。
DataV配置頁面介紹:
上方一排圖標是可供您選擇、添加的組件。
中間區域為大屏顯示樣式。單擊其中的組件板塊,可對該板塊進行具體配置。
左側是您已選擇的組件。單擊組件,可在右側對該組件進行具體配置。鼠標右鍵單擊組件,可調整組件顯示位置,重命名組件,或刪除組件。
在右側配置組件信息。
配置說明,請參見DataV文檔。
配置組件數據。
在組件配置右側,單擊{/}數據配置按鈕,選擇數據源類型為數據庫,選擇已有數據源為您的數據庫名,然后編寫SQL。
測試。配置完成之后,使用不同的設備登錄,并發送消息,大屏展示的活躍設備數會實時改變。