携手 TDengine,释普科技升级实验室仪器、监控智能方案

浑浑噩噩
• 阅读 608
小 T 导读:从试用到正式上线的一年多里,释普科技从 TDengine 2.0 版本一直关注到 2.4。目前,释普的三款产品“监控保”、“数据宝”、“仪器保”均与 TDengine 达成了合作,不仅机器投入成本实现了显著降低,查询、存储等性能也能满足业务发展需求。本文将分享释普科技应用 TDengine 的实践经验,供读者参考。

公司简介
释普信息科技(上海)有限公司(简称释普科技)始终以“引领实验室数智化服务”为己任,专注于实验室和公共卫生领域,利用 AloT、物联数智平台以及人工智能技术,帮助各行各业实验室实现安全合规、提效降本、数字化决策。公司成立于 2016 年,总部位于上海,研发中心位于杭州,并在全国多地设有分支机构,客户广泛分布于生物医药、检验监测、科研院所、政府机构、化学化工、园区及公共服务平台、食品化妆品等行业。

项目介绍
为了帮助实验室客户在数字化层面实现更精准有效的数字洞察,为客户提供更快速的数据分析、更高效的算力支持、更轻量便捷的查询服务,释普科技借力 TDengine,在实时数据存储、高效压缩和快速聚合查询方面取得了良好的效果。截止到 2021 年,共计 18000 个点位,80000+ 台设备,10000+ 的 SKU 化学品通过 iLabService 释普科技系列产品实现了智能化监管。
携手 TDengine,释普科技升级实验室仪器、监控智能方案

我们通过“释普·监控保”“释普·仪器保”“释普·库存保”“释普·样本保”“释普·数据宝” 5 大产品,为客户构建实验室数智化整体解决方案。现阶段综合客户使用场景以及业务规划,“释普·监控保”、“释普·数据宝”、“释普·仪器保”三款产品因为智能算法的实现需要携手 TDengine 数据库,未来将会有更多产品接入 TDengine。
携手 TDengine,释普科技升级实验室仪器、监控智能方案

作为一家迅速成长的创业企业,为了满足成长过程中客户体量不断增长的需求,为客户提供更高价值的服务,我们综合评估了 TDengine 单机、集群的功能,加之其针对物联网场景的特殊设计,可以在物联网场景下显著降低机器的投入成本,因此我们毫不犹豫地选择 TDengine 进行了测试。

注:本案例中的截图主要为我司自己的设备场景,用作产品实用展示。

一、实践与效果

该环境的 TDengine 数据库服务版本为 2.2.2.15 单机模式,备份用其他方式完成。机器配置为 8C + 16G + 500G 机械硬盘。我们按照设备的原始数据、操作状态、样本状态,离线状态四个维度创建了“超级表—子表”的数据模型。
携手 TDengine,释普科技升级实验室仪器、监控智能方案

图片“释普·仪器保”的主要功能是为客户提供设备台账管理、利用率监控、资产管理、工单管理、计划服务管理、共享预约、仪器设备盘点等仪器设备全生命周期管理。其底层逻辑是数据的采集和存储。我们通过智能网关对实验室的设备采集数据后,通过 mqtt 发送到 EMQ 或者阿里云平台(根据客户需求),然后再通过消息队列缓冲后,以 Java 的 RESTful 方式写入到 TDengine,然后再把数据用以监控(监控保)、展示(数据保) 。

该环境目前共有数百台设备的接入,总数据量大概为 3 亿行左右,占据存储空间粗略估算为672MB ,压缩率满足我们的预期。
携手 TDengine,释普科技升级实验室仪器、监控智能方案

携手 TDengine,释普科技升级实验室仪器、监控智能方案

携手 TDengine,释普科技升级实验室仪器、监控智能方案

“释普·数据保”的主要功能是帮助客户整合各类数据,个性化地展现数据统计分析,以数据价值赋能决策,为实验室提供更智能的决策建议,助力提升实验室管理。因此,TDengine 对“数据保”的帮助主要体现在通过 SQL 语句进行数据展示,常用的 SQL 大致如下:
携手 TDengine,释普科技升级实验室仪器、监控智能方案

select last_row(ts) ts, last_row(${item.measurement}) value from ilabservice.socket
select ts, min(${item.measurement}) value from ilabservice.socket
select ts, max(${item.measurement}) value from ilabservice.socket
select avg(${item.measurement}) value from ilabservice.socket

值得一提的是,在 2、3 这样的 SQL 语句中,TDengine 一开始是不支持的。当时的 SQL 不能实现 ts 和 max()/min() 函数同时返回结果,也就是说,一次查询只能得到最大值/最小值,但是不能同时取到最大值/最小值和对应的时间戳。

后来官方听到了用户声音后,对这个功能做了优化:在使用所有的选择函数(max/min/last/last_row这类选择出数据类型的函数)时,可以同时指定输出 ts 列,甚至还有其他标签列(包括 tbname),这样就可以方便地知道被选出的值是源于哪个设备、哪个时间了。从这一点上也可以看到,国产数据库本地服务无疑会更加贴近用户和市场,会真正通过聆听用户声音来改善产品。
携手 TDengine,释普科技升级实验室仪器、监控智能方案

目前,我们还在开发 TDengine 在“监控保”中的应用。预计五月中下旬,客户就能通过 TDengine 实时查询设备状态表的最新数据,将体验到安全级别更高、更快速流畅的仪器设备运行参数、设备能耗分析状态、环境视频监控、人员行为识别反馈、安防管理等一体化实验室安全监控数据,在数据合规性上将会更有保障。

二、写在最后

从试用到正式上线的一年多里,我们从 TDengine 2.0 版本一直关注到 2.4 ,从最初的对数据库基础架构进行学习、SQL功能的调试、集群的高可用测试、JNI 和 RESTful 的选择,再到连续查询、监控模块等高级功能的试用,这个过程中我们看到了 TDengine 整个团队都在努力地让产品稳定性、功能性等各个方面变得更好,这也更加增强了我们打造好自己项目的信心。
我们相信,站在数字化智能化的时代大潮下,优秀的企业和产品总会脱颖而出。


想了解更多 TDengine Database的具体细节,欢迎大家在GitHub上查看相关源代码。
携手 TDengine,释普科技升级实验室仪器、监控智能方案

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
QClub 太原,2014年11月15日 Global Day of Coderetreat
QClub太原,2014年11月15日GlobalDayofCoderetreat活动时间:2014年11月15日星期六,全天(9:0018:00)活动地点:高新区体育路科技街口,大豪益达402(从KK这边的巷子进去,统一这面
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
智算中心发展趋势浅析
从国家到地方再到各类市场主体,都在大力推进算力资源布局建设,智算中心发展呈现算力的规模需求快速增加、围绕算法的服务模式持续完善、普适朴实普惠的服务生态逐步构建、绿色低碳的发展格局加速形成等新趋势。
浑浑噩噩
浑浑噩噩
Lv1
今朝有酒今朝醉,明日愁来明日愁。
文章
7
粉丝
0
获赞
0