什么是时间序列数据?为什么GridDB最适合处理时间序列数据?

时序数据是什么?为什么GridDB最适合处理时序数据?

時系列数据是指具有时间信息(时间戳)的一系列值。通常,时间戳以固定间隔记录连续的值。时系列数据的具体示例包括记录每分钟的气温数据或记录每个交易日的收盘价的股票数据等。

在物联网应用中,我们处理来自各种传感器(如温度传感器、电压传感器、照度传感器、图像传感器等)围绕目标的大量时间序列数据,这些数据以分钟、秒甚至更短的周期进行获取。

作为一种保存此类数据的系统,不一定需要数据库,但通常需要以下功能。

    • 絶えず流れ込んでくる大量のデータを取りこぼさず記録する

 

    • 頻繁に起こるデータ欠損や参照データの矛盾などに対処できる

 

    • 時間をキーとした読み出し方法を提供する

 

    センサーをキーとした読み出し方法を提供する
時系列データの例(かに星雲からのX線シグナル)

2. 保存时间序列数据

对于保持类似时间序列数据的方法,主要可以分为以下几种:

    • 単純にファイルとして保存する(フラットファイル)

 

    • Relational Database(RDB) を使う

 

    NoSQL Database を使う

可以想到以下三种方法。

将数据保存为文件的最大优点是写入速度。无论使用何种数据库,与直接文件写入相比,都会带有一定的开销,因此写入速度会稍慢。因此,如果每单位时间的数据流量非常大且没有使用数据库的余地,则只能选择在文件中保存。其他优点包括处理的数据没有限制,具有处理任何图像数据或数值数据的灵活性。相反,缺点是必须自己决定如何管理这些多样的数据,并且保存后的数据整理变得繁琐,同时搜索性能也会非常差。

在常规的关系数据库(RDB)中保存数据的最大优势是可以保证事务的ACID特性(原子性、一致性、隔离性和持久性)。此外,使用标准SQL语句可以方便地对获取的数据进行加工处理以及在复杂条件下进行数据提取和汇总。关系数据库的缺点是由于处理的严格性,每单位时间内的处理数量有限。此外,处理的数据假定为结构化数据,需要事先确定数据库的模式(结构),灵活性较低也是缺点之一。换句话说,对于存储来自多种传感器的大量数据来说,关系数据库往往不太适用。

在这种情况下,就诞生了NoSQL数据库。NoSQL代表“Not only SQL”,顾名思义,它是一种用于克服基于SQL的关系型数据库(RDB)的问题的数据库。最简单的NoSQL数据库被称为键值存储类型,它只存储了一个“键”来获取一个“值”。虽然它不像简单的文件写入那样简单,但它具有快速的写入和读取特性。此外,与RDB不同,它不仅可以处理数值数据,还可以处理所谓的“非结构化数据”,例如音频和图像。当然,它不只有好的方面,性能和灵活性得到提升的同时,也失去了RDB拥有的一些功能。首先,它可能不支持SQL,或者对功能有限制。此外,通常情况下,它也不支持像RDB那样带有ACID特性的严格事务(某些数据库可能在某种程度上支持具有限制的事务)。

在上述的3种数据存储方法中,严格的数据管理和高速运作可以说是一种权衡关系。然而,对于从物联网应用程序获取的时间序列数据来说,需要具备快速的写入和读取性能,并且功能虽然不多,但仍然提供了一定程度的数据检索和读取方法的NoSQL数据库是最佳选择。

为什么选择GridDB?

GridDB是一种NoSQL数据库,但与其他NoSQL数据库不同的是,它具有专为IoT应用和时序数据而设计的独特特点。以下将详细介绍其特点。

通过关键容器类型来维持传感器的一致性。

NoSQL数据库有键值型(代表例:Riak)、列导向型(代表例:Cassandra)、文档导向型(代表例:MongoDB)等数据模型。然而,考虑到从多个设备收集大量传感器数据的时间序列数据的用例,现有的数据模型仍存在不足之处。例如,键值型过于简单,难以管理一致性数据,如设备单位或传感器单位在某个管理组中。GridDB采用了一种新的数据模型,即键容器类型。通过某个键引用的容器使用表格表示来管理数据。容器可以进行模式定义,还可以为列设置索引。也就是说,容器本身可以像普通的关系型数据库一样进行处理,可以进行ACID特性保证的事务处理。此外,还可以使用类似SQL的查询(TQL)。

image.png

提供基于时间戳的各种操作

在GridDB中,标准功能已经提供了便于操作时间序列数据的便利功能。例如,在前述的数据存储单位“容器”中,有一个专门用于时间序列数据的“时间序列容器”。通过使用此功能,可以进行按时间间隔划分数据的提取(采样功能),以及自动删除超过一定时间的数据(期限开放功能)等功能。

通过内存导向架构实现超高速运行

NoSQL数据库有键值型(代表例:Riak)、列指向型(代表例:Cassandra)、文档指向型(代表例:MongoDB)等数据模型。但是,考虑到从多个设备中获取时序数据的使用情况,现有的数据模型仍存在一些问题。例如,键值型过于简单,难以管理属于同一管理组的设备单位和传感器单位等具有一致性的数据。GridDB采用了新的数据模型——键容器型。由特定键引用的容器使用表来管理数据。容器可以进行模式定义,并且可以在列上设置索引。换句话说,容器本身可以像常规的关系型数据库一样进行处理,并且可以执行保证ACID特性的事务处理。此外,还可以使用类似SQL的查询语言(TQL)。

NoSQLデータモデル

提供基于时间戳的各种操作。

在GridDB中,有一些方便操作时间序列数据的标准功能。例如,在前面的数据保持单位“容器”中,有专门用于时间序列数据的“时间序列容器”。通过使用它,可以进行按时间间隔抽取数据(采样功能),自动删除过期数据(期限开放功能)等操作。

通过内存导向的架构实现超高速运行。

GridDB是一种NoSQL数据库,其处理速度是RDB(关系型数据库)的最大优势之一,而且它还以其在NoSQL领域中一流的处理能力而自豪。其高速运行的秘密在于其设计理念“尽可能在内存中进行处理”。如果所有数据都在内存中排列,那么问题就简单了。但是,为了处理无法保存在内存中的大量数据,就需要将应用程序访问的数据本地化并减少对存储在磁盘上的数据的访问次数。为了实现数据访问的本地化,在GridDB中提供了将相关数据尽可能放置在同一数据块中的功能。通过给数据提供提示信息,可以实现按照提示进行数据块集聚,从而减少数据访问时的内存缺失,加快数据访问处理。

メモリ指向アーキテクチャ

请问您如何看待以下内容?这是一个基于传感器数据设想的键-容器型数据模型。多种便利功能以时间戳为键。处理能力能够轻松处理大量数据写入问题。所有这些功能都是为了有效处理大量时间序列数据而设计和实施的。

请试着使用GridDB代替您目前在IoT应用中使用的基于文件的存储、关系数据库或现有NoSQL。如果选择Community Edition,您可以随时免费使用。

广告
将在 10 秒后关闭
bannerAds