
小 T 导读:在欧圣达的物联网智能设备平台项目中,需支持数百万以上物联网表具和智能终端的接入管理,支持分布式部署且具备良好扩展性。在规则引擎场景下,TDengine 提供了很好的查询和存储性能,成为本项目实现实时告警和监控服务的重要一环。本篇文章分享了欧圣达在数据库调研和搭建阶段的思考和经验,供参考。
公司简介
哈工欧圣达是深圳市欧圣达科技有限公司和哈工大机器人集团的合资公司,总公司深圳市欧圣达科技有限公司成立于 2010 年 5 月,总部位于深圳,下设合肥研发中心、华东分公司(合肥)和西南分公司(成都)。公司始终致力于燃气、供热等公共事业领域的智慧化解决方案研发和应用推广,拥有超过 10 余项自主知识产权的、基于 5G/NB-IoT 和大数据的“一体化平台+智能安全终端”智慧燃气解决方案,作为核心成员参与制定并发布 2019、2020 年 5G 智慧燃气行业标准。
调研选型

业务架构部署
1.
技术架构图

2.
建模思路
show create stable device_meter_record\G;create table device_meter_record (receive_time TIMESTAMP,meter_readnum DOUBLE,meter_balance INT,meter_volume DOUBLE,meter_time TIMESTAMP,meter_temperature DOUBLE,meter_pressure DOUBLE,meter_instantflow DOUBLE,cust_num BINARY(50),cust_name BINARY(255),company_id BINARY(32),subcompany_id BINARY(32),readingteam_id BINARY(32),subreadingteam_id BINARY(32),area_id BINARY(32),community_id BINARY(32),building_id BINARY(32),user_type BINARY(20),is_holiday BOOL,supplier_id BINARY(32),supplier_device_code BINARY(20),platform_balance INT,platform_last_reading DOUBLE,platform_last_balance INT,platform_price BINARY(15)) TAGS (device_id BINARY(32),device_no BINARY(32),sno BINARY(32),model_id BINARY(32),type_id BINARY(100))
3.
效果展示



经验分享与未来规划
查询结果字段名的特殊写法
SELECT last_row(ts) FROM stb GROUP BY tbname,这样的设计会导致 MyBatis 等 ORM 框架在映射时无法直接对上。这种情况下只需要将 keepColumnName 设置为 1,就可以避免。
及时更新版本
USING 语法
INSERT INTO table USING stable TAGS() 的语法时,一直以为这里会对 tag 进行重新赋值。到了使用的时候才发现,原来 table 已经存在的情况下,是不会对 tag 发生修改的。细思一下绝对的也是合理的,因为毕竟多一次修改就会多一次性能消耗,如果跟着 insert 来修改,就会多了 1 : 1 的修改操作。
调整分片策略
tableIncStepPerVnode 50minTablesPerVnode 50写入内存 blocks 很重要
未来规划
👇 点击阅读原文,了解体验 TDengine!
最后修改时间:2022-03-08 09:25:57
文章转载自TDengine,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




