六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

TDengine在SCARM云設(shè)備服務(wù)平臺的使用

科大智能 張少華, 黃一多

2020-03-04 / ,

小 T 導(dǎo)讀:科大智能(CSG)是全國領(lǐng)先的工業(yè)智能化解決方案供應(yīng)商之一。SCARM是CSG開發(fā)的遠程監(jiān)控與維護管理平臺,是典型的物聯(lián)網(wǎng)應(yīng)用,開發(fā)團隊在評估不同的物聯(lián)網(wǎng)開發(fā)框架后,選用了TDengine Database。

設(shè)備監(jiān)測與預(yù)測性維護業(yè)務(wù)場景介紹

設(shè)備預(yù)測性維護是在物流裝備/機臺等生產(chǎn)設(shè)備上加裝物聯(lián)網(wǎng)傳感器,實時采集設(shè)備運行過程中的狀態(tài)數(shù)據(jù),運用邊緣端/云端的設(shè)備維保知識庫,管理設(shè)備維保作業(yè),預(yù)警設(shè)備故障發(fā)生風(fēng)險;形成物聯(lián)采集端—邊緣計算端—云端大數(shù)據(jù)端的管理閉環(huán)。這個閉環(huán)產(chǎn)生的行業(yè)價值是巨大的:

  • 按計劃保養(yǎng)設(shè)備,有效延長設(shè)備使用壽命;
  • 預(yù)警設(shè)備故障風(fēng)險,保障生產(chǎn)安全;
  • 提供遠程故障診斷工具,沉淀維保經(jīng)驗到知識庫,為設(shè)備廠商創(chuàng)造增值服務(wù),指導(dǎo)第三方維保服務(wù);
  • 量化管理維保作業(yè),為第三方維保服務(wù)質(zhì)量提供管理依據(jù);
  • 運用實時監(jiān)控和數(shù)據(jù)分析等技術(shù)手段,借助邊緣策略,及時處理現(xiàn)場宕機、來料短缺等突發(fā)情況。

SCARM是CSG開發(fā)的遠程監(jiān)控與維護管理平臺。運用物聯(lián)網(wǎng)技術(shù),實時監(jiān)控堆垛機、穿梭車、提升機等物流設(shè)備的運行狀態(tài),結(jié)合維保作業(yè)管理數(shù)據(jù),計算設(shè)備故障風(fēng)險,指導(dǎo)用戶采取適當措施排除設(shè)備故障風(fēng)險,降低設(shè)備由于維護不當所致的停機風(fēng)險。

實現(xiàn)目標如下:

  1. 采集和存儲堆垛機、穿梭車、提升機等設(shè)備實時運行數(shù)據(jù);
  2. 實時展示儲堆垛機、穿梭車、提升機等運行情況,比如電機的電壓、電流、行走速度、異常噪音等;
  3. 預(yù)防性維護,綜合分析設(shè)備運行與維護作業(yè)數(shù)據(jù),推算設(shè)備故障風(fēng)險;
  4. 按期生成檢查和維護保養(yǎng)計劃,管理維保作業(yè),保障生產(chǎn)安全。

設(shè)計系統(tǒng)的業(yè)務(wù)流程

SCARM是典型的物聯(lián)網(wǎng)應(yīng)用,邊緣計算節(jié)點推送的數(shù)據(jù)經(jīng)消息隊列分發(fā)給流式計算模塊及日志存儲模塊,物化模型與以關(guān)系數(shù)據(jù)庫為中心的模型有很大區(qū)別,開發(fā)團隊在評估不同的物聯(lián)網(wǎng)開發(fā)框架后,選用了TDengine Database。我們以一個例子來展示TDengine簡單易用的編程接口,及如何用它解決物聯(lián)網(wǎng)特有的流式計算問題。例子的編程思路如下:

  1. 采集服務(wù)采集設(shè)備數(shù)據(jù),并傳遞到MQTT Server進行數(shù)據(jù)推送;
  2. 數(shù)據(jù)處理服務(wù)訂閱MQTTServer的最新數(shù)據(jù),進行協(xié)議解析,將具體的字段進行處理,并調(diào)用TDengine的JDBC標準接口寫入數(shù)據(jù);
  3. 再往上的架構(gòu)就是標準的MVC架構(gòu):應(yīng)用層調(diào)用服務(wù)層獲取到數(shù)據(jù)層(TDengine時序數(shù)據(jù)庫)中設(shè)備的統(tǒng)計及分析數(shù)據(jù),并返回進行展示和操作;
  4. 通過Grafana直接連接數(shù)據(jù)層TDengine數(shù)據(jù)庫,在應(yīng)用層展示設(shè)備的實時數(shù)據(jù)情況。

