直播整理 | TDengine 技术内幕分享:兼容 OpenTSDB
整理 | 尔悦
嘉宾 | 廖浩均
小 T 导读:近年来,随着各种新兴技术的发展,物联网、工业互联网等行业获得了快速发展,由此产生的时序数据量也越来越庞大,通用大数据方案越来越难以为继,各种时序数据库产品应运而生,迁移也成为企业面临的重难点操作之一。
相比于 TDengine,OpenTSDB 算是入场更早一些的“玩家”,基于 Hbase 的产品模式有利也有弊:为有 Hbase 基础服务的企业降低了门槛的同时,过度依赖 Hbase 也为性能、压缩效果加设了一个瓶颈。随着企业业务规模的不断扩大,监控系统的部署成本和运行效率都会呈现增长的态势,随着时间的推移,OpenTSDB 的缺陷所带来的负面效应将完全超越正面效果,顺丰科技的业务案例便印证了这一点。
此前,顺丰科技使用 OpenTSDB 作为全量监控数据存储方案,不仅运维和使用成本很高,性能上也越来越难以满足需求——日常大跨度和高频次查询已经无法满足当前业务发展的需求,查询返回结果甚至需要十几秒。随着用户量的增加,支持较低 QPS 的 OpenTSDB 非常容易崩溃,一旦崩溃将导致整个服务都变为不可用状态。随后在调研过市面的时序数据库产品后,顺丰科技便决定向 TDengine 进行迁移。
为了帮助和顺丰科技一样有迁移需求的企业,我们举办了 TDengine 技术公开课,本文基于涛思数据联合创始人廖浩均主讲的《TDengine 技术内幕分享——兼容 OpenTSDB》整理,从具体的操作层面为大家答疑解惑。
一、从 OpenTSDB 迁移到 TDengine 的注意事项
在做出迁移决定之前,一些同学可能比较关注的是 TDengine 对 OpenTSDB 的兼容度如何?这个问题要从两个维度来看,一是写入协议的全兼容,二是查询功能的全覆盖。前者来看,你无需改变任何一行代码就可以将数据完全写入到 TDengine 之中,非常简单方便。后者的话,我们提供了 OpenTSDB 查询功能的完全覆盖,但是有两点需要注意,一是不提供 OpenTSDB 的查询语法支持,二是不提供等效元数据查询支持。
之所以不提供 OpenTSDB 的语法支持,原因总结起来主要在于三点:
首先,围绕上图 OpenTSDB 的一个查询表达式来看,整体语义相对比较复杂,且查询语法表意能力弱,无法使用其映射出完整的查询能力。同时这套语法规则也不太符合使用 SQL 的习惯,无法满足一些非常复杂的应用查询,比如对于下方的 SQL 语句的查询:这是一个 from 词句的非相关查询,通过 Json 这种方式是没有办法表达出来的。
SELECT id, SUM(avg_conn)
FROM
(
SELECT AVG(connection) as avg_conn, id
FROM t1 INTERVAL(10s)
GROUP BY id
)
GROUP BY id
相关文章