从开源到云原生,时序数据库 TDengine 六年回顾精彩纷呈

Posted 涛思数据TDengine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从开源到云原生,时序数据库 TDengine 六年回顾精彩纷呈相关的知识,希望对你有一定的参考价值。

回顾 TDengine 六年发展,成长和进步跃然纸上。由小到大,由弱到强,伴随着 TDengine 影响力的逐渐扩大,涛思数据也走出了一条独具特色的创业之路。
2023 年 6 月 6 日,涛思数据旗下时序数据库(Time Series DatabaseTDengine 迎来六周年庆典,并于北京·保利国际广场T2举办了主题为“TDengine 6th Anniversary:Back to The Future”的庆典活动,设置了「TDengine」时序照片亭、「TDengine Database」主题鸡尾酒、寻找 TDengine 等诸多有意思的线下环节。同时,为回馈社区开发者和企业用户的大力支持,TDengine 早在 6 月 1 日便启动了该庆典的线上打卡项目,包括“集 TDengine 庆生卡片有礼”和“TDengine 知多少·答题有礼”两大线上玩法,为参与活动的上千位支持者送出了 TDengine 的众多新颖周边。
面对时序数据库广阔的市场前景,涛思数据在成立之初即获得明势资本与蛮子基金的天使投资,后又获得红杉资本中国基金、经纬中国、GGV纪源资本、指数资本、永辉瑞金等多家知名机构的投资,投资总额达到了近 7000 万美元,深受资本市场青睐。
 
聚焦数据技术创新,随后几年发展间 TDengine 也进行了多个版本的升级迭代,从 1.0 到 2.0 再到 3.0,TDengine 完成了从“云就绪”到云原生的里程碑式演进,正式升级成为一款真正的云原生时序数据库,破解了困扰时序数据库发展的高基数难题,支持 10 亿个设备采集数据、100 个节点,支持存储与计算分离;流式计算和数据订阅功能也有了进一步的升级,成为了名副其实的极简时序数据平台。
 
在人工智能快速火爆的当下,TDengine 也在全面拥抱 AI,为帮助一众传统企业更好地进行数字化转型升级,过去的一年里,TDengine 投入了巨大的人力支持开发 PI System、MQTT、OPC 等各种工业数据接口,支持与各种 BI、AI 工具对接,无需大量资金投入、无决策风险下,开发者不仅可以利用到时序数据库能力,还能与 AI 应用、众多的分析工具、可视化工具集成,同时体验大数据以及 AI 的魅力。
 
除了时序数据库的技术演进,涛思数据还将目光放到了更长远的“云服务”市场上。2022 年 9 月,全托管的时序数据处理云服务平台 TDengine Cloud 正式推出,目前其已经支持 Microsoft Azure、AWS、Google Cloud、阿里云四大公有云平台。除高性能的时序数据库之外,它还具有缓存、订阅和流计算等系统功能,同时提供了便利而又安全的数据分享、基于角色的权限控制、多云数据复制、边云协同、IP 白名单等企业级功能。在时序数据的管理上,利用 TDengine Cloud,物联网、工业互联网、金融、IT 运维监控等领域企业可实现人力成本和运营成本的大幅降低。
 
作为一款开源的时序数据库,TDengine 的开源之旅早在 2019 年便启动了。2019 年 7 月,涛思数据正式宣布将 TDengine 的内核(存储和计算引擎)以及社区版 100% 开源;2020 年 8 月,其又宣布将 TDengine 集群版开源。至此,TDengine 超过 90% 的核心代码全部公开,正是这一举措让初出茅庐的 TDengine 收获了一众开发者的瞩目,短短几年发展间就取得了可圈可点的开源成绩。
 
目前 TDengine 在 GitHub 上的 Star 数已成功突破至 21.4k,并多次登上 GitHub 全球趋势榜第一名,保持着在开源时序数据库领域中最快的 PR 增长速度。借助产品的技术创新和开源的商业创新,TDengine 在市场开拓上也始终保持着领先水平,其全球安装实例数已经达到 266.2k,发展了包括京东云、货拉拉、中节能风电、和利时、陕西煤矿、蔚来能源、同程旅行、亿咖通、58同城、西门子、美的、中通在内的众多行业头部企业客户,并与中天钢铁、中泰证券、一汽解放、华锐技术等一众知名企业达成合作。
 
“六年时间里,TDengine 沉淀了近百万行代码,解决了数千个 BUG,产品生态也一步步在壮大,而 TDengine 所走的每一步路,都是向着一个方向迈出,那就是做‘让用户更好用’的数据库产品。非常自豪的是,随着 TDengine 的不断精进,越来越多的用户和开发者成为了我们的同行者,他们的支持和厚爱也为 TDengine 的前进提供着强大动力。”TDengine 创始人&核心开发陶建辉表示,“人类已经步入 AI 时代,TDengine 也进入了下一个发展阶段,我们要将时序数据平台与 AI 应用无缝对接起来,帮助更多的企业和开发者更好地应对现代数据处理和 AI 时代的种种挑战,让能源、制造、汽车等众多行业迅速而且低成本地享受 AI 带来的红利。”

一篇入门物联网大数据:TDengine时序数据库

目录

一、大数据时代

二、TDengine设计思想

三、CAP理论和TDengine的特性

1、CAP理论

 2、TDengine特性

四、数据模型

1、数据特点

2、超级表和表

3、数据查询

a. 单表查询

b. 多表聚合查询

五、存储模型

1、时序数据

2、标签数据

3、元数据



【本文正在参与“拥抱开源”|涛思数据TDengine有奖征稿】传送门:https://marketing.csdn.net/p/0ada836ca30caa924b9baae0fd33857c

一、大数据时代

大数据,已是技术发展中的重要领域,数据无处不在,支撑着大数据的中间件也不断迭代更新,TDengine成为当中的优势产品,生产应用场景不断扩大,这一篇入门物联网大数据:TDengine时序数据库,从零学习了解大数据时代的解决方案!

二、TDengine设计思想

在生活中,各种IOT的联网设备,比如智能手表、水表、汽车等,每时每刻都产生数据,这样的数据是按时间顺序的。

时间序列的数据一旦产生便是历史不再发生变化。因此,数据写入后不再有删除和修改的操作,因此,与MySQL等数据库相比较,TDengine简化了数据存储的数据结构上,使得一些聚合查询上可以通过预计算得到,更加高效。

TDengine最佳实践说明,为每一个独立产生数据 的IOT设备建立一张独立的表,这样保证了,不同设备之间存在时钟不同步或者服务器网络延时的情况下,同一张表(来自同一个设备)的数据仍然可以保证是顺序写入的。

三、CAP理论和TDengine的特性

1、CAP理论

CAP理论在互联网产品中是必然会应用到的理论,一致性Consistency、可用性Availability、分区容错性Partition tolerance。

一个分布式数据存储系统最多只能同时满足其中两点。因此,分布式系统势必只能在一致性和可用性中权衡做出选择。

一致性:每个读操作都可以得到一个最新写的结果或者明确的错误响应

可用性:每一个读写操作都可以得到一个非错误的响应(不保证最新)。

分区容忍性:无论节点间的网络问题导致了多少消息丢失或者延迟到达,系统可以继续运转。

 2、TDengine特性

TDengine在物联网的场景下以牺牲部分功能支持的代价换来了超过10倍的性能提升。基于顺序表结构的存储,追加写的插入,二分查找的查询,结构化的定长数据,预计算的聚合结果等优化大大提升了时序数据存储的读写性能。

TDengine支持按时间过期的方式删除陈旧的历史数据避免无限量的数据增长。

四、数据模型

1、数据特点

研究发现,物联网、车联网、运维监测类数据还具有很多其他明显的特征:

  1. 时间顺序
  2. 极少更新或删除
  3. 数据量巨大;
  4. 数据高度结构化;
  5. 无需事务处理
  6. 写多读少
  7. 查询分析更关注一段时间的趋势,而不是某个特定时间点的值;
  8. 数据有保留期限
  9. 需要各种统计和实时计算操作;
  10. 流量平稳,可根据设备数量和采集频次预测出来。

 根据这些数据的特征,TDengine采取经过特殊优化的存储和计算设计来处理时序数据,系统处理能力很大提高,而且降低了系统运维的复杂度

2、超级表和表

从上面介绍我们知道,TDengine为一个数据采集点建一个表,而且,这个表第一列必须是时间戳timestamp类型

很明显,表的数量巨大,难以管理,当应用需要做采集点之间的聚合操作,聚合的操作也变得复杂起来。为解决这个问题,TDengine引入超级表(Super Table,简称为STable)的概念。

超级表:同一类型数据采集点的集合。指某一特定类型的数据采集点的集合,同一类型的数据采集点的表结构是完全一样的,而静态属性(也叫标签,包括地点、设备的分组id等)不一样。一个系统有N个不同类型的数据采集点,就需要建立个超级表(Super Table)。

 TDengine架构示意图

主要逻辑单元:物理节点(pnode)、数据节点(dnode)、虚拟节点(vnode)、管理节点(mnode)、虚拟节点组(VGroup)、驱动程序(Taosc)

TDengine架构的详细部分这里暂时不展开,不影响后面的阅读。

3、数据查询

TDengine提供丰富地查询功能,除了常规聚合查询,还提供对时序数据的窗口查询、统计聚合等功能。查询处理功能由客户端、vnode、mnode节点协同完成

a. 单表查询

SQL语句解析和校验工作在客户端完成。解析SQL语句并生成抽象语法树(AST),再进行校验和检查,以及向mnode请求查询中指定表的元数据信息。

然后,根据元数据信息中的End Point,将查询请求序列化后发送到该表所在的dnode。dnode接收识别出指向的vnode,将消息转发到vnode查询执行队列。dnode查询执行队列中的工作线程会等待vnode线程执行完成,再将查询结果返回给客户端

b. 多表聚合查询

 

  1. APP应用将一个查询条件发往系统;
  2. Taosc将超级表的名字发往mnode(管理节点);
  3. mnode将超级表拥有的vnode列表发回taosc;
  4. Taosc将计算的请求跟标签过滤条件发往这些vnode对应的数据节点;
  5. 每个vnode先在内存中找出自己节点里符合的标签过滤条件的表集合,然后扫描存储的时序数据完成聚合计算,将结果返回taosc;
  6. Taosc将多个数据节点返回的结果做最后的聚合,返回给应用

这里涉及到的标签数据、元数据的概念,可以继续看以下内容,对于管理节点、数据节点的概念,属于TDengine结构的具体内容,暂时不展开讨论。

五、存储模型

1、时序数据

存放在vnode,由data、head、last三个文件组成,数据量大。不支持删除操作,update参数为1时才能更新操作。一个采集点一种表,一个时间段的数据是连续的,写入是简单追加操作,这样对单个采集点的插入和查询操作,性能达到最优。

2、标签数据

存放在vnode的meta文件,支持CRUD操作,数据量不大。N张表就有N条记录,可以全内存存储。

3、元数据

存放在mnode,包含系统节点、用户、DB、Table Schema,支持CRUD,数据量不大,可全内存存储,而且客户端有缓存,查询量不大。


这一篇主要是学习大数据内容时,入门TDengine应用的简单总结,整理了一些基本且关键知识。

如果觉得不错欢迎“一键三连”哦,点赞收藏关注,评论提问建议,欢迎交流学习!一起加油进步,我们下篇见! 

【本文正在参与“拥抱开源”|涛思数据TDengine有奖征稿】传送门:https://marketing.csdn.net/p/0ada836ca30caa924b9baae0fd33857c

涛思数据TDengine官方文档https://www.taosdata.com/cn/documentation/

本篇内容首发我的CSDN博客:https://csdn-czh.blog.csdn.net/article/details/119089953

以上是关于从开源到云原生,时序数据库 TDengine 六年回顾精彩纷呈的主要内容,如果未能解决你的问题,请参考以下文章

来自掘金和 InfoQ 的“新年礼物”,时序数据库 TDengine 荣登两大知名技术社区重磅榜单

TDengine的安装使用(超详细)

开源助力云计算十年:从基础设施,到云原生崛起!

开源助力云计算十年:从基础设施,到云原生崛起!

开源助力云计算十年:从基础设施,到云原生崛起!

开源助力云计算十年:从基础设施,到云原生崛起!