假设在一个国际会议现场,一位演讲嘉宾对来自世界各地的与会者演讲,如果没有同声翻译,这会就没法开了。同样地,在大数据处理方面,无论我们是Hadoop系列的HDFS、MapReduce、HBase和Hive,还是实时流处理Flink,如果需要使用不同的开发工具、客户端、语言,这会带来陡峭的学习曲线、不菲的学习成本和运维成本。今天简单研究了TDengine这个大数据平台,发现其中的设计思想和理念非常好:少做事、更懂场景。
TDengine更懂物联网场景。和其它大数据平台不一样,TDengine对物联网场景下的数据进行了深入分析,发现物联网数据其它数据源有着很大的不同。
TDengine把物联网数据投射到了不同维度:
正是因为少做事,对物联网数据了解更深,以上不同维度信息带来了很好的信息增益,很大程度上降低了信息熵,消除了不确定性。在这些信息基础之上,就可以设计出创新的、原创的时序处理引擎、压缩算法、存储结构。
从表现来看,单核每秒可以处理2万次请求,插入数百万个数据点,瞬间读出一千万以上数据点。在其官网的测试报告中,TDengine在写入速度和查询速度方面的表现远远好于其它时序数据、关系数据,包括InfluxDB, OpenTSDB, Cassandra, MySQL, ClickHouse。
如何用TDengine呢?
物联网数据的处理大致包括以下流程和环节:
TDengine在数据传输、存储、计算、查询方面值得尝试。在数据传输方面,TDengine集成了消息队列功能,可替代传统的Kafka;在数据存储方面,包括了时序数据库和缓存,可替代其它时序数据库和Redis缓存;在计算方面,融合了流式计算,可替代Spark;在查询方面,无论是十年前还是一秒钟前的指定时间范围内的数据,都可以做到快速响应。
所有操作都在一个客户端软件上进行。可通过API方式开发。
截止到目前为止,在其github主页上已经积累了超过4000个Star,和1000个Fork,相当厉害。
另外,TDengine的源代码是开源,但有其收费产品。收费产品是TDengine企业版和TDengine云服务版。免费产品是TDengine社区版。