這里需要注意的是,TDengine是一個設(shè)備一張表的設(shè)計思路,因此在步驟2的數(shù)據(jù)處理服務(wù)中,我們根據(jù)項目及設(shè)備類型在TDengine時序數(shù)據(jù)庫中先建好超級表(每類設(shè)備一個超級表,定義好該類設(shè)備要采集的字段,以及一些靜態(tài)標簽如設(shè)備ID、分組等)和每個設(shè)備對應(yīng)的子表。在MQTT協(xié)議解析后,每臺設(shè)備的數(shù)據(jù)應(yīng)存到其對應(yīng)的子表中。子表的名字和設(shè)備ID之間要建立一種映射關(guān)系,這樣在寫入數(shù)據(jù)時可以根據(jù)上報數(shù)據(jù)中的設(shè)備ID信息直接找到要寫的表名。當然整個平臺的業(yè)務(wù)數(shù)據(jù)還是存儲在關(guān)系數(shù)據(jù)庫MySQL中;一些用戶最常用的數(shù)據(jù)我們也放到了Redis中。TDengine可以解決最新采集數(shù)據(jù)的緩存問題,省去了一些Redis的內(nèi)存開銷。

系統(tǒng)的整體架構(gòu)如下圖。

TDengine在SCARM云設(shè)備服務(wù)平臺的使用 - TDengine Database 時序數(shù)據(jù)庫

TDengine配置使用

一、安裝和配置TDengine數(shù)據(jù)庫集群

1. 安裝

在一臺Linux服務(wù)器上安裝TDengine的過程非常簡單,只需要執(zhí)行install.sh腳本,然后執(zhí)行命令啟動taosd服務(wù)即可(更多可參考 TDengine官網(wǎng)):

sudo systemctl start taosd

2. 配置數(shù)據(jù)庫集群

項目中采用3臺服務(wù)器配置TDengine數(shù)據(jù)庫集群。TDengine的分布式架構(gòu)中分為虛擬數(shù)據(jù)節(jié)點和虛擬管理節(jié)點兩種不同的虛擬化節(jié)點。虛擬節(jié)點是對物理服務(wù)節(jié)點的虛擬化分,其中數(shù)據(jù)節(jié)點的分布是完全去中心化的,而管理節(jié)點則是遵循Master-Slave的方式。因此再集群配置時,要配置一下管理節(jié)點主節(jié)點所在服務(wù)器的IP地址(MasterIP),以及第一備選節(jié)點的IP(SecondIP)。

首先在3臺服務(wù)器均完成TDengine安裝后,先不要啟動服務(wù),在每臺服務(wù)器的taos.cfg文件中添加MasterIP、SecondIP以及PrivateIP的配置信息。之后,啟動3臺服務(wù)器上的taosd服務(wù),并用taos客戶端連入主節(jié)點所在服務(wù)執(zhí)行

create dnode <DataNodeIP>

其中<DataNodeIP>是具體的第二臺服務(wù)器的通信IP地址。這樣這臺服務(wù)器就被加入到了集群中。

仿照上述操作配置第三臺服務(wù)器后,通過show dnodes命令可查詢配置的集群節(jié)點如下:

TDengine在SCARM云設(shè)備服務(wù)平臺的使用 - TDengine Database 時序數(shù)據(jù)庫

到此,集群配置成功。

二、創(chuàng)建Spring Boot項目,配置taos依賴及參數(shù)

在SpringBoot項目的pom.xml文件中加入taos的jdbc依賴:

<dependency>  
    <groupId>com.taosdata.jdbc</groupId>  
    <artifactId>taos-jdbcdriver</artifactId>  
    <version>1.0.1</version>  
</dependency>  

在SpringBoot項目的.yml文件中配置公共的taos數(shù)據(jù)庫連接url:

spring:
  taos:  
      enable: true  
      jdbcUrl: jdbc:TAOS://192.168.12.28:6020/demo?user=root&password=taosdata
      database: demo

