有人在知乎上提问:“作为国产开源的时序数据库,TDengine 的哪些优点最吸引你?”。这促使我将自己对一些问题,包括创业本身的思考整理出来,分享给大家,希望能给众多研发同学和创业者带来一些启发。
当我在 2016 年底开始启动 TDengine 这个项目,瞄准时序数据库这个方向时,市场上已经有很多时序数据库,包括 InfluxDB, OpenTSDB, TimeScale, Kdb, Prometheus, RRDTool, Graphite 等。在传统行业里,有实时数据库,比如 PI, iHistorian 等。那如果我再做一个,到底有什么优势?怎么做出差异化,怎么推广它?作为一个创业者,是必须认真思考的。我下面从几个点来分析。
1:分布式
从 2016 年底到现在,大部分时序数据库都不是分布式的,换句话说,它们不支持水平扩展。即便是 InfluxDB,也只有企业版支持集群,开源版是不支持的。而传统实时数据库更是没有一个支持水平扩展,最多是双机热备。但是随着物联网、车联网的高速发展,IT 基础设施规模的增大,数据的采集量越来越大,单机是没有办法解决问题的,底层数据库必须具有水平扩展能力。
很多企业使用的是开源时序数据库的单机版,后续为了应对海量数据的处理,只好自己投入人力物力,在单机版的基础上,开发自己的 Proxy,对数据进行分片处理。对于数据写入,这种方法简单而且有效。但是对于查询,往往牵涉多个节点,那么 Proxy 就要做各种查询的聚合,因此开发的工作量很大。有些公司为了避免麻烦,就选用 O