天天看點

IoT物聯網平台-規則引擎SQL資料格式詳解規則引擎SQL資料格式詳解

産品推薦:阿裡雲物聯網開發者工具( IoT Studio ), 立刻免費體驗吧!

規則引擎SQL資料格式詳解

前言[](#i0bcvd)

裝置接入IoT物聯網平台後,最佳擷取資料的方式就是通過規則引擎,先使用SQL表達式處理資料,再流轉到DB,MQ,DataHub,FC等目的地。配置資料處理SQL時,我們需要了解每個topic對應的資料格式,才能寫出正确的SQL表達式。

注意:請不要以控制台sql調試為準,除非你了解sql調試功能

1.自定義Topic

當我們使用自定義Topic時,IoT物聯網平台會透傳Payload資料,這種情況結構體不會變。

IoT物聯網平台-規則引擎SQL資料格式詳解規則引擎SQL資料格式詳解

正如上圖所展示的資料處理過程,原始封包在進入規則引擎,執行SQL表達式時,依然是端上Payload結構體。

{
  temperature:23,
  humidity:63,
}           

是以,我們隻需要按自定義Payload編寫SQL即可。

2.物模型系統Topic(/sys/開頭)

對我們使用物模型傳輸資料時,資料會在雲端做處理,變換成物模型JSON格式,這裡需要注意每個Payload的不同。

IoT物聯網平台-規則引擎SQL資料格式詳解規則引擎SQL資料格式詳解

2.1 裝置屬性上報

通過該Topic擷取裝置上報的屬性資訊。

資料流轉Topic:  /sys/{productKey}/{deviceName}/thing/event/property/post 

裝置原始資料格式:

{
    "id": 3536123,
    "version": "1.0",
    "method": "thing.event.property.post",
    "params":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38 
         }
     }
}           

物模型資料格式:規則引擎SQL需要根據這個格式編寫

{
    "productKey":"1234556554",
    "deviceName":"deviceName1234",
    "gmtCreate":1510799670074,
    "items":{
        "Power":{
            "value":"on",
            "time":1510799670074
        },
        "Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    }
}           

2.2 裝置事件上報

通過該topic擷取裝置上報的事件資訊。

資料流轉Topic:  /sys/{productKey}/{deviceName}/thing/event/(tsl.event.identifier}/post 

{
    "id": 3536123,
    "version": "1.0",
    "method": "thing.event.{tsl.event.identifier}.post",
    "params":{
        "temperature":39.9,
        "humidity":87
     }
}           
{
    "identifier":"{tsl.event.identifier}",
    "type":"info",
    "productKey":"X5eCzh6fEH7",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "gmtCreate":1510799670074,
    "value":{
        "temperature":39.9,
        "humidity":87
    },
    "time":1510799670074
}           

2.3 裝置服務異步調用響應

通過該Topic可以擷取,通過異步方式下發指令給裝置,裝置進行處理後傳回的結果資訊。如果下發指令過程中出現錯誤,也可以通過該Topic得到指令下發的錯誤資訊。

資料流轉Topic:  /sys/{productKey}/{deviceName}/thing/downlink/reply/message  

{
    "id": 3536123,
    "version": "1.0",
    "method": "thing.service.{tsl.service.identifier}",
    "params": {
        "Power":"on",
        "temperature":39.9
    }
}           
{
    "gmtCreate":1510292739881,
    "productKey":"123xxxx554",
    "deviceName":"deviceName1234",
    "requestId":3536123,
    "code":200,
    "message":"success",
    "topic":"/sys/123xxxx554/deviceName1234/thing/service/{tsl.service.identifier}",
    "data":{
        "status":"on"
    }
}           

3.裝置本身變化

3.1 裝置上下線狀态

通過該Topic擷取裝置的上下線狀态。

資料流轉Topic:  /as/mqtt/status/{productKey}/{deviceName} 

資料格式:

{
    "status":"online|offline",
    "productKey":"12345565569",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",//狀态變更前最後一次通信時間
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"123.123.123.123"
}           

3.2 裝置生命周期變化

通過該Topic獲得裝置建立、删除、禁用、啟用等消息。

資料流轉Topic:  /sys/{productKey}/{deviceName}/thing/lifecycle 

{
    "action" : "可能枚舉值 create|delete|enable|disable",
    "productKey" : "X5eCxxxxEH7",
    "deviceName" : "5gJtxDVeGAkaEztpisjX",
    "deviceSecret" : "裝置密鑰,僅在action為create時包含", 
    "messageCreateTime": 1510292739881 
}           

4.附錄

IoT物聯網平台官網文檔:

https://help.aliyun.com/document_detail/73736.html

[](#80ifpi)

IoT物聯網平台-規則引擎SQL資料格式詳解規則引擎SQL資料格式詳解