- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
TDengine:专为物联网而生的大数据平台
通用大数据方案的挑战:低效、复杂、高成本,而物联网、工业4.0数据特征:时序空间数据,其典型特征包括:
- 所有采集的数据都是时序的
- 数据都是结构化的
- 一个采集点的数据源是唯一的
- 数据很少有更新或删除操作
- 数据一般是按到期日期来删除的
- 数据以写操作为主,读操作为辅
- 数据流量平稳,可以较为准确的计算
- 数据都有统计、聚合等实时计算操作
- 数据一定是指定时间段和指定区域查找的
- 数据量巨大,一天的数据量就超过100亿条
TDengine提供的主要功能
- 实时数据库,历史数据库,操作合一透明
- 缓存,所有设备最新记录实时返回
- 流式计算,对一个或多个数据流实时聚合计算
- 数据订阅,最新的数据可实时推送到应用
TDengine定位于:物联网数据的全栈解决方案
展开查看详情
1 .TDengine © TAOS Data, Inc. All rights reserved. 专 为物联网而生的大数据平台
2 .大数据时代 数据采集 后被源源不断的发 往云端 © TAOS Data, Inc. All rights reserved.
3 .4 通常将开源的 Kafka, Redis, Hbase , MongoDB, Cassandra, ES, Hadoop, Spark , Zookeeper 等大数据软件拼装起来,利用集群来处理海量数据。 开发效率低 因牵涉到多种系统,每种系统有自己的开发语言和工具,开发精力花在了系统联调上,而且数据的一致性难以保证 运维复杂 每个系统都有自己的运维后台,带来更高的运维代价,出问题后难以跟踪解决,系统的不稳定性大幅上升 运行效率差 非结构化数据技术来处理结构化数据,整体性能不够,系统资源消耗大。因为多套系统,数据需要在各系统之间传输,造成额外的运行代价 应用推向市场慢 集成复杂,得不到专业服务,项目实施周期长,导致人力攀升,利润缩水 通用大数据方案的挑战:低效、复杂、高成本
4 .所有采集的数据都是时序的 数据都是结构化的 一个采集点的数据 源是唯一的 数据很少有更新或删除操作 数据一般是按到期日期来删除的 物联网、工业 4.0 数据特征:时序空间数据 采集的数据量巨大,但有典型特征 : 数据以写操作为主,读操作为辅 数据流量平稳,可以较为准确的计算 数据都有统计、聚合等实时计算操作 数据一定是指定时间段和指定区域查找的 数据量巨大,一天的数据量就超过 100 亿条 1 2 3 4 6 7 8 9 © TAOS Data, Inc. All rights reserved. 5 10
5 .TDengine 应运而生 © TAOS Data, Inc. All rights reserved.
6 .TDengine 提供的 主要 功能 © TAOS Data, Inc. All rights reserved. 实时数据库 , 历史数据库 , 操作合一透明 缓存 , 所有设备最新记录实时返回 流式计算 , 对一个或多个数据流实时聚合计算 数据订阅 , 最新的数据可实时推送到应用 物联网数据的全栈解决方案
7 .© TAOS Data, Inc. All rights reserved. TDengine 生态图 Shell: Command Line Interface Visualization Tool Grafana Time-series Data Processing Engine TDengine Analytics, ML Applications Python/Matlab/R Java/C/C++/Restful IoT Application Telegraf Kafka OPC Data Hub MQTT Server Web Based Management Tool Clustered
8 .9 定义了创新的时序数据存储结构,通过采用无锁设计和多核技术,TDengine 让数据插入和 读出 的速度比现有通用数据库高了 10倍 以上。 单核一秒就可处理 2 万以上插入请求 , 插入数百万数据点 , 可从硬盘读出一千万以上数据点 。 数据都有预聚合处理 , 多表聚合查询保证只扫描一次数据文件 , 查询速度数量级的提升 。 8 核服务器 , 100 亿条记录的平均值计算不到 2 秒 。 完整对比测试报告,请参阅: www.tdengine.com 10 倍 以上的性能提升 TDengine 的产品竞争力
9 .10 由于超强性能,计算资源不到通用大数据方案的 1/5 ;通过列式存储和先进的压缩算法,存储空间不到通用数据库的 1/10 。 不用再集成 Kafka, Redis, Spark, HBase 等系列软件,系统架构大幅简化,产品研发成本大幅下降 。 零管理 , 不用分库分表 、 不分历史库 、 实时库 , 数据实时备份 , 运维成本大幅下降 。 总拥有成本 大幅下降 TDengine 的产品竞争力 完整对比测试报告,请参阅: www.tdengine.com
10 .11 零 学习成本 安装包仅仅 1.5M ,不依赖任何其他软件。 从下载 、 安装到成功运行几秒搞定 使用 标准的 SQL 语法 ,并支持 C/C++, JAVA, GO, Python, RESTful 接口,应用 API 与 MySQL 高度相似,让学习成本几乎为零 无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴或多个设备上进行聚合。临时查询可通过 Shell/Python/R/ Matlab 随时进行 与第三方工具 Telegraf , Grafana, Matlab , R 等无缝链接 create database demo; use demo; create table t1( ts timestamp, degree float); insert into t1 values(now, 28.5); insert into t1 values(now, 29.0); select * from t1; select avg (degree), count( * ) from t1; TDengine 的产品竞争力
11 .TDengine 应用领域 上网记录、通话记录 交易记录 、 卡口数据 智能电表、 水表 、 气表 电网 、 管道 、 智慧城市 服务器 / 应用监测 用户访问日志、广告点击日志 火车 / 汽车 / 出租 / 飞机 自行车的实时监测 电梯 、 锅炉 、 机床 机械设备 实时监测 © TAOS Data, Inc. All rights reserved. 天气、空气、水文 地质环境监测
12 .© TAOS Data, Inc. All rights reserved. TDengine 技术介绍
13 .C/C++ Java 、 Python Client 接口 REST API Client 接口 SPARK Hadoop 接口 Meter 数据采集点 DBA Tool 引擎管理工具 Meter 数据采集点 TDengine Cluster TDengine 对外接口 © TAOS Data, Inc. All rights reserved.
14 .TDengine 系统结构 © TAOS Data, Inc. All rights reserved. V0 V1 V3 dnode 7 V0 V1 V3 M0 V0 V1 V3 V2 V0 V1 V3 V2 dnode 0 V0 V1 V3 V2 dnode1 dnode 2 dnode 3 V0 V1 V2 dnode 4 V0 V1 M1 V2 dnode 5 V0 V2 V3 V1 dnode 6 M2 V3
15 .使用 KV 或关系型 DB , 在多个数据采集点存在的情况下 难以保证一个采集点的数据在内存或硬盘上的连续性 TDengine , 一个采集点的数据 在一个块里是连续存放的,块的大小可配置 采取 Block Range Index, 可快速定位要查找的数据所处的块 0 1 2 3 4 5 0 1 2 3 4 5 数据模型 : 一台设备一张表 © TAOS Data, Inc. All rights reserved.
16 .· ① ⑤ Write App ③ ④ ② memory disk Commit log Vnode FILE FILE Peer Vnode Flush TDengine 数据写入流程 © TAOS Data, Inc. All rights reserved.
17 .TDengine 数据 压缩 © TAOS Data, Inc. All rights reserved. 采取列式存储 , 便于压缩 不同数据类型采用不同的压缩算法,包括 delta-delta 编码、 simple 8B 方法、 zig-zag 编码、 LZ4 等算法 二阶段压缩 : 压缩的基础上 , 用通用压缩算法进行再压缩
18 .TDengine 单个采集点数据插入、查询示例 © TAOS Data, Inc. All rights reserved. 与传统关系型数据库一样,采用 SQL 语法,应用需先创建库,然后建表,就可以插入、查询 create database demo; use demo; create table t1 ( ts timestamp, degree float); insert into t1 values(now, 28.5); select * from t1; 上述 SQL 为一个温度传感器创建一张表,并插入一条记录、然后查询
19 .TDengine 超级表 :多个采集点的数据聚合 © TAOS Data, Inc. All rights reserved. STable ( 超级表 )是表的集合,包含多张表,而且每张表的 schema 是一样的。同一类型的采集设备可以是一个 STable ,除定义 Schema 外 , 还可定义多个标签。标签定义表的静态属性,如设备型号、颜色等。具体创建表时,指定使用哪个 STable (采集点的类型),并指定标签值。 应用可以象查询表一样查询 STable , 但可以通过标签过滤条件查询部分或全部数据采集点的记录,并且可以做各种聚合、计算等,方便支持复杂查询,应对业务需求。 实际场景中,经常需要将多个采集点数据进行聚合处理,比如所有温度传感器采集的温度的平均值。因为一个传感器就是一张表,这样需要将多张表聚合。为减少应用的复杂性, TDengine 引入 STable 概念。 每个表(采集点)都有对应一行的标签数据,保存在 Meta 节点,而且存放在内存并建有索引。标签数据可以任意增加、删除、修改。标签数据与采集数据完全分离,大大节省存储空间,并提高访问效率。而且对于已经采集的历史数据,事后可以打上新的标签。
20 .TDengine 超级表 实例 © TAOS Data, Inc. All rights reserved. create table thermometer ( ts timestamp, degree float ) tags ( loc binary(20), type int ) ; 为温度传感器建立一个 STable , 有两个标签:位置和类型 create table t1 using thermometer tags (‘ beijing ’, 1); create table t2 using thermometer tags (‘ beijing ’, 2); create table t3 using thermometer tags (‘ tianjin ’, 1); create table t4 using thermometer tags (‘ tianjin ’, 2); create table t5 using thermometer tags (‘shanghai’,1); 用 STable 创建 4 张表 , 对应 4 个温度传感器,地理位置标签为北京、天津、上海等 select max(degree), min(degree) from thermometer where loc =‘ beijing ’ or loc =‘ tianjin ’; 查询北京和天津所有温度传感器记录的最高值和最小值
21 .TDengine 聚合计算流程 © TAOS Data, Inc. All rights reserved. Data Node 0 Data Node 1 Meta Node Driver Data Node ······ App ① ⑥ 4 -1 ② ③ 5 -1 4 -0 5 -0 5 -2 4 -2
22 .TDengine 时间轴上的数据聚合 © TAOS Data, Inc. All rights reserved. 实际场景中,经常需要将一段时间的数据进行聚合,比如 downsampling , 采样频率为一秒一次,但最终只记录一分钟的平均值。 TDengine 引入关键词 interval, 以进行时间轴上的聚合操作。时间轴的聚合既可以针对单独一张表,也可以针对符合标签过滤条件的一组表进行。 select avg (degree) from t1 interval (5m); 查询温度传感器 t1 记录的温度每五分钟的平均值 select avg (degree) from thermometer where loc =‘ beijing ’ interval (5m); 查询北京所有温度传感器记录的温度每五分钟的平均值
23 .TDengine 实时 Stream 计算 © TAOS Data, Inc. All rights reserved. 目前支持 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); 每隔一分钟计算北京刚刚过去的五分钟的温度平均值 create table d1 as select avg (degree) from thermometer where loc =‘ beijing ’ interval (5m) sliding (1m); 每分钟计算一次北京刚过去的 5 分钟的温度平均值,并写入新的表 d1
24 .运维门槛大幅降低,几乎为 零 无需分库、分表 无需分实时库、历史库 扩容,新服务器安装好软件,配置上现有集群的 IP 地址,立即工作,负载自动均衡 数据库备份、恢复 完全自动 IDC 机房数据迁移,只要新机房的服务器上的虚拟节点被加入到现有的虚拟节点组,数据立即同步到新机房,简单 零管理:最大程度的减少运维工作 © TAOS Data, Inc. All rights reserved.
25 .陶建辉 (Jeff Tao) jhtao@taosdata.com Weibo : 陶建辉 -Jeff © TAOS Data, Inc. All rights reserved.