三、實現(xiàn)taos相關(guān)業(yè)務(wù)

打開taos數(shù)據(jù)庫連接

try {  
if(connection == null)  
    connection = DriverManager.getConnection(url);  
}catch (Exception e){  
    e.printStackTrace();  
}

創(chuàng)建超級表及設(shè)備的子表

Statement smt = connection.createStatement();  
String sql = String.format(CREATE_SUPER_TABLE, s_name);  
smt.executeUpdate(sql);
sql = String.format(CREATE_TABLE, t_name, s_name, paras[0], paras[1]); 
smt.executeUpdate(sql);  

設(shè)備信息的插入

Statement smt = null;  
try{  
      smt = connection.createStatement();  
      return smt.executeUpdate("import into " + sqlBody);  
}catch (Exception e){  
      e.printStackTrace();  
}finally {  
      try {  
          if(smt != null)  
?              smt.close();  
      }catch (Exception e){  
          e.printStackTrace();  
      }  
}  

設(shè)備信息的查詢

Statement smt = null;  
List<T> list = new ArrayList<>();  
try{  
    smt = connection.createStatement();  
    result = smt.executeQuery(sql);  
    Field[] fields = clazz.getDeclaredFields();  
    T t = null;  
    while (result.next()){  
        t = clazz.newInstance();  
        for (Field field : fields){  
            field.setAccessible(true);  
            field.set(t, result.getObject(field.getName(), field.getType()));  
        }  
        list.add(t);  
    }  
}catch (Exception e){  
    e.printStackTrace();  
}finally {  
    try{  
        if(smt != null)  
            smt.close();  
    }catch (SQLException se){  
        se.printStackTrace();  
    }  
}

四、配合Grafana的可視化展示

實際效果圖如下圖

TDengine在SCARM云設(shè)備服務(wù)平臺的使用 - TDengine Database 時序數(shù)據(jù)庫

使用TDengine的體會

相比關(guān)系型數(shù)據(jù)庫,時序數(shù)據(jù)庫對量級龐大的時序數(shù)據(jù)能高效的進行存儲和查詢,而且在存儲空間的節(jié)省上也有很大的優(yōu)勢。特別是使用TDengine數(shù)據(jù)庫,相較于一開始使用的OpenTSDB時序數(shù)據(jù)庫,在I/O的操作會更快,數(shù)據(jù)存儲空間占用少。再加上TDengine數(shù)據(jù)庫輕量、集成簡單的優(yōu)勢,使用方式靈活,可發(fā)揮空間很大。后續(xù)期望能通過數(shù)據(jù)庫自帶的流式計算來分擔業(yè)務(wù)上的一些計算壓力。

作者簡介:

張少華(第一作者),安徽科大智能物聯(lián)高級軟件開發(fā)工程師,目前負責(zé)物聯(lián)網(wǎng)應(yīng)用方向研發(fā)工作。

黃一多,安徽科大智能物聯(lián)軟件總工程師,目前主要負責(zé)物聯(lián)網(wǎng)、大數(shù)據(jù)等核心技術(shù)研究工作。

公司介紹:

科大智能物聯(lián)技術(shù)有限公司作為科大智能科技股份有限公司(股票代碼:300222)的重要成員,是面向工業(yè)智能物聯(lián)解決方案的先驅(qū)者和領(lǐng)軍企業(yè)。公司在“引領(lǐng)行業(yè)發(fā)展,促進工業(yè)進步”的愿景下,秉承“創(chuàng)造價值、交付價值”的經(jīng)營理念,致力于將智能算法、大數(shù)據(jù)技術(shù)、物聯(lián)網(wǎng)技術(shù)等應(yīng)用在物流與供應(yīng)鏈、生產(chǎn)工藝優(yōu)化、智能加工、產(chǎn)品質(zhì)量檢測與追溯等工業(yè)生產(chǎn)的不同領(lǐng)域和環(huán)節(jié),將新技術(shù)賦能各類制造業(yè)企業(yè),實現(xiàn)智能制造,提升客戶企業(yè)競爭力,推動行業(yè)轉(zhuǎn)型升級。

原文首發(fā)于:https://mp.weixin.qq.com/s/on3uuGntVgGcWhQ23Ze8Ng