为了构建更为残缺的物联网大数据处理生态,反对简略高效地从其余时序数据库迁徙到 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 迁徙。
🌟点击链接,摸索 taosAdaptor!