数据库管理员和应用程序开发者使用 GBase 8s TimeSeries 解决方案来存储并分析时间系列数据。
时间系列是一组带时间戳记的数据。时间系列数据的类型多种多样,例如,从智能计量表收集的用电量、库存价格和交易量、ECG 记录、震波图和网络性能记录。 对时间系列数据执行的查询类型通常包括时间条件和较长一段时间内的数据聚集。例如,您可能想要了解客户在星期几的用电量最大。
GBase 8s TimeSeries 解决方案由从数据库服务器单独安装的产品 GBase 8s TimeSeries DataBlade 模块 进行实施。
GBase 8s TimeSeries 解决方案提供以下功能来存储和分析时间系列数据:
GBase 8s TimeSeries 解决方案在关系数据库中以特殊格式存储时间系列数据,这种方式同时利用了非关系和标准关系时间系列数据实施的好处。
GBase 8s TimeSeries 解决方案比非关系时间系列实施更为灵活,因为 GBase 8s TimeSeries 解决方案并非特定于任何行业、可轻松定制,并且能够结合时间系列数据和关系数据库中的信息。
GBase 8s TimeSeries 解决方案由从数据库服务器单独安装的产品 GBase 8s TimeSeries DataBlade 模块 进行实施。
GBase 8s TimeSeries 解决方案装入和查询带时间戳记数据的速度更快,需要的存储空间更少,并且提供的分析能力比标准关系表实施更强。尽管关系数据库管理系统能够通过每个带时间戳记的数据条目存储一行来存储标准类型的时间系列数据,但性能很差且存储效率较低。GBase 8t TimeSeries 解决方案可节省磁盘空间,通过不存储来自不包含基于时间的数据的列的重复信息。GBase 8s TimeSeries 解决方案可快速装入和查询时间系列数据,因为该数据按照时间戳记和源的顺序存储在磁盘上。
例如,下表显示一个关系表,其中包含两个源或客户(其标识为 1000111 和 1046021)的基于时间的信息。
客户 | 时间 | 值 |
---|---|---|
1000111 | 2011-1-1 00:00:00.00000 | 0.092 |
1000111 | 2011-1-1 00:15:00.00000 | 0.082 |
1000111 | 2011-1-1 00:30:00.00000 | 0.090 |
1000111 | 2011-1-1 00:45:00.00000 | 0.085 |
1046021 | 2011-1-1 00:00:00.00000 | 0.041 |
1046021 | 2011-1-1 00:15:00.00000 | 0.041 |
1046021 | 2011-1-1 00:30:00.00000 | 0.040 |
1046021 | 2011-1-1 00:45:00.00000 | 0.041 |
下表显示在 GBase 8s TimeSeries 表中存储的相同数据的表示。有关客户的信息存储一次。客户的所有基于时间的信息都一起存储在单一行中。
客户 | 时间 | 值 |
---|---|---|
1000111 | 2011-1-1 00:00:00.00000 | 0.092 |
2011-1-1 00:15:00.00000 | 0.082 | |
2011-1-1 00:30:00.00000 | 0.090 | |
2011-1-1 00:45:00.00000 | 0.085 | |
1046021 | 2011-1-1 00:00:00.00000 | 0.041 |
2011-1-1 00:15:00.00000 | 0.041 | |
2011-1-1 00:30:00.00000 | 0.040 | |
2011-1-1 00:45:00.00000 | 0.041 |
下表总结了对基于时间的数据使用 GBase 8s TimeSeries 解决方案比使用标准关系表所具有的优势。
标准关系表的问题 | GBase 8s TimeSeries 表的好处 | |
---|---|---|
存储空间 | 每个记录存储一行。在非时间系列的列中重复信息。存储时间戳记。空数据占用的空间和实际数据一样多。索引通常包括时间戳记列和若干其他列。 | 存储相同数据所需的磁盘空间明显减少。磁盘上的索引大小也更小。
在相同行中存储单个源的所有时间系列数据。没有重复信息。计算但不存储时间戳记。空数据不需要占用任何空间。索引不包括时间戳记列。 |
查询速度 | 单个源的数据可以不按照任何特定顺序在多个数据页面上混合。 | 使用时间条件的查询需要的磁盘读取次数更少,需要的 I/O 也明显减少。数据装入十分高效。
单个源的数据按照时间戳记顺序存储在一起。 |
查询复杂性 | 聚集数据或应用表达式的查询可能很难或者不可能使用 SQL 执行。多数查询逻辑必须由应用程序提供。 | 应用程序编码减少,查询速度加快。
允许执行复杂的 SQL 查询和分析。允许使用 TimeSeries API 编写定制分析。 |