小T导读:广联达立足建筑产业,围绕工程项目的全生命周期,是提供以建设工程领域专业应用为核心基础支撑,以产业大数据、产业新金融等为增值服务的平台服务商。广联达科技股份有限公司数字城市BU在TDengine推出1.0版本时就开始试用TDengine系统。

点击这里,即可体验 TDengine!

​TDengine应用场景

1.1 业务场景

广联达科技股份有限公司数字城市BU在TDengine推出1.0版本时就开始试用TDengine系统,主要用于建设工程项目的工地物联网数据和城市运营管理过程中的设备监测物联网数据的存储和管理,应用于智慧城市、智慧工地的系统中,具体包含城市交通、照明、环境监测、给排水、燃气监测、停车场以及工地环境质量监测,在智慧城市的交通、城管、能源监测管理、生命线安全监控、施工环境等领域提供智能化管理依据。

系统整体的架构如下图所示,通过广联达自研的IoT平台接入物联网设备采集的时序数据,数据上报后放入TDengine物联网大数据平台,在此平台上再进一步做各种业务相关的应用层开发。

1.2 时序数据类型及规模

在某新区智慧城市大数据管理系统中,使用TDengine的数据存储各类终端设备的采集数据,比如智能灯杆上照明情况、用电情况,供水压力流量数据、燃气压力、可燃气体泄露、污水排污成分数据、环境监测设备上的PM2.5、 PM10等信息,停车场通行数据等结构化时序数据等。

目前系统上存在3000+的监测设备,每日新增的监测数据量约在2620MB。如果按照此类设备的增量,后面会达到十万个监测设备,每日数据增量应该在80GB左右。

​1.3 数据模型的设计

在流数据的时序数据模型中,主要包括两部分模型:运行状态监测值与运行状态错误/报警值,两者都是设备运行时按照时间顺序产生的数据。在设计过程中,考虑到运行状态中的监测值本身的数据和类型都取决于设备模型本身能够提供的监测数据类型和数量;而报警信息是通过规则引擎计算触发之后,生成的具有一定业务标识信息的数据。基于两种数据的来源和产生原理,对两种时序数据的存储进行了分别处理。具体处理方式如下。

1)运行状态监测值–时序数据

环境监测的状态监测数据样例如下:

{"uuid":"012126","pm25":14.3,"pm10":18.9,"pa":100740.0,"temp":28.0,"rshi":86.4,"wind_speed":1.7,"wind_direction":157.5,"noise":77.2,"time":20190702180330}
{"uuid":"018181","pm25":20.2,"pm10":21.3,"pa":100740.0,"temp":28.1,"rshi":86.2,"wind_speed":1.62,"wind_direction":157.5,"noise":75.9,"time":20190702180330}

监测点的运行状态数据取决于监测点模型的设置,因此我们在建立模型的过程中,解析模型信息,在TDengine中建立了与设备模型监测数据匹配的超级表(STable),并且根据相关业务需求,建立了常用查询维度的Tag信息,为该类型下设备监测信息传入存储做好准备。

2)运行状态错误/报警值–时序数据

环境监测的状态报警数据样例如下:

{"uuid":"018181","item":"noise","value":75.9,"alarm":"true","level":"2","time":20190702180330}
{"uuid":"012126","item":"noise","value":77.2,"alarm":"true","level":"2","time":20190702180330}

监测设备的报警信息,按照相关业务需求,统一处理为一类报警信息数据,因此在系统中设计了一套针对报警信息存储的超级表,所有设备的报警信息都依照该超级表的模型结构,进行保存。同样建立了常用查询维度的Tag信息。

选择TDengine的理由

2.1 TDengine对业务性能需求的满足和提升

物联网应用系统中对数据的查询需求多样且复杂,此前的实现方案都是借助于如HBase生态中的各种组件进行数据的存储和查询。在流处理过程中,更多采用Spark Streaming,或者Storm来进行实时处理查询等,由于TDengine相对于前者使用的各种重型组件来说,在部署维护、入门、数据迁移、学习使用上都有先天性的优势,因此在部署物联网数据存储平台过程中,结合实际业务中的数据查询需要,我们首选了TDngine实现。

1)窗口查询

物联网时序数据的一个典型查询应用就是窗口查询,而在传统解决方案中,不是实现窗口查询的方式难以落地,就是数据查询效率不能接受。在HBase中是通过各种汇聚来实现查询,效率难以保证;Spark Streaming的查询处理虽然可以通过SQL来实现,但是对于窗口函数的定义和读取晦涩冗长。在TDengine中,可以通过一个SQL语句直接实现,也可以通过API直接获取。在Spark Streaming中四五十行的逻辑,在TDengine的API中,调用五行即可达到目的。

