Docs 主页 → 开发应用程序 → MongoDB Manual
时间序列
时间序列数据是一系列数据点,可通过分析一段时间内的变化来获得见解。
时间序列数据通常由以下部分组成:
记录数据点的时间。
元数据(有时称为源)是唯一标识一个系列并且很少更改的标签。
测量(有时称为指标或值)是按时间增量追踪的数据点。一般来说,这些是随时间变化的键值对。
下表给出时间序列数据的示例:
例子 | 测量 | Metadata |
---|---|---|
stockdata | 股票价格 | 证券报价机、交易所 |
天气数据 | 温度 | 传感器标识符、位置 |
网站访客 | 查看计数 | url |
MongoDB 提供了时间序列集合实现高效率的时间序列数据存储。
时间序列集合
版本 5.0 中的新增功能。
时间序列集合可提供储时间序列数据的效率。在时间序列集合中,写入操作的组织方式保证同源数据与来自相似时间点的其他数据点一起存储。
您可以在用户界面中为 MongoDB Atlas 托管的部署 创建时间序列集合 。
收益分析
与普通集合相比,在时间序列集合中存储时间序列数据可提高查询效率,减少时间序列数据和二级索引的磁盘使用量。MongoDB 6.3 及更高版本会自动为新的时间序列集合创建时间和元数据字段的复合索引。
时间序列集合使用底层列式存储格式并按时间顺序存储数据。此格式具有以下优点:
降低处理时间序列数据的复杂性
提高查询效率
减少磁盘使用量
减少读取操作的 I/O 量
提高 WiredTiger 缓存使用率
行为
时间序列集合的行为与典型集合相同。您可以像平常一样插入和查询数据。
MongoDB 将时间序列集合视为由内部集合支持的可写入非物化视图。插入数据时,内部集合会自动将时间序列数据组织成优化的存储格式。
从 MongoDB 6.3 开始:如果创建新的时间序列集合,MongoDB 还会在 metaField 和 timeField 字段上生成复合索引。为了提高查询性能,对时间序列集合的查询使用新的复合索引。复合索引也采用优化的存储格式。
提示
为提高查询性能,您可以在测量字段或时间序列集合中的任何字段上手动添加二级索引。
重要
向后不兼容的功能
必须在降级之前删除时间序列集合:
MongoDB 6.0 或更高版本到 MongoDB 5.0.7 或更早版本。
MongoDB 5.3 到 MongoDB 5.0.5 或更早版本。
警告
不要尝试创建名称为system.profile
的时间序列集合或视图。如果您尝试这样做,MongoDB 6.3 及更高版本会返回IllegalOperation
错误。早期 MongoDB 版本会因此崩溃。
开始体验
如要开始使用时间序列集合,请参阅创建和查询时间序列集合。