陶建辉 专为物联网优化设计的大数据平台

文字内容
1. ® TDengine 专为物联网而生的大数据平台 © TAOS Data, Inc. All rights reserved.
4. 大数据时代 数据采集后被源源不断的发往云端
5. 5 通用大数据方案的挑战:低效、复杂、高成本 通常将开源的Kafka, Redis, Hbase, MongoDB, Cassandra, ES, Hadoop, Spark,Zookeeper等大 数据软件拼装起来,利用集群来处理海量数据。 开发效率低 因牵涉到多种系统,每种系统有自己 的开发语言和工具,开发精力花在了 系统联调上,而且数据的一致性难以 保证 运行效率差 非结构化数据技术来处理结构化数据, 整体性能不够,系统资源消耗大。因为 多套系统,数据需要在各系统之间传输, 造成额外的运行代价 运维复杂 每个系统都有自己的运维后台,带 来更高的运维代价,出问题后难以 跟踪解决,系统的不稳定性大幅上 升 应用推向市场慢 集成复杂,得不到专业服务,项目 实施周期长,导致人力攀升,利润 缩水
6. 物联网大数据特点 1 所有采集的数据都是时序的 6 数据以写操作为主,读操作为辅 2 数据都是结构化的 7 数据流量平稳,可以较为准确的计算 3 一个采集点的数据源是唯一的 8 数据都有统计、聚合等实时计算操作 4 数据很少有更新或删除操作 9 数据一定是指定时间段和指定区域查找的 5 数据一般是按到期日期来删除的 10 数据量巨大,一天的数据量就超过100亿条
7. TDengine 应运而生
8. TDengine 提供的功能 消息队列 缓存 数据库 流式计算 订阅 完整的物联网大数据处理平台 使用TDengine, 无需再集成Kafka, Redis, Spark等大数据软件
9. TDengine 生态图 Telegraf Kafka OPC Data Hub MQTT Server Grafana TDengine Visualization Tool Python/Matlab/R Analytics, ML Applications Time-series Data Processing Engine IoT Application Java/C/C++/Restful Clustered Shell: Command Line Interface Web Based Management Tool
10. TDengine 的产品竞争力 10倍以上的性能提升 u 定义了创新的时序数据存储结构,通过采用无锁 设计和多核技术,TDengine 让数据插入和读出 的速度比现有通用数据库高了10倍以上。 u 单核一秒就可处理2万以上插入请求,插入数百 万数据点,可从硬盘读出一千万以上数据点。 u 数据都有预聚合处理,多表聚合查询保证只扫描 一次数据文件,查询速度数量级的提升。8核服 务器,100亿条记录的平均值计算不到2秒。 完整对比测试报告,请参阅:www.tdengine.com 1 0
11. TDengine 的产品竞争力 总拥有成本大幅下降 u 由于超强性能,计算资源不到通用大数据方案的 1/5;通过列式存储和先进的压缩算法,存储空 间不到通用数据库的1/10。 u 不用再集成Kafka, Redis, Spark, HBase等系列软 件,系统架构大幅简化,产品研发成本大幅下降。 u 零管理,不用分库分表、不分历史库、实时库, 数据实时备份,运维成本大幅下降。 完整对比测试报告,请参阅:www.tdengine.com 1 1
12. 1 2 TDengine 的产品竞争力 零学习成本 create database demo; u 安装包仅仅1.5M,不依赖任何其他软件。从下载、安 装到成功运行几秒搞定 u 使用标准的SQL语法,并支持C/C++, JAVA, GO, use demo; create table t1(ts timestamp, degree float); insert into t1 values(now, 28.5); Python, RESTful接口,应用API与MySQL高度相似, insert into t1 values(now, 29.0); 让学习成本几乎为零 select * from t1; u 无论是十年前还是一秒钟前的数据,指定时间范围即 可查询。数据可在时间轴或多个设备上进行聚合。临 时查询可通过Shell/Python/R/Matlab随时进行 u 与第三方工具Telegraf, Grafana, Matlab, R等无缝链接 select avg(degree), count(*) from t1;
13. 创新的存储设计:一个设备一张表 使用KV或关系型DB,在多个数据采集点存在的情况下 难以保证一个采集点的数据在内存或硬盘上的连续性 0 1 2 3 4 5 TDengine,一个采集点的数据在一个块里是连续存放的,块的大小可配置 采取Block Range Index, 可快速定位要查找的数据所处的块
14. TDengine 数据写入流程 Peer Vnode App ③ ① ⑤ ④ Write memory disk ② · Flush FILE Commit log FILE Vnode
15. TDengine 超级表:多表聚合 为温度传感器建立一个STable, 有两个标签:位置和类型 create table thermometer (ts timestamp, degree float) tags(loc binary(20), type int); 用STable创建4张表, 对应4个温度传感器,地理位置标签为北京、天津、上海等 create create create create create table table table table table t1 t2 t3 t4 t5 using using using using using thermometer thermometer thermometer thermometer thermometer tags(‘beijing’, 1); tags(‘beijing’, 2); tags(‘tianjin’, 1); tags(‘tianjin’, 2); tags(‘shanghai’,1); 查询北京和天津所有温度传感器记录的最高值和最小值 select max(degree), min(degree) from thermometer where loc=‘beijing’ or loc=‘tianjin’;
16. TDengine 时间轴上的数据聚合 实际场景中,经常需要将一段时间的数据进行聚合,比如downsampling, 采样频率为一秒 一次,但最终只记录一分钟的平均值。TDengine引入关键词interval, 以进行时间轴上的聚 合操作。时间轴的聚合既可以针对单独一张表,也可以针对符合标签过滤条件的一组表进行。 查询温度传感器t1记录的温度每五分钟的平均值 select avg(degree) from t1 interval(5m); 查询北京所有温度传感器记录的温度每五分钟的平均值 select avg(degree) from thermometer where loc=‘beijing’ interval(5m);
17. TDengine 实时Stream计算 目前支持Avg, Max, Min, Percentile, Sum, Count, Dev, First, Last, Diff, Scale, WAvg, Spread等操作。计算是针对时间段,同时可针对一张表或符合过滤条件的一组表进行聚合。 实时计算的衍生数据可以实时写入新的表,方便后续的查询操作。衍生数据还可以与其他 原始数据或其他衍生数据进行各种聚合计算,生成新的数据。 每隔一分钟计算北京刚刚过去的五分钟的温度平均值 select avg(degree) from thermometer where loc=‘beijing’ interval(5m) sliding(1m); 每分钟计算一次北京刚过去的5分钟的温度平均值,并写入新的表d1 create table d1 as select avg(degree) from thermometer where loc=‘beijing’ interval(5m) sliding(1m);
18. TDengine 应用领域 服务器/应用监测 用户访问日志、广告点击日志 智能电表、水表、气表 电网、管道、智慧城市 火车/汽车/出租/飞机 自行车的实时监测 上网记录、通话记录 交易记录、卡口数据 电梯、锅炉、机床 机械设备实时监测 天气、空气、水文 地质环境监测
19. TDengine 开源! 核心代码全部开源! 19
22. 陶建辉 (Jeff Tao) jhtao@taosdata.com Wechat: kuailedaddy Tel: 13701014596 weibo: 陶建辉-Jeff