时序数据库为万物互联打下坚实的基石
本文分享自华为云社区《GaussDB(DWS)带你走近IoT时代-时序数据库为万物互联打下坚实的数仓基石》,作者: AndyCao。
概述随着 5G 技术的不断成熟,物联网技术得到了快速发展,万物互联的场景在我们身边也越来越触手可及。我们身边的电子设备变得越来越多,手机、电脑、智能手表、全屋智能、自动驾驶汽车等等,承载的信息量成倍增加,数以亿计的信息昼夜不停地描绘着这个世界。
物联网时代,每个物体每时每刻都在产生各种维度的数据信息,这些信息尽可能全面的刻画我们所生活的世界,这些采集到的数据信息,帮助我们更好的生活,不断改变我们的生活方式。例如当下非常火热的自动驾驶,需要在汽车上配备各种传感器,用于实时采集运行时汽车的各项监控数据,采集的维度包括:坐标、速度、方向、温度、功率等等。每辆汽车上的传感器每天采集数据的数量可能达到 TB 级。
这些采集到的数据和时间强相关,采样时间间隔固定,描述了物体在历史时刻中测量数据的变化,我们将这种类型的数据统称为时间序列(Time Series)数据。我们将这些时序数据存储起来,这些海量数据不仅帮助我们了解物体的实时状态,通过多个维度的分析,更能够帮助数据使用者更好的指定策略,分析目标对象的趋势和规律等,甚至能够帮助我们预测不确定的未来。
时序数据的特征
下图是一个典型的风力发电机采集时序数据示意图。时序数据由两个维度坐标来表示,横坐标表示时间轴,随着时间的不断流逝,数据源源不断的采集。纵坐标由两种元素构成,分别是数据源和测量值。数据源是由一些特定的标签(tag)组成,且唯一表示。下面是时序数据集的一些基本概念:
标签(tag):描述数据源特征,通常不随时间变化,例如图中的生产厂商、风场地址、型号和 ID。
度量(metric):代表同一类时序数据的集合,类似关系型数据库中的表的概念。
时间戳(timestamp):表示数据产生的时间点,可以由系统自动生成。
测量值(field):表示数据源的测量维度的具体数值,随时间变化。
时间线(timeseries):数据源的某个指标随时间变化形成一条时间线,通过 tag + field + timestamp 组合确定一条时间线。图中每条虚线都是一条时间线。
图中的风力发电机的生产厂商、风场位置、型号和 ID 唯一确定一台发电机。图中主要采集功率和风速这两种维度数据。沿着时间线不断延伸,可以采集到每个时间点对应的功率和风速。因此我们可以通过 tag 标签 + 采样指标 + 时间点这三个组合来唯一确定一个时间点的时序数据。
通过上述的风力发电机的采样模型我们对时序数据有一定的初步认识。那么相比较于传统数据库的应用场景,时序场景下的数据存储带来了哪些挑战呢?时序数据在实际采集过程中存在以下技术要求和特点:
海量数据写入能力
例如在自动驾驶汽车监测的数据每秒只采集 5 种测量数据(速度、温度、发动机功率、方向、坐标),1000W 量汽车每秒中将会有 5000W 的 TPS。
写入平稳、持续
传统业务数据通常和应用的访问量成正比,而访问量通常存在波峰波。不同于传统业务场景,时序数据的产生通常以一个固定的时间频率进行采集,不会受其他因素的制约,其数据生成的速度是相对比较平稳。
写多读少
时序数据 90%左右的操作都是写操作。主要与其应用场景相关,例如在监控场景下,虽然每天需要存储很多数据,但是真正去读取的数据通常比较少,通常只会关注几个特定关键指标在一定时间范围内的数据。
高压缩率
高压缩率能够带来两方面的收益。一方面能够节省大量的硬件存储成本,节省硬盘的开销。另一方面压缩后的数据可以更容易存储到内存中,显著提高查询的性能。
实时写入最近生成的数据,无更新
时序数据的写入是实时的,采集的数据是反应物体客观信息,数据是随着时间推进不断产生,不存在旧数据更新场景。
最近的数据读取概率高
最近时间的数据具有的价值越高,因此最近的数据被读取的概率越高。例如在监控场景下,最近几个小时或者几天的监控数据最可能被访问,而一个季度或者一年前的数据极少访问。
多维度分析
时序数据来自不同个体,这些个体可能拥有不同的属性。在监控场景下,我们对某个集群上每台机器上的网络流量监控,可以对集群下的某台机器的网络流量查询,也可以对集群总的网络流量查询。
时序数据库应用场景
典型时序数据库主要服务两类业务场景,应用性能监控(Application Performance Management, APM)和物联网(Internet of Things, IoT),使用场景涵盖以下多种场景:
商业零售:电商系统订单交易金额,支付金额数据,尚品库存,物流数据;
金融交易:股票交易系统持续记录股票价格,交易量等;
社会生活:智能电表会实时记录每个小时的用电量数据等;
工业领域:工业机器数据例如风力发电机,获取实时转速、风速数据、发电量数据等;
系统监控:IT 基础设施的负载和资源使用率,DevOps 监控数据、移动/Web 应用程序事件流等;
环境监测:自然环境(如温度、空气、水文、风力等)的监测,科学测量结果等;
城市管理:城市交通的监测(车辆、人流、道路等);
自动驾驶:自动驾驶汽车持续收集所处环境中的变化数据等。
总结
在万物互联的时代,时序数据库将会是一个非常具有市场和挑战性的领域。如何帮助用户更好的解决时序场景下遇到的难题,也是华为云服务的宗旨,帮助客户在物联网时代更快更好的适应潮流的发展,发挥出更有力的作用和创造更大的价值。
GaussDB(DWS) IoT 数仓针对时序场景下的各种特点和技术要求,在高性能(全并行架构、实时分析)、高扩展(1024 大集群、逻辑集群)、多模融合、安全可靠(HA、容灾、备份)、智能运维(智能调优,智能调度)等方面,不断进行创新和挑战中前进,为万物互联的美好时代,打下坚实的数据存储基石。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/e7196f24bcfd48900a13bcdc4】。文章转载请联系作者。
评论