IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <atom:link href="//www.yakult-sh.com.cn/tag/it-operation/feed" rel="self" type="application/rss+xml" /> <link>//www.yakult-sh.com.cn</link> <description>TDengine | 楂樻€ц兘銆佸垎甯冨紡銆佹敮鎸丼QL鐨勬椂搴忔暟鎹簱 | 娑涙€濇暟鎹?/description> <lastBuildDate>Mon, 17 Apr 2023 06:02:45 +0000</lastBuildDate> <language>zh-Hans</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>//wordpress.org/?v=6.8.2</generator> <image> <url>//www.yakult-sh.com.cn/wp-content/uploads/2025/07/favicon.ico</url> <title>IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <link>//www.yakult-sh.com.cn</link> <width>32</width> <height>32</height> </image> <item> <title>娴烽噺鏁版嵁鐩戞帶濡備綍閫夋嫨瀛樺偍鏂规锛?鐪嬭浆杞€佸緱鐗╄繖浜涗紒涓氭槸鎬庝箞鍋氱殑 //www.yakult-sh.com.cn/tdengine-user-cases/17212.html Wed, 22 Mar 2023 01:12:46 +0000 //www.yakult-sh.com.cn/?p=17212 对于互联|业务而言Qؓ保证服务的稳定运行,p时刻x服务器、服务调用、网l状늭各项指标Q单是监控数据就存在非常大的量。ؓ了应对这U挑战,l合监控数据的特点,许多企业开始选择W合业务需求的时序数据?/a>Q?a href="//www.yakult-sh.com.cn/time-series-database" target="_blank" rel="noreferrer noopener">Time Series DatabaseQ,以便更好地支持运l监控?/p>

