taosAdapter正式发布:支持从OpenTSDB向TDengine无缝迁移

为了构建更为完整的物联网大数据处理生态,支持简单高效地从其他时序数据库迁移到TDengine,我们开发了taosAdapter

TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码包括集群功能全部开源。自TDengine于2019年7月宣布开源以来,在GitHub上已经已经获得非常积极的反馈,有17,300多人给了star,4,100多人fork了代码。越来越多的用户开始采用TDengine。

taosAdapter是一个新的独立程序,可以包含在TDengine 2.3.0.0及以上版本中。taosAdapter的核心出发点是解决用户的痛点,降低迁移成本。

在物联网和运维监控等领域,有些用户还在使用传统解决方案或者比较老的产品解决时序数据处理问题,比如OpenTSDB。OpenTSDB也是一款开源的分布式时序数据库,它没有自己的存储引擎,相关功能完全基于HBase。因为产生时间较早,所以很多运维监控项目选择了该系统。

顺丰科技为例,他们采用了 OpenTSDB+HBase 作为大数据监控平台全量监控数据的存储方案。但是随着该平台接入的数据量越来越大,他们遇到了很多痛点,像系统依赖多、使用成本高和性能不如意等。

具体而言:

  • 依赖多,稳定性较差:大数据监控平台是底层的基础设施,在数据存储方面又要依赖 Kafka、Spark和HBase等大数据组件。这样数据处理链路就会很长,而数据链路越长,要保证系统的可靠性,挑战也就越大。如果监控系统本身出现问题,也就无从基于它来发现和定位业务系统的问题了。
  • 使用成本高:监控数据的写入量非常大,而且为了追溯历史问题,他们需要将全量监控数据保存半年以上。数据存储成本居高不下。
  • 性能不能满足需求:OpenTSDB作为全量监控数据存储方案,在写入方面性能基本满足需求,但是在日常大跨度和高频次查询方面已无法满足要求。

为了解决这些痛点,当时顺丰科技的工程师们认为有必要对全量监控数据存储方案进行升级。他们调研了多款时序数据库产品,最终决定选择 TDengine。之后他们基于TDengine对系统进行了改造。改造完成后,TDengine集群轻松扛住了全量监控数据写入,目前运行稳定。

这次改造带来的效果提升非常亮眼:服务端物理机由21台降至3台,每日所需存储空间同等条件下仅为OpenTSDB+HBase的约 1/10,大大降低了硬件成本。在查询性能方面,在使用预计算函数情况下,查询p99都在0.7秒以内,已经能够满足日常绝大部分查询需求;在做大跨度(6 个月)非预计算查询情况下,首次查询耗时在 10 秒左右,后续类似查询耗时会有大幅下降(2-3s)。

睿信物联网平台也遇到了类似问题,他们之前采用OpenTSDB存储时序数据,功能上是能够满足需求的;但是由于OpenTSDB架构复杂,体量过重,给开发测试、安装部署以及运维管理等工作带来了不小的麻烦,随着业务规模的发展,问题愈发严重。同样在经过调研之后,他们也选择了TDengine。在升级改造的过程中,他们需要保留历史数据,所以需要将历史数据从OpenTSDB迁移到TDengine。为此他们还专门开发了一个数据迁移工具,并进行了详尽的测试。

用户的需求就是产品演进的动力。TDengine的研发团队开始思考这个问题:既然很多用户都有这种迁移需求,那是不是可以官方给出一个统一的解决方案呢?

taosAdapter就是我们的答案。taosAdapter主要有以下功能:

  • RESTful 接口
  • 兼容InfluxDB v1 write 接口
  • 兼容OpenTSDB JSON 和 Telnet 格式写入
  • 无缝连接Telegraf、collectd、StatsD、Icinga、TCollector

它能够兼容OpenTSDB的Telnet/JSON写入协议,对于运维监控类业务,用户可以将collectd和StatsD收集的数据通过taosAdapter直接推送到TDengine。在数据能够正常写入TDengine后,可以调整适配Grafana,将写入TDengine的数据以可视化方式呈现出来。TDengine也为Grafana提供了连接插件。如果要迁移历史数据,涛思数据还开发了数据同步工具DataX的插件,能够帮助用户将数据自动写入到TDengine中。用户无需修改任何一行代码,只需要改几个配置,即可无缝迁移。

下一步,taosAdapter也将继续完善,支持从更多平台向TDengine迁移。


点击链接,探索taosAdapter

你可能感兴趣的:(tdengine后端数据库)