2)连续查询

连续查询,通过interval()函数在TDengine中周期性进行聚合计算,并可直接获取最新数据,对实际业务中的定时查询实现很有帮助,避免了进行起止时间查询的方式,对功能实现来说,降低不少编码工作。

3)支持标准SQL

TDengine支持标准的SQL操作,同时也提供了完备的JDBC驱动包,对传统的DBMS工具组件提供了标准支持,因此,原有基于Java的业务系统在开发效率上完全可以无缝迁移到TDengine中。对于大屏查询、报表工作等业务操作,无需进行特定的开发工作。

4)标签维度查询

按照业务常用的查询维度,在超级表上做不同的Tag,比如基于设备ID、位置描述、型号等信息,契合常用查询维度,结合Tag查询,直接可以对一类设备进行数据筛选查询,避免了之前系统,先查业务关系再去join实际数据的过程,逻辑上清晰,实现上简单,业务上便捷。

2.2 大幅提升时序数据读写及流处理性能

对于省市级规模的智慧城市管理系统,涉及的智能监测设备数量非常大,对监测点产生的时序数据的读写性能要求比较高,并且针对一些城市生命线或危险源相关的设备监测数据的实时流数据处理性能要求也很高,比如设备报警需要基于不同设备的阀值规则通过流处理生成报警信息,其实时性要求比较高。采用普通关系型数据库存储的解决方案很难满足业务上的性能要求,而采用TDengine的技术方案,不仅在时序数据读写的性能上有大幅提升,而且利用其针对时序数据高性能的插入、查询、聚合统计以及大规模的实时流式计算等功能,可大大提升基于业务规则的流数据处理性能。

2.3 节约计算资源和存储成本

由于TDengine采用独特的列式存储以及领先的压缩算法,其存储空间比一般数据库大大减少,从而节约了大量的计算资源和存储成本,并且从系统安装到数据备份、数据恢复几乎都能自动完成;扩容、升级等运维操作也能轻松完成 ,系统的运维成本也能降低不少。

TDengine应用技巧和经验

3.1 善用超级表

超级表(STable)作为TDengine的特色,具备了模板和索引的双重特性功能,结合Tag查询以及自动生成子表功能,对数据操作存储完全自动化、智能化,以及在简单业务上更加灵活。

3.2 善用JDBC工具

由于对SQL的支持,TDengine很容易支持JDBC规范的接口。我们在实际开发过程中,基于Java调用JDBC驱动来操作TDengine,得益于TDengine的SQL支持能力和完备JDBC驱动,我们用来开发的JDBC框架和DBClient工具直接可以进行工作,Mybatis和DataGrip工具继续在数据实现转型中发挥来巨大的辅助作用。

3.3 强大的订阅机制

在部分实时性要求比较高的场景下,我们尝试使用到了TDengine的订阅机制,对流处理中回调功能进行补全加强,订阅了一个SQL的查询结果集。目前,对于流处理业务来说,对符合固定逻辑的数据获取,非常好用,因此最适合采用订阅的方式来进行逻辑驱动。目前TDengine中的订阅功能只有C和Java语言端的实现(在用1.5.2版本)。

TDengine应用中遇到的问题

4.1 JDBC驱动并非完美

虽然目前JDBC驱动已经非常完备,但是偶尔几个标准实现上会有不同的结果,当然这些功能都是非数据接口上的,不影响正常数据操作。目前发现的有:在DataGrip上的确认数据库是否存在的返回值,有不同结果;有些特定的SQL并不是标准类型,被IDE回报说不支持的类型,实际上能够执行成功。

4.2 文档有待完善,大家多多实践

目前的文档一些地方其实不够明确,大家需要多动手实践摸索,很多隐藏的内容,在文档中并未体现,多操作多尝试会有更多收获和体会。

作者简介:王碧波,广联达科技股份有限公司数字城市数据平台部架构师,从事IT技术十余年,参与过H2Database、Mybatis、TDengine等开源项目;先后在百度、易到用车、树根互联工作,参与过应用云、PaaS、SaaS平台的设计和研发工作,对分布式和高性能计算有深入研究,近年来专注于微服务、DevOps、物联网领域的技术架构设计和具体实践。