转{ x TDengine

“?TDengine 完成攚w后Q线上的监控状态达到预期,满当前业务需求,目前q行非常E_。且配合 Grafana后,每个域名的流量、连接数、响应时间等信息都能够实时监控到。无论是在成本、性能层面Q还是在使用的便利性上QTDengine 都具有非常大的优势,在我们的实践中也得到了证明,其是成本管控上效果非常显著。?/p>

业务背景

转{的业务用了 Nginx 作ؓ反向代理Qؓ保证代理层可用性,需要对 Nginx q行实时状态监控。在服务器的基础监控的选择上,其将 OpenFalcon 逐步替换为夜莺,?Nginx ?reqstat 监控最初也使用了这两种。但是这两大监控都有一个共同缺点,卛_展示时有条数限制Q导致域名数量和机器数量怹后数据量增多的情况下Q无法满需求。这U情况下Q{转考虑对现有监控模块进行升U改造,重新q行数据库选型Q最l在Ҏ InfluxDB ?TDengine 之后做出了选择?/p>

架构?/strong>

量数据监控如何选择存储ҎQ?看{转、得物这些企业是怎么做的 - TDengine Database 时序数据? class=

点击案例查看更多技术细?/a>

同程旅行 x TDengine

“聚焦到实际效果上,TDengine 数据写入性能很强。原本我们的单套存储pȝ需?10 多台高配机器QIO q_ 30% 最?100% 的情况下才能写完数据Q现在只需?7 台机器,q且 CPU 消耗在 10% 左右、磁?IO 消耗在 1% 左右Q这炚w常的。同Ӟ其数据读取接入过E也很顺利。?RESTful 接口后,l合 TDengine 自带的强大聚合函数功能,很容易就能计出惌的结果。?/p>

业务背景

同程旅行有一套自研的基础监控pȝ“夜鹰监控”。目前夜鹰监控用情况ؓ百万U别 endpoint、亿U?metric、每U?200 万ƈ发写入以?2 万ƈ发查询。其存储lgZ RRD 存储QRRD 存储虽然拥有很好的性能Q却也存在着一些问题——基于内存缓存定期写?RRDQ在机器重启后会丢失部分数据。针Ҏ问题Q夜鹰监控做了很多高可用设计Q但q是很难满业务需求?/p>

随着基础监控pȝ接入指标的增长,目前 2 套存储系l在资源消耗方面一直在增长Q同时业务对监控也提Z更多的聚合计功能要求。基于此Q同E旅行需要从 InfluxDB、TDengine、Prometheus {多ƾ时序数据库中寻找一个新的来代替现有的存储系l,以减运l成本?/p>

架构?/strong>

量数据监控如何选择存储ҎQ?看{转、得物这些企业是怎么做的 - TDengine Database 时序数据? class=

点击案例查看更多技术细?/a>

得物 x TDengine

“目?TDengine 承蝲了数百亿数据Q在生环境q行q稳Q?CPU 使用率日怸?1 % Q内存用率E_?25 % 以下。大扚w的写入,耗时基本也能保持?10 msQ属于比较理想的范围Q不是大数据量范围的聚合查询,q是指定查询某一区间内的全部数据,查询效率都非怼异;在存储上Q我们的全量数据分散在三台机器中Q根据计得?TDengine 对于监控数据的压~率?10 %Q相当可观。?/p>

业务背景

作ؓ一家互联网电商公司Q得物有许多pȝ和场景都需要做量的监控和防护Q一天就能够产生C数据Q写入速度辑ֈ?TPS Q该数据量无法用传l的关系型数据库处理Q亟需一ƾ能够承载大量的量监控数据、ƈ能对数据q行存储和高效查询的数据库。在Ҏ?InfluxDB 、OpenTSDB 、Cassandra {时序数据库的性能后,其最l选择 TDengine ?/p>

架构?/strong>

量数据监控如何选择存储ҎQ?看{转、得物这些企业是怎么做的 - TDengine Database 时序数据? class=

点击案例查看更多技术细?/a>

商银行 x TDengine

“我们存储于 TDengine 中的数据主要为时序类数据Q如CPU、内存用率{系l运行数据,微服务调用、分布式锁、数据库操作处理旉Q业务线E池、连接池{各cL标数据。目前微服务可视化服务治理^台对q发要求较高Q但?TDengine 可以很好地满需求,插入/查询q_耗时均在 10ms 以内。?/p>

业务背景

商银行微服务可视化ȝq_是基?Java 体系自研的微服务ȝ监控q_Qؓ行内Zl一的微服务框架开发的应用提供全面、实时的微服务治理监控功能。在q样的业务场景中Q数据量大、监控指标繁杂成了主要挑战,商银行需要一ƾ能高效处理时序数据的工兗在明确了核心诉求之后,其调研了包括 Apache Druid、InfluxDB ?TDengine 在内的几Ƒօ?a href="//www.yakult-sh.com.cn/" data-internallinksmanager029f6b8e52c="2" title="时序数据? target="_blank" rel="noopener">时序数据?/a>Q在Ҏ后决定尝?TDengine?/p>

架构?/strong>

量数据监控如何选择存储ҎQ?看{转、得物这些企业是怎么做的 - TDengine Database 时序数据? class=

点击案例查看更多技术细?/a>

l语

从上qC业的具体数据架构攚w实践中我们能够看到Q在应对量时序数据?IT q维监控需求时Q时序数据库明显要更加专业,在性能和成本管控上都上升了一个维度。而这些行业的头部企业在众多时序数据库产品中都选择?TDengineQ个中原因从攚w效果中也可见一斑,有同样需求的伙伴也可以通过阅读具体的案例细节了解更多。TDengine 目前已经q营了几十个用户交流,如果你有要进沟通了解的需求,可以dT微信Qtdengine1 ?/p> ]]> IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <atom:link href="//www.yakult-sh.com.cn/tag/it-operation/feed" rel="self" type="application/rss+xml" /> <link>//www.yakult-sh.com.cn</link> <description>TDengine | 楂樻€ц兘銆佸垎甯冨紡銆佹敮鎸丼QL鐨勬椂搴忔暟鎹簱 | 娑涙€濇暟鎹?/description> <lastBuildDate>Mon, 17 Apr 2023 06:02:45 +0000</lastBuildDate> <language>zh-Hans</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>//wordpress.org/?v=6.8.2</generator> <image> <url>//www.yakult-sh.com.cn/wp-content/uploads/2025/07/favicon.ico</url> <title>IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <link>//www.yakult-sh.com.cn</link> <width>32</width> <height>32</height> </image> <item> <title>娴烽噺鏁版嵁鐩戞帶濡備綍閫夋嫨瀛樺偍鏂规锛?鐪嬭浆杞€佸緱鐗╄繖浜涗紒涓氭槸鎬庝箞鍋氱殑 //www.yakult-sh.com.cn/tdengine-user-cases/12934.html Mon, 25 Jul 2022 10:40:44 +0000 //www.yakult-sh.com.cn/?p=12934

TDengine Database

?T DQ除了要对几千台摄像头进行数据采集加在线,苏州大学q有 1500 多台交换机和 4000 多台服务器,在数据库的选择上,它需要在扛住如此大量讑֤ 24 * 7 高频长期写入的同Ӟq要保相当的查询效率。从 PostgreSQL ?TDengineQ本文分享了江苏U늛在面对业务难ҎQ在数据库的选择、应用和成效斚w的经验?/p>

企业?/strong>

苏州大学QSoochow UniversityQ,U“苏大”,坐落于美丽的江苏省苏州市Q是教育部与江苏省h民政府共建高校,国家“双一”徏N校,国家?11 工程”、?011 计划”首批入选高校,前n?1900 q创办的东吴大学Q是中国最早以C大学学科体系丑֊的大学?/p>

目介绍

作ؓ一所重点高校Q苏州大学具备规模较大的 IT 基础设施及应用系l,资源压力大,|络故障波及用户数量多。ؓ保障全校pȝ以及|络、服务器g、操作系l的可用性、可靠性和安全性,学校必须建立规范且全面的q维理体系?strong>在此背景下,我们江苏U늛与苏州大学与开展技术合作,打造了苏州大学智慧q维理q_?/strong>

该业务场景面临着以下隄Q?/p>

  • 资源讑֤cd、品牌、版本繁杂,各厂商协议区别大Qh员经验无法全覆盖Q原厂难以及时响应?/li>
  • 业务应用、服务与资源的关联关pd杂,问题定位旉q超q解决问题的旉?/li>
  • ~Z事前q维的有效工Ppȝ|络异常会L及各部门/院系师生的教学工作的开展,被动处理负担重,D业务部门投诉?/li>
TDengine Database

量讑֤数据的存储和查询问题首当其冲

对于q样一个规模较大的 IT 基础设施及应用系l来_解决问题本nq不难,隄是如何高效地处理问题、科学地预防大问题、迅速地定位问题的根本原因。就从监控数据层面来_如果惛_讑֤q行 24 * 7 不间断监控的话,那么量的设备数据存储和查询对于 Database 的压力将会非常大?/p>

苏州大学有几千台摄像_光摄像头的数据采集加在线的数据量就已经很大了,更别提还?1500 多台交换机?000 多台服务器,在数据库的选择上,它需要在扛住如此大量讑֤ 24 * 7 高频长期写入的同Ӟq要保相当的查询效率?/p>

此前Q我们用的?PostgreSQL 数据库单机版Q由于是关系型数据库QRelational DatabaseQ,在该时序数据的场景下数达CU数据量Ӟ查询分析延迟会达到大几秒Q压~率上也不太理想Q后文会有实际对比)Q无法撑起一个全域一体化q维监控q_的持l运行?/p>

数据的存储与d是一切业务的根基Q因此数据库选型q个环节ؓ重要。早在此前,我们针ҎcM务对时序数据?/a>Q?strong>Time Series DatabaseQ做了充分的调研与实。其?TDengine 作ؓ一个专为物联网、R联网、工业互联网、运l监等优化而设计的时序数据库,十分契合该场景。最l我们选择?TDengine 集成到我们自研且专用于监控时序数据的 Argus q_?//zmops.com?/p>

TDengine Database

实际应用与效果分?/h2>

其实Q从 2020 q开始,我们开始关注和接触 TDengine 了,很开心最l修成了正果Q在使用 TDengine ?Argus q_q行全面升后,不管是查询效率、分析性能q是盘占用Q都得到了质的提升?/p>

在将 TDengine 作ؓq_时序数据怹存储之后Q各功能都W合甚至出了我们的预期Q?/p>

TDengine Database
TDengine Database

落脚到实践上Q我们是在一?4C 16G 机械盘规格的服务器上落C该项目,使用单列模型Q针Ҏ个数据类型的指标都创Z个子表,q用一个超U表来统一理。当?strong>Q子表数量已l达到四十多万张Q轻松达成了数十万指标的实时监控?/strong>

在写入层面,׃各个讑֤采集频率不太一P每秒钟大概写?6000 多行Q这对于 TDengine 来说毫无压力Q?strong>我们通过官方试工具 taosBenchmarkQ在自己的虚拟机上都能跑出每U写出数百万点的成l?/strong>?/p>

TDengine Database

目前Q我们的数据存储周期Qkeep 7天)Z周,TDengine 所包含的数据量如下Q?nbsp;

TDengine Database
TDengine Database
TDengine Database

以下为用作对比的 PostgreSQL 中的数据量?/p>

TDengine Database
TDengine Database

可以看到QTDengine 存储的大?2 亿行数据Q实际占用存储空间不q?2 GB。(注:Vnode2 ?log 库所占用的空_?TDengine 用于内部监控而自带的数据库)Q比?PostgreSQL 占用?/strong> 200GB 的空_几乎可以忽略不计?/strong>

TDengine Database
TDengine Database

在查询上也是一P针对性能详情늚指标查询Q?strong>PostgreSQL 的很多查询都需要几U返回结果,而TDengine 都是毫秒U别?/strong>

TDengine Database

写在最?/h2>

当下Q由于我们的重点业务是实时监控,所以对历史数据q没有那么高的安全优先Q但后箋业务会涉及到Ҏ前的监控q行复盘Q我们将会升U到 TDengine 集群版来保数据的高可用。总而言之,从当前的应用情况来看QTDengine 适配非常利Qؓ我们的系l提供了非常大的助力?/p> ]]> IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <atom:link href="//www.yakult-sh.com.cn/tag/it-operation/feed" rel="self" type="application/rss+xml" /> <link>//www.yakult-sh.com.cn</link> <description>TDengine | 楂樻€ц兘銆佸垎甯冨紡銆佹敮鎸丼QL鐨勬椂搴忔暟鎹簱 | 娑涙€濇暟鎹?/description> <lastBuildDate>Mon, 17 Apr 2023 06:02:45 +0000</lastBuildDate> <language>zh-Hans</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>//wordpress.org/?v=6.8.2</generator> <image> <url>//www.yakult-sh.com.cn/wp-content/uploads/2025/07/favicon.ico</url> <title>IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <link>//www.yakult-sh.com.cn</link> <width>32</width> <height>32</height> </image> <item> <title>娴烽噺鏁版嵁鐩戞帶濡備綍閫夋嫨瀛樺偍鏂规锛?鐪嬭浆杞€佸緱鐗╄繖浜涗紒涓氭槸鎬庝箞鍋氱殑 //www.yakult-sh.com.cn/tdengine-user-cases/4999.html Mon, 21 Mar 2022 09:22:38 +0000 //www.yakult-sh.com.cn/?p=4999

?nbsp;T DQ在对多?a href="//www.yakult-sh.com.cn/" data-internallinksmanager029f6b8e52c="2" title="时序数据? target="_blank" rel="noopener">时序数据?/a>QTime-Series DatabaseQ进行了选型试后,同程旅行自研的“夜鹰监控”搭?TDengine 代替了现有存储设备,减少q维成本。本文分享了他们对徏表模型的Ҏ选择思\Q接?TDengine 后所遇到问题的解决经验以及落地效果展C?/p>

同程旅行有一套自研的基础监控pȝ“夜鹰监控”。目前夜鹰监控用情况ؓ百万U别 endpoint、亿U?metric、每U?200 万ƈ发写入以?2 万ƈ发查询。其存储lgZ RRD 存储QRRD 存储虽然拥有很好的性能Q却也存在着一些问题——基于内存缓存定期写?RRDQ在机器重启后会丢失部分数据?

出现q一问题的原因是 RRD 写入为单点写入,当机器故障后无法实现自动切换Q这一存储Ҏ也D无法展示更长旉的原始数据?针对此问题,夜鹰监控做了很多高可用设计,但还是很难满业务的需求,之后又进行了如下攚w:

  • 引入?ES 存储Qؓ夜鹰监控提供 7 天内原始数据的查询,目前部v?2 套存储?/li>
  • RRD 提供l?API 调用Q调用量在几万 TPS?/li>
  • ES 提供l夜鹰面板用,保存 7 天原始数据,调用量在几百 QPS?/li>

但随着基础监控pȝ接入指标的增长,目前 2 套存储系l在资源消耗方面一直在增长Q同时业务对监控也提Z更多的聚合计功能要求。基于此Q我们需要寻找一个新的时序数据库来代替现有的存储pȝQ以减少q维成本?

在进行时序数据库选型Ӟ实际需求主要有以下三点Q?/p>

  • 性能强,可以支持千万U别q发写入?0 万的ƈ发读?/li>
  • 高可用,可以横向扩展Q不存在单点故障
  • 功能强,提供四则q算、最大、最、^均、最新等聚合计算功能

在对比了 InfluxDB、TDengine、Prometheus、Druid、ClickHouse {多Ƒָ面流行的 Database 产品后,最l?TDengine 从中脱颖而出Q能满我们所有的选型要求?/p>

一?strong>Z TDengine 的徏表模?/strong>

夜鹰监控pȝ不仅存在pȝ指标数据Q同时也会存在业务指标数据。前者诸?CPU、内存、磁盘、网l一c,q类信息是可以预的指标Q其指标名是固定的,LUؓ 2000 万个。后者则会通过夜鹰监控?API 上传业务自n定义的指标,指标名是无法预测的,其特Ҏq发量不大却存在长尾效应Q随着旉累积Q一q可以达C亿?

?TDengine 在创之前需要先规划表的l构Q从上面的数据存储背景来看,如果要将量的指标数量直接一ơ性扁q_全部创徏Q则会造成性能的下降。通过?TDengine 技术支持h员沟通,他们l出了两个徏表方案:

其一Q将pȝcd指标聚合C个超U表Q一张表存放一个节点,多个指标一ơ性写入。这个方式的好处是表的数量可以降低到千万U别Q但因ؓ夜鹰监控的数据是单条上传的,很难做到一个表里面全部指标集齐再写入。ƈ且不同的指标上传频率不同Q如果再Ҏ频率Z同的表,q维理成本会非帔R?

其二Q将不同的指标徏成一个一个的子表Q? 千万个左右的指标汇聚成一个集,分多个集接入。这U方式的好处是表l构单,但运l管理多个集会很麻烦。不q我们也了解到涛思数据明q会发布 TDengine 3.0 版本Q能支持过上亿张表Q那么这一Ҏ可以很好的q行数据q移了?

最l,我们选择了第二个Ҏ。同时ؓ了减搭建集的数量Q准备写个程序定期清理掉q期的子表。目前夜鹰监控的表结构如下?/p>

表结? class=

夜鹰监控接入 TDengine 后,架构囑֦下?/p>

接入TDengine后的架构? class=

二?strong>接入 TDengine 之后的效果展C?/strong>

在进行数据迁ULQ我们先是将夜鹰监控数据转移?Kafka 中,之后通过消费转换E序?Kafka 的数据格式{Z TDengine SQL 格式?q个q程q遇C如下三个问题,解决思\攑֜q里l大家参考:

  • q接方式问题?/strong>刚开始我们用的?go-connector sdk 的方式接?TDengineQ跑h后发玎ͼgo-connector 依赖?taos client 包以?taos.cfg 配置文g里面的链接配|,同时因ؓ FQDN 的设|难以?VIP 负蝲均衡的配|方式。我们考虑到后面消费程序会部v到容器中Q不宜生过多的依赖Q因此还是放弃了 go-connector 的连接方式,改ؓ?HTTP RESTful 的连接方式?nbsp;
  • Kafka 消费数量问题?/strong>׃夜鹰监控上传?Kafka 里面的数据是一条一个指标,再加?200 万左右的q发Q连接数很快p光了。通过?TDengine 技术支持h员沟通,了解到可以改造成扚w SQL 的方式写入,最佳的实践效果?400-600K 单个 SQL 的长度。经q计,我们上传的指标条数大概ؓ 5000 条左叻I大小?500K ?/li>
  • d速度问题?/strong>因ؓ每次要等到消?5000 条数据,才会触发一ơ写入,q种情况也导致读取速度较慢。TDengine 技术支持h员再ơ给Z解决Ҏ——?Taos 自己实现?QueueQ代码地址?github.com/taosdata/go-demo-kafka/pkg/queue Q有需要的同学可以自行获取?/li>

聚焦到实际效果上QTDengine 数据写入性能很强?strong>原本我们的单套存储系l需?10 多台高配机器Q?/strong>IO q_ 30% 最?100% 的情况下才能写完数据Q现在只需?7 台机器,q且 CPU 消耗在 10% 左右、磁?IO 消耗在 1% 左右Q这炚w常的?

效果展示1
效果展示2

同时Q其数据d接入q程也很利。?RESTful 接口后,l合 TDengine 自带的强大聚合函数功能,很容易就能计出惌的结果?/p>

三?strong>写在最?/strong>

在我们的目中,TDengine Database 展现Z强的性能和多元化的功能,不仅具备高效的写入性能、压~率Q其聚合函数功能也非帔R全,支持 Sum/Max/Min/Avg/Top/Last/First/Diff/Percentile {多U函敎ͼ在架构上也设计的很合理,可以实现很好地横向扩展。同Ӟ其自w监控也做的很不错,打造了Z Grafana ?TDengine 零依赖监控解x?TDinsightQ在监控pȝ自n状态上展现Z很好的效果?

未来Q我们也希望?TDengine 展开更深层次的合作,在此也ؓ其提Z些小的Q助?TDengine 往更好的方向发展:

  • 官方文档q不够完善,新版的功能在文档中没有体玎ͼ很多用法~少代码CZQ个人理解v来比较晦涩难?/li>
  • C֌用户l验传递不是很多, 遇到一些问题时QGoogle 比较难以扑ֈC֌的解x?/li>

在接入的q程中,非常感谢 TDengine 的技术支持h员的全力支持。虽然目?TDengine q处于发展初期,也存在一些问题需要优化,不过其优异的性能q是l了我们一个大大的惊喜Q总而言之,TDengine 是个非常不错的存储系l,怿在陶老师的带领下会发展的来好Q?/p> ]]> IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <atom:link href="//www.yakult-sh.com.cn/tag/it-operation/feed" rel="self" type="application/rss+xml" /> <link>//www.yakult-sh.com.cn</link> <description>TDengine | 楂樻€ц兘銆佸垎甯冨紡銆佹敮鎸丼QL鐨勬椂搴忔暟鎹簱 | 娑涙€濇暟鎹?/description> <lastBuildDate>Mon, 17 Apr 2023 06:02:45 +0000</lastBuildDate> <language>zh-Hans</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>//wordpress.org/?v=6.8.2</generator> <image> <url>//www.yakult-sh.com.cn/wp-content/uploads/2025/07/favicon.ico</url> <title>IT杩愮淮 – TDengine | 娑涙€濇暟鎹?/title> <link>//www.yakult-sh.com.cn</link> <width>32</width> <height>32</height> </image> <item> <title>娴烽噺鏁版嵁鐩戞帶濡備綍閫夋嫨瀛樺偍鏂规锛?鐪嬭浆杞€佸緱鐗╄繖浜涗紒涓氭槸鎬庝箞鍋氱殑 //www.yakult-sh.com.cn/tdengine-user-cases/4866.html Wed, 12 Jan 2022 07:20:29 +0000

TDQ?/strong>中节能风力发电股份有限公司(股票Uͼ节能风电Q股代码:601016Q是中国节能环保集团有限公司控股的现代股份制公司。公司先后成功中标ƈC了国家第一个百万千瓦风电基地启动目——河北张北单晶河200兆瓦风电特许权项目,和第一个千万千瓦风电基地启动目——甘肃玉门昌?00兆瓦风电特许权项目,是国安个百万千瓦、千万千瓦风电基地的C者和引领者,在业内树立了较高的知名度和良好的品牌形象。徏成、在建项目装?47.97万千瓦,已发展成为张北坝上地区、甘肃河西走廊地区最大的风电开发商之一Q是我国风电领域一支重要的力量?

一、项目背?

公司作ؓ中节能集团在风电领域的专业化公司和核心上市^収ͼ具备成熟的风电开发和q维l验Q但是随着在徏风场逐步增多以及各类新型传感器的加装Q传l运l方式已l越来越吃力Q数字化化的需求越来越强烈Q因此迫切需要基于v量时序数据的数据q_来支撑繁杂的q维工作?

因此Q我们做了大量的时序数据调研工作。但是选型工作也ƈ非一帆风,开始我们尝试传l的工控时序数据?/a>QTime-Series DatabaseQ,但是随着点数量的增多,单机版架构已l无力支撑,后期我们也尝试了InfluxDB和OpenTSDB{分布式架构的时序数据库Q但是性能又达不到要求?

机遇巧合Q我们注意到一Ƒ֛产、开源的时序数据?/a>TDengineQ所以也试了一下?

二、TDengine选型试

针对我们重点x的查询性能Q我们做了如下几个测试?

1. 单测点历史数?a href="//www.yakult-sh.com.cn/docs/cn/v2.0/queries#aggregation">聚合查询

随机选择M个测点,查询该测点在某个旉D|炚w集值的countQmaxQminQavgQ比如从2020-01-01 00:00:00.000 ?2020-02-01 00:00:00.000?1天内的共535680条数据记录的countQmaxQminQavg。具体的查询语句为:

select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts>='2021-08-15 00:00:00.000' and ts<'2021-08-16 00:00:00.000'

实验截图如下Q?

实验截图
TDengine Database
试Ҏ 时gQ秒Q?
1 0.635000
2 0.145000
3 1.492000
q_? 0.7573333333333333

2. 分组聚合查询

查询某个旉D内点采集值的countQmaxQminQavgQ比如查询从2020-01-01 00:00:00.000 ?2020-02-01 00:00:00.000?1天内的数据记录的countQmaxQminQavg。数据库中对应查询语句ؓQ?

select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' group by wtcode >>E:/taosTempData/2

实验截图如下Q?

实验截图
TDengine Database
试Ҏ 时gQ秒Q?
1 0.040000
2 0.661000
3 0.099000
q_? 0.26666

3. H口查询操作

查询某个旉D内Q按?时?天?0天的旉H口q行分组后的countQmaxQminQavg聚合l果Q比如查询从2020-01-01 00:00:00.000 ?2020-02-01 00:00:00.000?1天内的全部数据记录,按照?时?天?0天的旉区间划分后的countQmaxQminQavg?

数据库中对应查询语句为:

select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (1h) >>E:/taosTempData/3;
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (1d) >>E:/taosTempData/4; 
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (10d) >>E:/taosTempData/5;

实验截图如下Q?

TDengine Database
试Ҏ 时gQ秒Q?
interval(1h)W?ơ查? 0.107000
interval(1h)W?ơ查? 0.060000
interval(1h)W?ơ查? 1.072000
Interval(1h) q_? 0.413
试Ҏ 时gQ秒Q?
interval(1d)W?ơ查? 0.041000
interval(1d)W?ơ查? 0.087000
interval(1d)W?ơ查? 1.615000
Interval(1d) q_? 0.581
试Ҏ 时gQ秒Q?
interval(10d)W?ơ查? 0.072000
interval(10d)W?ơ查? 0.026000
interval(10d)W?ơ查? 0.020000
Interval(10d) q_? 0.03933

l过反复Ҏ试以及应用适配Q最l我们选定TDengine作ؓ我们数据q_的时序数据解x案?

三、TDengine Database落地实践

目前中节能风늚整体时序数据如下图所C:

整体时序数据?TDengine Database?/a>?strong>标签功能。超U表能让同一c风机的建模、管理和计算q程更加方便快捷Q而标{性能增加诸如隶属目、^台容量等l度特征Q便于在聚合操作q程中快速筛选或者分l。基于时间窗口和状态窗口的功能也ؓ应用构徏提供了很多方便,比如功率曲线拟合q程中需要的五分钟^均风速和功率计算逻辑Q以及基于风机状态的各类l计分析?

在TDengine的用初期遇C一些问题,主要涉及集群搭徏和参数配|方面,l过和涛思数据技术团队的沟通交,都已得到解决?

后期?a href="//www.yakult-sh.com.cn/docs/cn/v2.0/model">数据建模和应用适配斚w也走了一些弯路,其是数据徏模方面。最开始我们用的是最单的单列模式Q一个测点一张表Q在点数目的情况下问题ƈ不明显,但是随着点数目的不断膨胀Q这U方式逐渐暴露出在应用适配斚w的问题;后来我们采取按照不同机型不同风场U表的方式徏模,基本能解x们的应用问题Q但是依然有无效开关量数D多的问题Q最l我们采取将风机状态等重点开关量单列建模的方式解决了?

四、整体效果和未来展望

目前ZTDengine数据库我们构Z中节能风电运l^収ͼ使用后数据存储优势明显,整体压羃比在7-8倍,数据查询也实现秒U响应。整体用效果如下图所C:

大屏首页?TDengine Database未来的数据流?TDengine Database作者介l:

潘文彪,中节能风는产运l部数据分析师,2019qv从事节能风电的数据分析与数字化^台徏讑ַ作?

]]>
TDengine 在雷辑֏站运l管理系l中的落地实?/title> <link>//www.yakult-sh.com.cn/tdengine-user-cases/3347.html</link> <dc:creator><![CDATA[雯台站q维目 研发团队]]></dc:creator> <pubDate>Thu, 02 Dec 2021 10:09:42 +0000</pubDate> <category><![CDATA[时序数据?- 用户案例]]></category> <category><![CDATA[ITq维]]></category> <category><![CDATA[雯台站]]></category> <guid isPermaLink="false">//www.yakult-sh.com.cn.cn:88/blog/?p=3347</guid> <description><![CDATA[每秒钟需采集22050条数据,如何修改TDengine默认旉_ֺQ]]></description> <content:encoded><![CDATA[ <p>作者:雯台站q维目研发团队</p> <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>?nbsp;T D</strong>Q该雯和^安城市研发单位是国家技术创新示范企业、国安新技术企业、全国电子信息行业标杆企业、“^安城市”徏设优U安防工程企业Q是首批安徽省创新型企业、安徽省产学研联合示范企业、安徽省重点软g企业Q股代?00990?/p></blockquote> <p><br>随着大数据时代的到来Q民航行业对数据的重视程度提高,对空设施设备可靠性、安全性、智能化水^也提Z更高的要求。在q一背景下,智慧化雷辑֏站的提上日程Qؓ便于对台站进行全局的管理,提高台站q行效率Q民航开始推动以集中化的理模式寚w辑֏站进行智慧运行管控——以台站化设备ؓ基础Q利用先q的信息化技术构建台站管理信息化应用体系。这一丑֊旨在Z务统一、高效管理提供信息服务支撑,解决台站q行l护痛点Q推q空台站向控自动化、智慧化发展?/p> <p><br>我们在雷辑֏站运l管理系l中搭徏了数个传感器讑֤Q这些传感设备种cL数量多,大致可以分ؓ以下几类Q声音传感器、XYZ三向轴振动传感器、倾斜角度传感器、电力模拟量传感器、风速传感器{等?/p> <p><br>׃传感器设备采集数据频度高Q数据传输量大,要求存储数据库具有极高的数据吞吐率和存储低gӞ特别是声音传感器Q每U钟要采?2050条数据,常规的事务型数据?MySQL、Oracle{?对这cL量的结构化数据存储早已力不从心Q而用基于事务型数据库的分表分库中间?ShardingSphere、MyCat{?又会把技术架构变得更加复杂,也会大大提高后期pȝq维成本?/p> <p><br>Z此,我们军_q行数据库选型Q以匚w雯台站q维理pȝ的搭建?br></p> <h2 class="wp-block-heading"><strong>Z么会选择TDengine</strong> Database</h2> <p></p> <p>l合考虑软硬件成本和后期pȝ的技术维护成本,我们先后调研?a href="//www.yakult-sh.com.cn">旉序列数据?/a>中的InfluxDB、TDengine、OLAP工具ClickHouse以及曾用过的Hadoop技术栈中的HBase(Hive、Kylin)?strong>׃服务器数量所限,我们首先攑ּ了基于HBase(Hive、Kylin)的技术方案,随后对InfluxDB、TDengine和ClickHouse做了写入和查询性能ҎQ发现在相同配置的服务器g资源中,TDengine Database都发挥出了最好的性能表现?/strong>部分性能Ҏ如下图:</p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="650" height="458" src="//tdengine.com/wp-content/uploads/2021/12/雯1.jpg" alt="性能Ҏ TDengine Database" class="wp-image-3348" title="TDengine 在雷辑֏站运l管理系l中的落地实?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯1.jpg 650w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯1-300x211.jpg 300w" sizes="auto, (max-width: 650px) 100vw, 650px" /></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="654" height="388" src="//tdengine.com/wp-content/uploads/2021/12/雯2.png" alt="性能Ҏ TDengine Database" class="wp-image-3349" title="TDengine 在雷辑֏站运l管理系l中的落地实?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯2.png 654w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯2-300x178.png 300w" sizes="auto, (max-width: 654px) 100vw, 654px" /></figure></div> <p>同时我们也查询了两款数据库Y件在<a href="//github.com/taosdata/TDengine" rel="nofollow noopener" target="_blank">GitHub</a>和Gitee{国内外开源托^C的社区活跃程度,q了解到TDengine不仅集群版已l进行开源且q是一Ƒ֛产化的数据库产品Q在当下国化的大趋势背景下Q我们就此选定了TDengine作ؓ存储量传感器数据的<a href="//www.yakult-sh.com.cn">时序数据?/a>Q配合传l的关系型数据库MySQLQ用于存储组l机构、用户名、密码、E记录{强事务型数据)一起作为系l的后端底层存储数据库?br>选定数据库之后,搭徏便开始进行。下面我会介l一下我们在搭徏旉到的一些避坑经验,l到大家参考?br></p> <h2 class="wp-block-heading"><strong>TDengine具体实践</strong></h2> <p></p> <p>具体到我们的场景中,使用TDengine建库思\如下图所C?/p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="144" src="//tdengine.com/wp-content/uploads/2021/12/雯3-1024x144.png" alt="taos> show tables; TDengine Database" class="wp-image-3350" title="TDengine 在雷辑֏站运l管理系l中的落地实?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯3-1024x144.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯3-300x42.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯3-768x108.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯3.png 1281w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="425" height="96" src="//tdengine.com/wp-content/uploads/2021/12/雯4.png" alt="taos> select count(*) TDengine Database" class="wp-image-3351" title="TDengine 在雷辑֏站运l管理系l中的落地实?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯4.png 425w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯4-300x68.png 300w" sizes="auto, (max-width: 425px) 100vw, 425px" /></figure></div> <p>TDengine在用数据库的时间精度上默认的是毫秒Q但是系l的声音振动传感器采集频率是22050HZQ即每秒钟采?2050条数据,因此我们Ҏ据存储的旉_ֺ要求到纳U别,需要修Ҏ据库默认的时间精度。相x令如下:</p> <pre class="wp-block-code"><code>#振动声音?微妙旉_ֺ)(22050/s) #创徏U秒旉_ֺ数据?CREATE DATABASE radar_us_sc precision "us" KEEP 365 DAYS 10 BLOCKS 4 UPDATE 1; #使用刚刚创徏的数据库 USE radar_us_sc; #创徏?CREATE TABLE st_sc_shock (ts timestamp, ch1 float,ch2 float,ch3 float) TAGS (location binary(32), groupdId int); #创徏普通表Q承上面的表) CREATE TABLE t_sc_shock_hf20101 USING st_sc_shock TAGS ("test", 1); #手动插入微秒U时间戳数|试数据Q?INSERT INTO t_sc_shock_hf20101 VALUES (1613799712123412, 10,10,10);</code></pre> <p>q里需要注意的是由于是U秒U别的时间精度,在插入测试数据时Q时间戳字段对应的数值比普通时间戳?位数字,且不需要有数炏V?/p> <p>其它传感器例如风速传感器Q用默认的旉_ֺ语句卛_Q?/p> <pre class="wp-block-code"><code>#风速表-建库(旉_ֺ是默认的毫秒) CREATE DATABASE radar_sc KEEP 365 DAYS 10 BLOCKS 4 UPDATE 1; #使用风速表 USE radar_sc; #U表QTag里面只定义,不设|具体?CREATE TABLE st_sc_wind (ts timestamp, speed float) TAGS (location binary(32), groupdId int); #建普通表Q在定义普通表的时候给出Tag的具体?CREATE TABLE t_sc_wind_hf40101 USING st_sc_wind TAGS ("test", 1);</code></pre> <p>在上层的业务应用中,用户需要试听一D|间的雯转机的声韛_判断雯q行状态是否正常,面h数据库给出开始时间和l束旉q两个时间段的数据,再通过声音q原法这些结构化文本数据q原成可以播攄WAV或者MP3文gQ用户在面上即可实时听到部|在雯转机q{的声韻I再配合我们在前端|页上渲染出来的频谱图、时域图、频域图Q来一起判断雷达{机工作是否正常?/p> <p>׃我们需要基于时域图和频域图d断雷达{机工作是否正常,因此在生成频域图之前Q我们需要预先在数据库中把原始数据按照频率分D는成数千张子频率段表,再基于这些子频率D表q行FFT转换从而得到频域图?/p> <p>在一ơ删除数千张子频率段表操作中Q删除语句执行之后,数据库访问和插入变得异常~慢Q我们的W一反应是数据库负蝲q高Q于是尝试重启数据库Q在数据库关闭ƈ且重新启动之后,数据库服务状态显C启动正常,但客L却仍然连接不上。此时我们找到TDengine的日志,通过ȝ日志发现命o行程序taosQ正在恢复重启数据库之前的尚未完成的删除表操作,操作WAL(Write Ahead Log)Q而此时taos仅仅d了数千个日志中的前几百个。大U等待了数小时后Q数据库客户端才可以查询到数据,数据库得以正怋用?/p> <pre class="wp-block-code"><code>systemctl status taosd journalctl -u taosd.service</code></pre> <p>在涛思数据技术支持h员的帮助下,我们军_升TDengineQ升U数据库需要先卸蝲旧版本,操作如下Q?/p> <pre class="wp-block-code"><code>rmtaos或者rpm -e TDengine</code></pre> <p>然后下蝲新版本的TDengineQ在Server的目录里执行命o如下Q?/p> <pre class="wp-block-code"><code>install.sh</code></pre> <p>TDengine的整个升U过E比较简单,新版本的数据库启动之后即可用,同时也徏议涛思数据的研发人员在taos启动时监下上次未完成读取的WAL文gQ再启动q度条中昄d执行WAL文gq度Q这样可以让数据库用者知道现在数据库的真实状态和q度?br></p> <h2 class="wp-block-heading"><strong>搭蝲TDengine的系l架构详?/strong></h2> <p></p> <p>整体来看Q雷辑֏站智能运l系l分为单台站pȝ和中心站pȝ两种cd。单台站pȝl成内容包括台站现场的主讑֤监控、网l设备监控、动力设备监控、环境设备监控、专Ҏ据分析、机器h巡检、雷辑֏站智能运l系l管理^台、雷辑֏站智能运l系lAPP{?/p> <p>中心站是q端多个单台站信息集成的中心Q可以对多个单台站的数据q行融合处理Q功能包括Mq行态势分析、数据融合、数据挖掘、专家知识库、自d习、辅助决{等功能Q日常管理h员可以通过该中心站q_q程理所有接入雷辑֏站智能运l系l系l的单台站?/p> <p>雯台站q维pȝUdl端软g可在手机或^板电脑上q行Q功能由台站态势监测、实时数据监、报警预警、工单流转、技术会诊、专分析、知识库、机器h控制、视频监控等应用功能?/p> <p>其业务架构主要包括数据来源层、数据存储层、数据模型层Q数据接口层、业务应用层、业务展C层和用L端几个部分,如下图所C?/p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="692" height="538" src="//tdengine.com/wp-content/uploads/2021/12/雯5.png" alt="业务架构?TDengine Database" class="wp-image-3352" title="TDengine 在雷辑֏站运l管理系l中的落地实?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯5.png 692w, //www.yakult-sh.com.cn/wp-content/uploads/2021/12/雯5-300x233.png 300w" sizes="auto, (max-width: 692px) 100vw, 692px" /></figure></div> <p>整体架构由底层到上层l成主要分ؓ以下几个层面Q数据来源层、数据存储层、数据模型层、数据接口层、业务模块层、业务展C层?/p> <p>数据来源层可以利用物联网传感器和采集技术对台站q行情况q行多维度信息采集。物联数据采集包括台站的环境监测、设备检、动力监、数据监、服务监、网l链路监、资源监等几个斚w?/p> <p>数据存储层的作用是对所有监的数据q行l一的数据清z,剔除异常数据后融合成标准化的格式q进行存储?strong>数据存储层对不同的数据类型采用不同的底层存储方式Q具有明显时间序列属性的传感器数据将会被存放在TDengine中,q且按照不同的业务数据Ş成不同的业务主题库?/strong></p> <p>而且数据存储层具有数据缓冲的功能Qƈ能按数据的访问频率自动徏立数据缓存,合理规划pȝ内冷热数据的存储方式Q提高数据访问的速度。此外,存储层还会定时对数据q行备䆾存储、冷热数据替换以及数据诊断,及时发现数据存储的故障隐患、保证数据的存储安全性?/p> <p>数据模型层能够根据业务需求利用存储的数据建立多个数据分析模型Q提供模型算法统一的运行环境,包括实时分析和批处理分析Qƈ能对q行的模型算法进行统一理Q包括算法Q务启停、服务编排、算法运行监控、算法资源管理、算法运行告警、算法模型库{多个功能?/p> <p>通过分析法历史Ҏv量监数据进行综合分析,利用多维数据相关性分析技术,可以以往一些不被注意但会生实际媄响的传感器数据囊括进特征提取建模和神l网l徏模的q程中,l合历史数据对实时全量数据进行深度挖掘,再结合过往的设备运l实际经验便可预出故障发生的概率,实现故障预测?/p> <p>数据接口层利用多U行业内通用的数据共享接口实现系l数据和其它W三方^C及APP端的数据׃nQ支持的数据接口方式包括RESTful、消息队列、中间库{多U方式,且能控制数据的共享权限和׃n目录?/p> <p>业务模块层通过q_底层提供的数据和基础服务Q可在上层开发构建多个业务智能应用,同时提供了上层应用统一q行的环境。业务模块功能主要包括工单系l、实时监、智能预警、态势分析、远E控制、专分析、健庯仗告警联动、自动E、专家知识库、智能安防等?/p> <p>在业务展C层Q可Ҏpȝ使用人员和用场景的区别来构建多个业务展C^台。其中本地管理^台和q程理q_分别作用于单台站和中心站的管理,同时配备了移动端软g方便台站理人员q程对台站进行管理和监控。展C^台可按用户用权限的不同来展CZ同的数据和视图,理人员视图更們֐于宏观全局的数据展C维度,l保人员视图展示的是l节和本人工作相关的展示l度?br></p> <h2 class="wp-block-heading"><strong>写在最?/strong></h2> <p></p> <p>在实现快速查询检索提升用户体验的同时QTDengineq可以达到节省硬件服务器资源和降低系l后期运l成本的目的。考虑到TDengine在本目中各Ҏ能指标和数据库E_性的优异表现Q在未来的^安城市、智慧社区等业务场景中,我们也会考虑使用TDengine用于存储qR记录、h脸识别记录和WiFi探针记录{数据,展开更深层次的合作?/p> ]]></content:encoded> </item> <item> <title>Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?/title> <link>//www.yakult-sh.com.cn/tdengine-user-cases/3205.html</link> <dc:creator><![CDATA[三禾一U技 李军]]></dc:creator> <pubDate>Sat, 30 Oct 2021 03:57:47 +0000</pubDate> <category><![CDATA[时序数据?- 用户案例]]></category> <category><![CDATA[Chinese]]></category> <category><![CDATA[ITq维]]></category> <category><![CDATA[代替InfluxDB]]></category> <category><![CDATA[工业互联|]]></category> <category><![CDATA[智慧q维]]></category> <guid isPermaLink="false">//www.yakult-sh.com.cn.cn:88/blog/?p=3205</guid> <description><![CDATA[TDengine Database的写入性能高、ƈ发高、查询时延极短;整体集群采用分布式架构,可靠性、稳定性、数据完整性满项目需求?]]></description> <content:encoded><![CDATA[ <p>作者:李军/三禾一U技</p> <p>安徽三禾一信息U技有限公司Q以下简UC一U技Q,专业从事大数据行业应用及工业互联|解x案,致力于携手各行业客户共同发现产业Ch倹{目前,三禾一U技自研?H1高端装备q维服务q_已经成功应用在高端装备制造、汽车制造、环保设备、色选机械、水泥行业等领域?</p> <p>高端成Ş装备是国家的战略性支׃业,应用于汽车、石化、航I、航天、军工、工E机械、家用电器等国民l济发展中的重要领域Q是许多重大工程的基。当前,C代信息技术的快速发展,使得高端成Ş装备刉业正处于由数字化、网l化向智能化发展的重要阶Dc?</p> <p>作ؓ一个高端装备运l服务^収ͼ3H1的底层物联网数据库要支持数百家企业、数十万讑֤的接入,此前一直采用开源的InfluxDBQ原因是在其单机版本基础上可以扩展多实例分库架构Q但在用过E中一些缺点也逐渐暴露Q如g成本较高、维护难度较大,不便于横向扩展。所q后来遇?0倍高性能数据库TDengineQ经多次试验其各Ҏ标均满业务需求,便一直用至今?</p> <h3 class="wp-block-heading"><strong>Z么选择TDengineQ?/strong> </h3> <p>在装备行业物联网场景下实时数据量巨大Q包括温度、压力、振动、位Uȝ众多参数Q针对这些参数如何进行分析和预警都是隄。这些需求概况如下: </p> <ul class="wp-block-list"><li class="">高ƈ发数据写入,每条记录都需要带旉戻I </li><li class="">不同传感器设备需要记录的数据字段不同Q希望能够针对不同设备单独徏表; </li><li class="">原始数据存储要求?q以上,需要支持数据压~,以降低数据存储成本; </li><li class="">支持国化,支持数据库厂商服务快速响应?</li></ul> <p>选用TDengine DatabaseC֌?.2.1.1q行分布式模拟试验,用到?台配|如下的服务器: </p> <figure class="wp-block-table"><table><tbody><tr><td>lg</td><td>配置描述</td></tr><tr><td>CPU</td><td> 4?</td></tr><tr><td>内存</td><td>15G</td></tr><tr><td>盘</td><td>4T</td></tr><tr><td> 操作pȝ</td><td> CentOS Linux release 7.6 </td></tr><tr><td>|络</td><td>内网</td></tr></tbody></table></figure> <p><strong>试一Q验证时序数据库产品3台数据库节点时序数据写入性能</strong> </p> <p>模拟<strong>2</strong>个厂区共10个R间的数据、每个R?000个监点Q每个监点?017-07-14 10:40:00.000开始写入模拟数据,记录旉戳间?.001U,每个点写入500000条记录?</p> <p>8U程写入Q在写入过50亿条记录后停止了写入E序。本ơ测试对50亿条数据记录的写入,q_写入速度辑ֈ191万条/U?</p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="470" height="182" src="//tdengine.com/wp-content/uploads/2021/10/11111.png" alt="TDengine Database" class="wp-image-3206" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/11111.png 470w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/11111-300x116.png 300w" sizes="auto, (max-width: 470px) 100vw, 470px" /></figure></div> <figure class="wp-block-table"><table><tbody><tr><td> 条数/U?</td><td> LӞU) </td></tr><tr><td> 5000000000/2606= 1918635.03 </td><td> 2606.0193 </td></tr></tbody></table></figure> <p><strong>试二:验证时序数据库?台数据库节点时序数据压羃能力</strong> </p> <p>在测试一的基上,查看3台数据库节点实际文g大小Q如下: </p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="550" height="128" src="//tdengine.com/wp-content/uploads/2021/10/22222.png" alt="TDengine Database" class="wp-image-3207" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/22222.png 550w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/22222-300x70.png 300w" sizes="auto, (max-width: 550px) 100vw, 550px" /></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="578" height="167" src="//tdengine.com/wp-content/uploads/2021/10/33333.png" alt="TDengine Database" class="wp-image-3208" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/33333.png 578w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/33333-300x87.png 300w" sizes="auto, (max-width: 578px) 100vw, 578px" /></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="546" height="154" src="//tdengine.com/wp-content/uploads/2021/10/44444.png" alt="TDengine Database" class="wp-image-3209" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/44444.png 546w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/44444-300x85.png 300w" sizes="auto, (max-width: 546px) 100vw, 546px" /></figure></div> <p>落盘后所有文件大ؓ36GBQ?/p> <p>原始数据大小?000000000*20/1024/1024/1024=93.13GBQ?/p> <p>压羃比ؓ36 / 93.13 = 38.65%?/p> <p><strong>试三:时序数据库?台数据库节点对历史时序数据按旉回溯查询的性能</strong> </p> <p>随机选择M个测点,查询该测点在某个旉D内的历史数据,比如?017-07-14 10:40:00.000 ?2017-07-14 10:40:10.000 10s内的?0001条数据记录(数据输出到文Ӟ? </p> <p>数据库中对应查询语句为:</p> <pre class="wp-block-code"><code> select * from d0 where ts >= ?017-07-14 10:40:00.000?and ts <= ?017-07-14 10:40:10.000?>> /dev/null; </code></pre> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1003" height="226" src="//tdengine.com/wp-content/uploads/2021/10/55555.png" alt="TDengine Database" class="wp-image-3210" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/55555.png 1003w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/55555-300x68.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/55555-768x173.png 768w" sizes="auto, (max-width: 1003px) 100vw, 1003px" /></figure></div> <figure class="wp-block-table"><table><tbody><tr><td> 试Ҏ </td><td> 时gQ秒Q?</td></tr><tr><td> 1 </td><td> 0.052473 </td></tr><tr><td> 2 </td><td> 0.048442 </td></tr><tr><td> 3 </td><td> 0.054255 </td></tr><tr><td> q_ </td><td> 0.051723 </td></tr></tbody></table></figure> <p>通过试验证,TDengine的写入性能高、ƈ发高、查询时延极短;整体集群采用分布式架构,可靠性、稳定性、数据完整性满项目需求?</p> <p>在选型l果定之后Q我们便立刻对原有业务系l进行了升攚w,正式引入 TDengine?</p> <h3 class="wp-block-heading"><strong>TDengine?H1上的落地实践</strong> </h3> <p>3H1高端装备q维服务q_重点解决高端成Ş装备企业由制造化向服务化转型的关键问题,Z业提供工业互联网与智能运l的整体解决Ҏ?</p> <p>q_M架构如图1所C,其中QTDengine与高端成形装备的数据采集l端模块相连Q助力采集终端完成对讑֤q行数据的采集,为系l提供设备数据基Q工业云计算服务q_提供pȝ数据的存储、{换、分析等Qؓpȝ提供业务数据支持Q智能运l服务系l由装备q维服务q_和智能运l服务APPl成Q分别ؓ企业人员提供pȝ和移动端的服务支持?/p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="686" src="//tdengine.com/wp-content/uploads/2021/10/66666-1024x686.png" alt="TDengine Database" class="wp-image-3211" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/66666-1024x686.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/66666-300x201.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/66666-768x515.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/66666.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>? q_M架构</figcaption></figure></div> <p>针对企业多种应用场景Q系l应用服务共分ؓ六大功能模块?</p> <p>Q?Q?strong>企业N?/strong>Q主要是服务于设备制造企业的理者,方便了解q_数据情况与关键业务流E的指标Q从整体界面上可以很方便的了解到讑֤的售卖情况,企业接入的信息,q_数据的采集情c同时还可以对一些关键的业务程Q包括企业设备的监控、报警信息的展示、维修效率的理、设备的故障情况和三包Q务的信息q行q踪与管理,如图2所C?</p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="487" src="//tdengine.com/wp-content/uploads/2021/10/77777-1-1024x487.png" alt="TDengine Database" class="wp-image-3213" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/77777-1-1024x487.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/77777-1-300x143.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/77777-1-768x365.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/77777-1.png 1267w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>? 企业N?/figcaption></figure></div> <p>Q?Q?strong>讑֤资源理</strong>Q主要的目的是ؓ了给每一个高端成形装备徏立电子档案,以便了解讑֤历史、当前情况,优化讑֤q行Q预设备未来状况,查看具体的设备信息时主要展示讑֤的四个维度——当前工c健康分析、维修情况和历史工况?</p> <p>?所C的当前工况方便用户了解讑֤的基本信息、关键指标和报警情况Q还能够提供讑֤当前情况的总览。图4所CZؓ健康分析Q其目的则是让设备用h加深入地了解讑֤的当前状c设备的健康状况随着旉的变化情况,如果讑֤当前面故障风险Q也能快速查扑ֈ引v风险的故障原因以及故障模块。维修情况则是给了用戯备维修信息的总览和当前维修Q务的程跟踪Q如?所C。历史工况则是ؓ了进行故障模块预排查Q如?所C?</p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="487" src="//tdengine.com/wp-content/uploads/2021/10/88888-1024x487.png" alt="TDengine Database" class="wp-image-3215" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/88888-1024x487.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/88888-300x143.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/88888-768x365.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/88888.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>? 讑֤资源理-当前工况</figcaption></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="487" src="//tdengine.com/wp-content/uploads/2021/10/99999-1024x487.png" alt="TDengine Database" class="wp-image-3216" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/99999-1024x487.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/99999-300x143.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/99999-768x365.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/99999.png 1262w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>? 讑֤资源理-健康分析 </figcaption></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="470" src="//tdengine.com/wp-content/uploads/2021/10/1010101010-1024x470.png" alt="TDengine Database" class="wp-image-3217" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/1010101010-1024x470.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/1010101010-300x138.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/1010101010-768x352.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/1010101010.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>? 讑֤资源理-l修情况</figcaption></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="488" src="//tdengine.com/wp-content/uploads/2021/10/1111111111-1024x488.png" alt="TDengine Database" class="wp-image-3218" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/1111111111-1024x488.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/1111111111-300x143.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/1111111111-768x366.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/1111111111.png 1260w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption> ? 讑֤资源理-历史工况 </figcaption></figure></div> <p>Q?Q?strong>l修服务理</strong>Q主要提供给l修服务部门人员所l修d当前和历史的效率分析。维修Q务展C当前待处理的Q务数量,比如待接单、待z֍和待回访Q同时还可以Ҏ个维修Q务进行查看和操作Q查看的内容具体到维修流E的每一个环节,如图7所C?</p> <p>l修效率分析则是对维修中的关键效率指标进行统计分析、近一q来的订单量的变化情c维修响应时间变化情c故障类型分布、维修h员Q务统计,方便l修理人员对维修服务和效率q行理Q如?所C?</p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="487" src="//tdengine.com/wp-content/uploads/2021/10/12121212-1024x487.png" alt="TDengine Database" class="wp-image-3219" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/12121212-1024x487.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/12121212-300x143.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/12121212-768x365.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/12121212.png 1263w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption> ? l修服务理-当前l修d </figcaption></figure></div> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="485" src="//tdengine.com/wp-content/uploads/2021/10/13131313-1024x485.png" alt="TDengine Database" class="wp-image-3220" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/13131313-1024x485.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/13131313-300x142.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/13131313-768x364.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/13131313.png 1267w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>? l修服务理-l修效率分析</figcaption></figure></div> <p>Q?Q?strong>讑֤健康分析</strong>Q通过分析讑֤的历史和当前讑֤信息来预设备未来可能发生的故障Qƈ且给出故障的可能性和cdQ方便维修部门ؓ用户指定l保{略Q主动联pȝP如图9所C?</p> <div id="sqinis2ngw" class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="491" src="//tdengine.com/wp-content/uploads/2021/10/14141414-1024x491.png" alt="TDengine Database" class="wp-image-3221" title="Z高性能时序数据?TDengineQ三一U技打造高端装备运l服务^?- TDengine Database 时序数据? srcset="//www.yakult-sh.com.cn/wp-content/uploads/2021/10/14141414-1024x491.png 1024w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/14141414-300x144.png 300w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/14141414-768x368.png 768w, //www.yakult-sh.com.cn/wp-content/uploads/2021/10/14141414.png 1265w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption> ? 讑֤健康分析 </figcaption></figure></div> <p>Q?Q?strong>三包服务理</strong>Q服务于三包部门Q提供当前维保活动提醒、设备维保活动记录、设备维保到期预警等功能?</p> <p>Q?Q?strong>备品备g理</strong>Q备品备件管理通过与l修保养相关的备品备件也都徏档立案。用户和各相关部门h员可以在Ud端和pȝ端进行备品备件查询申请审批等操作Q较不必要的工作流E,提高l修保养效率。同旉过数据分析来预备品备仉求量Q保证需求的同时减少企业的库存成本?</p> <p>在应用TDengine Database后,q六大功能模块在使用效果上也获得了显著提升,不光体现在数据的写入、查询性能上,同时也体现在高效的压~效率上Q真正实C性能和成本^衡的最优化?</p> <h3 class="wp-block-heading"><strong>未来规划</strong> </h3> <p>目前Q在搭蝲TDengine Database后,3H1原有业务pȝ在升U改造后获得了极大的提升Q不仅降低了研发和维护的成本Q同时实C横向扩展。TDengine优异的查询性能l我们带来了很大的惊喜,极高的压~效率,也给我们节省了大量的存储资源。未来,我们也会试在更多场景应用TDengineQ加ZTDengine的深度合作?</p> ]]></content:encoded> </item> </channel> </rss>