|
@@ -0,0 +1,43 @@
|
|
1
|
+> 假设在一个国际会议现场,一位演讲嘉宾对来自世界各地的与会者演讲,如果没有同声翻译,这会就没法开了。同样地,在大数据处理方面,无论我们是Hadoop系列的HDFS、MapReduce、HBase和Hive,还是实时流处理Flink,如果需要使用不同的开发工具、客户端、语言,这会带来陡峭的学习曲线、不菲的学习成本和运维成本。今天简单研究了TDengine这个大数据平台,发现其中的设计思想和理念非常好:少做事、更懂场景。
|
|
2
|
+
|
|
3
|
+TDengine更懂物联网场景。和其它大数据平台不一样,TDengine对物联网场景下的数据进行了深入分析,发现物联网数据其它数据源有着很大的不同。
|
|
4
|
+
|
|
5
|
+TDengine把物联网数据投射到了不同维度:
|
|
6
|
+
|
|
7
|
+- **数据源**:数据源唯一,来自传感器
|
|
8
|
+- **时间**: 物联网数据一定自带时间戳
|
|
9
|
+- **结构**:物联网数据数据是结构化的,而很多互联网数据是非结构化的
|
|
10
|
+- **操作**:写多读少,极少更新、删除
|
|
11
|
+- **用户希望看到的结果**:是趋势不是某一时间点值
|
|
12
|
+- **保存**:数据保存有期限
|
|
13
|
+- **查询**:基于时间段和地理区域查询
|
|
14
|
+- **计算**:需要实时计算
|
|
15
|
+- **数据量**:稳定可预测
|
|
16
|
+
|
|
17
|
+正是因为少做事,对物联网数据了解更深,以上不同维度信息带来了很好的信息增益,很大程度上降低了信息熵,消除了不确定性。在这些信息基础之上,就可以设计出创新的、原创的时序处理引擎、压缩算法、存储结构。
|
|
18
|
+
|
|
19
|
+从表现来看,单核每秒可以处理2万次请求,插入数百万个数据点,瞬间读出一千万以上数据点。在其官网的测试报告中,TDengine在写入速度和查询速度方面的表现远远好于其它时序数据、关系数据,包括InfluxDB, OpenTSDB, Cassandra, MySQL, ClickHouse。
|
|
20
|
+
|
|
21
|
+**如何用TDengine呢**?
|
|
22
|
+
|
|
23
|
+物联网数据的处理大致包括以下流程和环节:
|
|
24
|
+
|
|
25
|
+- 数据采集
|
|
26
|
+- 数据清洗
|
|
27
|
+- 数据传输
|
|
28
|
+- 数据存储
|
|
29
|
+- 数据计算:批量计算和实时计算
|
|
30
|
+- 机器学习
|
|
31
|
+- 数据查询
|
|
32
|
+- 数据可视化
|
|
33
|
+
|
|
34
|
+**TDengine在数据传输、存储、计算、查询方面值得尝试**。在数据传输方面,TDengine集成了消息队列功能,可替代传统的Kafka;在数据存储方面,包括了时序数据库和缓存,可替代其它时序数据库和Redis缓存;在计算方面,融合了流式计算,可替代Spark;在查询方面,无论是十年前还是一秒钟前的指定时间范围内的数据,都可以做到快速响应。
|
|
35
|
+
|
|
36
|
+所有操作都在一个客户端软件上进行。可通过API方式开发。
|
|
37
|
+
|
|
38
|
+截止到目前为止,在其github主页上已经积累了超过4000个Star,和1000个Fork,相当厉害。
|
|
39
|
+
|
|
40
|
+另外,TDengine的源代码是开源,但有其收费产品。收费产品是TDengine企业版和TDengine云服务版。免费产品是TDengine社区版。
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|