TDengine在智慧城市大数据管理系统中的应用实践相关推荐

  1. 辽宁鞍山与中国联通签订智慧城市大数据云计算中心项目

    日前,鞍山市政府与中国联通辽宁省分公司<鞍山市智慧城市大数据云计算中心项目>签约仪式在胜利宾馆举行.市长赵爱军出席签约仪式并会见中国联通辽宁省分公司党委书记.总经理买彦州. 赵爱军在会见中 ...

  2. 河南移动与新乡市政府签约共建新乡智慧城市大数据中心

    2月4日,河南移动新乡市政府举行智慧城市大数据中心建设战略合作框架协议签约仪式.市领导舒庆.王小平.王保旺.刘尚进.王玉民.吴岳善,河南移动总经理魏明,副总经理蔡志强.余谦.殷勇杰等出席签约活动. 此 ...

  3. 报名|首届中国智慧城市大数据开放创新应用大赛

    首届中国智慧城市大数据开放创新应用大赛是在中国国际智能产业博览会承委会和中国国家信息中心共同指导下,由中国信息协会数字治理专业委员会.重庆市大数据应用发展管理局及九龙坡区人民政府共同主办,中国工业设计 ...

  4. 济南发力大数据和智慧城市 大数据时代的济南智慧

    人类文明的每个阶段都有一张最具代表性的标签.大数据,或许是最有希望成为时代标签的候选者.大数据是一类数据,是一项技术,更是一门产业.大数据技术的底层性使它极易与其他行业.技术嫁接,从而形成受众广泛.影 ...

  5. 智慧城市大数据平台信息化建设及行业智慧应用综合解决方案

    [版权声明]本资料来源网络,知识分享,仅供个人学习,请勿商用. [侵删致歉]如有侵权请联系小编,将在收到信息后第一时间删除! 完整资料领取见文末,部分资料内容:  智慧城市核心技术 2.1.1 物联网 ...

  6. 112页智慧城市大数据综合解决方案(ppt可编辑)

    本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 项目必要性分析 完善信息基础设施布局规划,满足区域信息化的发展要求 信息化已成为提升城市管理.促进经济发展.改善民生的重要手段 合理高效 ...

  7. 2019北京物联网智慧城市大数据博览会开启中国之路

    邀 请 函 时间2019年05月16-18日 地点 中国•北京亦创国际会展中心 4组织单位 特邀单位:××× ×××商务部 批准单位:北京市商务委员会 主办单位:中国电子商会 物联网技术产品应用专业委 ...

  8. 智慧城市大数据运营中心 IOC 之 Web GIS 地图应用

    IOC(Intelligent Operations Center)--智慧城市智能运营中心就是智慧城市的大脑,是建立在各个智慧应用系统之上的系统.通过对政府各职能部门的业务信息共享与整合,聚焦城市运 ...

  9. 48页智慧城市大数据可视化平台建设方案

    目 录 1. 概述 1.1 需求分析 1.2 采取策略 1.3 方案目标 2. 智慧城市解决方案 2.1 架构说明 2.1.1 整体架构 2.1.2 规划架构 2.1.3 云平台架构 2.2 建设内容 ...

  10. Apache Spark在海致大数据平台中的优化实践

    本文来自由海致网络技术公司翟士丹分享.专注于大数据技术领域,Apache Spark Contributor,有丰富的Spark SQL引擎调优经验.海致全称海致网络技术公司,成立于2013年7月.作 ...

最新文章

  1. 【MFC系列-第32天】控件自绘技术
  2. 推荐系统入门必读论文
  3. 自如CEO熊林接任董事长
  4. 【elasticsearch】ES 相似文章检测
  5. 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
  6. cobbler报错:No such command: --get-loaders解决方案
  7. 拓端tecdat|采用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析
  8. Origin—在曲线的每个峰值处均使用高斯函数进行拟合
  9. 10款超牛Vim插件,爱不释手了
  10. Linux之父:不担心微软接管Linux
  11. 矩阵快速幂分析+POJ3070
  12. ASEMI-PL3369C电源管理芯片IC作用和意义
  13. clickhouse初体验之create insert update select group by
  14. 90 后的他带出7 个“师弟”,爱说话的程序员脱单更快?
  15. 音乐推荐数据集Million Song Dataset
  16. linux设备常用缩略语
  17. 基于AWS的Lambda+Alexa服务添加智能家居设备 (一)
  18. 迅捷音频转换器怎么使用? 1
  19. NCH PhotoPad Pro for Mac(轻量级照片编辑软件)
  20. upc Divide a Cuboid

热门文章

  1. 用友 NCC 1909 授权许可+无密码登录方法
  2. 2019中兴笔试选择题
  3. 2018年了,Windows2000还能用吗?
  4. android源码在线
  5. 教你如何选择弱电工程中使用的交换机?
  6. SQL Server分布式事务配置(MSDTC)(远程数据库更新)
  7. Windows如何刷新DNS缓存
  8. Arduino-LiquidCrystal_I2C 液晶库
  9. Axure RP 9.0.0.3716 Mac中文版
  10. 直播视频app源码从零搭建流媒体服务器+obs推流直播