时间序列数据是在特定时间间隔收集或记录的一系列数据点,其中观察的顺序和时间对于理解数据至关重要。 与其他数据类型(例如,横截面数据(例如,在单个时间点拍摄的用户人口统计信息快照))或事务数据(例如,单个销售记录)不同,时间序列数据强调时间依赖性。 例如,物联网设备每分钟记录一次温度的传感器读数、每小时跟踪的股票价格或每秒记录的服务器指标都是时间序列。 关键的区别在于每个数据点都与时间戳相关联,并且分析趋势、模式或异常需要考虑点之间的顺序和时间间隔。 相比之下,非时间序列数据可能优先考虑变量之间的关系(例如,调查中年龄和收入的相关性),而不需要基于时间的排序。
在结构上,时间序列数据通常涉及规则或不规则的间隔,并且处理它需要专门的技术。 例如,时间序列中缺失的值不能总是被忽略或随机估算,因为间隙会破坏时间连续性。 诸如重采样(例如,将分钟级数据转换为小时平均值)或窗口函数(例如,滚动平均值)之类的工具在时间序列分析中很常见。 相比之下,关系数据库中的表格数据可能侧重于不依赖于时间顺序的连接、过滤器或聚合。 此外,时间序列模型(如 ARIMA 或 LSTM 神经网络)明确地考虑了趋势、季节性和自相关(过去的值会影响未来的值)。 非时间序列模型(如线性回归)可能会将数据点视为独立的,这对于基于时间的数据是不合适的。
存储和查询模式也不同。 时间序列数据库(例如,InfluxDB、TimescaleDB)针对高写入吞吐量和高效的时间范围查询(例如,“获取下午 2:00 到 3:00 之间的 CPU 使用率”)进行了优化。 它们通常压缩数据并按时间间隔对其进行分区。 相比之下,关系数据库或文档存储优先考虑跨不同字段的灵活查询。 例如,用户配置文件数据库可能按用户 ID 或位置而不是时间编制索引。 监控系统或财务预测等时间序列用例也需要实时处理和警报,而其他数据类型可能侧重于批量分析或事务一致性。 使用时间序列的开发人员必须考虑这些独特的要求,才能选择合适的工具并设计高效的管道。