IoT数仓简介
物联网时代,无时无刻都在产生海量的设备状态数据和业务消息数据,通过采集这些数据有助于进行设备监控、业务分析预测和故障诊断。
例如,当下非常火热的自动驾驶,需要在汽车上配备各种传感器,用以实时采集运行时汽车的各项监控数据,采集的维度包括:坐标、速度、方向、温度、功率等等。每辆汽车上每天采集的数据量可达到TB级。而这些数据和时间强相关,采样时间间隔固定,包含了物体在历史时刻中测量数据的变化,这种类型的数据统称为时间序列(Time Series)数据。通过这些时序数据不仅能了解物体的实时状态,而且还能从多个维度分析目标对象的趋势和规律等,甚至能够预测不确定的未来。
GaussDB(DWS)的IoT数仓提供自研的时序引擎,提供扩展的时序场景语法,以及分区管理、时序计算、时序生态函数等服务功能,基于时序表提供时序计算能力。
与标准数仓的区别
IoT数仓与标准数仓是GaussDB(DWS)的两种不同类型产品,在使用上也存在一定差异,具体可参考表1进行对比分析。
数仓类型 |
标准数仓 |
IoT数仓 |
||
---|---|---|---|---|
适用场景 |
融合分析业务,一体化OLAP分析场景。主要应用于金融、政企、电商、能源等领域。 |
应用性能监控及物联网IoT等实时分析场景。主要应用于环境监测、自动驾驶、系统监控等行业。 |
||
产品优势 |
性价比高,使用场景广泛。 支持冷热数据分析,存储、计算弹性伸缩,无限算力、无限容量等。 |
高效的时序计算和IoT分析能力。 丰富的时序处理函数,支持实时和历史数据关联,内置时序算子,海量数据写入,高压缩以及多维度分析等能力。并且继承标准数仓的各种优势场景。 |
||
功能特点 |
支持海量数据离线处理和交互查询,数据规模大、复杂数据挖掘具有很好的性能优势。 |
千万时间线,秒级聚合,典型IoT场景下导入和查询较传统引擎提升数倍。 |
||
SQL语法 |
SQL语法兼容性高,语法通用,易于使用。 |
兼容标准数仓语法,新增IoT数仓特有DDL语法。 |
||
GUC参数 |
丰富的GUC参数,根据客户业务场景适配最适合客户的数仓环境。 |
兼容标准数仓GUC参数,新增支持IoT数仓调优等GUC参数。 |
数据特征
时序数据列可以分为三类:
- Tag列:将表征数据源来源或者属性信息的列作为Tag列,该列的数值相对稳定,不随时间变化而变化。
- Field列:将采样的维度作为数据列,因为该列的数据一般随时间变化而变化,存储各个指标的value。
- Time列:表示采样时刻的时间戳。
如图1为典型发电机组数据采样示意图。共有三台发电机组,每个时间点分别采样四种数据:电压、功率、频率和电流相角。随着时间的流逝,每个采样的时间点将采样到的数据源源不断的传输。示意图中每条虚线都可以表示为一条时间线。
如图2所示可以将示意图转化为具体的一张表来存储数据,发电机组的某个指标随时间变化形成一条时间线,通过tag + field + time组合确定一条时间线。
橙色区域的tag列包含发电机、生产厂商、型号、位置、ID,不会随时间的变化而变化;
蓝色区域的field列包含电压、功率、频率、电流相角,这些列是目标采样维度,存储的采样数据会随着时间动态变化;
黄色区域为time列,表示采样的时间点。
技术特点
- 海量数据写入能力
在自动驾驶汽车监测的数据每秒只采集5种测量数据(速度、温度、发动机功率、方向、坐标),1000W辆汽车每秒中将会有5000W的TPS。
- 写入平稳、持续
不同于传统业务场景,时序数据的产生通常以一个固定的时间频率进行采集,不受其他因素的制约,其数据生成的速度是相对平稳。
- 写多读少
与应用场景相关,时序数据90%左右的操作都是写操作。例如在监控场景下每天需要存储很多数据,但是读取的数据比较少,通常只会关注几个特定关键指标在一定时间范围内的数据。
- 高压缩率
高压缩率能够带来两方面的收益。一方面能够节省大量的硬件存储成本,节省硬盘的开销。另一方面压缩后的数据可以更容易存储到内存中,显著提高查询的性能。
- 实时写入新数据
时序数据的写入是实时的,采集的数据反应客观信息,数据是随着时间推进不断产生,不存在旧数据更新场景。
- 数据读取概率高
最近时间的数据具有的价值更高,因此被读取的概率高。例如在监控场景下,最近几个小时或者几天的监控数据最可能被访问,而一个季度或者一年前的数据极少访问。
- 多维分析
时序数据来自不同个体且拥有不同属性。例如在监控场景下,通过对某个集群上每台机器的网络流量监控,可以查询分析某台机器的网络流量,也可以同时查询集群总的网络流量。
应用场景
典型IoT数仓主要服务两类业务场景,应用性能监控(Application Performance Management,APM)和物联网(Internet of Things,IoT),主要体现在以下几个方面:
- 商业零售:电商系统订单交易金额,支付金额数据,商品库存,物流数据;
- 金融交易:股票交易系统持续记录股票价格,交易量等;
- 社会生活:智能电表实时记录每小时的用电量数据等;
- 工业领域:工业机器数据例如风力发电机,获取实时转速、风速数据、发电量数据等;
- 系统监控:IT基础设施的负载和资源使用率,DevOps监控数据、移动/Web应用程序事件流等;
- 环境监测:自然环境(如温度、空气、水文、风力等)的监测,科学测量结果等;
- 城市管理:城市交通的监测(车辆、人流、道路等);
- 自动驾驶:自动驾驶汽车持续收集所处环境中的变化数据等。