概述
TimescaleDB 是用于时间序列数据的开源关系数据库。它使用完整的 SQL,并且与传统的关系数据库一样易于使用,但可以,以以前为 NoSQL 数据库保留的方式进行扩展。(TimescaleDB是以扩展的形式安装到PG数据库中的)。
加强PostgreSQL
TimescaleDB 作为 PostgreSQL的插件扩展,具有完整的 SQL、坚如磐石的可靠性以及管理工具生态系统。
1.完整的SQL,强大的分析,没有限制
2.利用 PostgreSQL 扩展
3.可以使用完整的PostgreSQL 工具集:ORM、连接器、JDBC、应用程序
4.连接 Prometheus以获取所有可观察性指标
加速性能
实现比 PostgreSQL、InfluxDB 和 MongoDB 快 10-100 倍的查询。利用查询并行化、连续聚合和其他性能优化。
1.针对高基数工作负载,每台服务器的插入速度提高 10 倍,每台服务器每秒可多摄取 150 万多指标
2.优化的时间序列查询和 时间序列分析
3.对自动 连续聚合的实时洞察
4.对压缩列存储进行快速扫描
5.通过下采样在更长的时间范围内更快地查询
大规模
每秒写入数百万个数据点。在单个节点上存储数百 TB 或跨多个节点存储 PB。轻松处理高基数数据。
1.每台服务器可存储数千亿行和数百 TB 数据,压缩后或数十 TB 未压缩。
2.记录数十亿个不同的时间序列,收集你需要的一切。
3.同类佳的数据类型特定压缩,可实现 16 倍的存储容量。
4.跨多个 TimescaleDB 节点创建分布式超表。
5.跨多个节点并行化扫描和聚合查询。
时序数据列和其它数据列在一起
1.集中存储时间序列、应用程序和传感器数据。
2.将指标与业务和记录系统数据相关联。
3.无限元数据,不用担心标签的基数。
4.执行 JOIN 以了解与时间序列数据的关系。
5.使用外键和约束确保干净、正确的数据。
降低成本
1.通过94-97% 的无损 压缩率降低存储成本。
2.下采样保持聚合指标而不浪费磁盘空间。
3.使用数据保留策略优化存储消耗。
4.透明定价,永远知道你会付出什么。
5.根据不断变化的需求动态扩展计算和存储。
什么是时间序列数据?
我们一直在谈论的这个“时间序列数据”是什么,它与其他数据有何不同以及为什么不同?
在很多监控应用中,往往会将不同的指标收集在一起(例如,CPU、内存、网络统计、电池寿命)。因此,单独考虑每个指标并不总是有意义的。考虑这种替代的“更广泛”的数据模型,它保持同时收集的指标之间的相关性。
这种类型的数据属于更广泛的类别,无论是来自传感器的温度读数、股票价格、机器状态,甚至是应用程序的登录次数。
时间序列数据是集体表示系统、流程或行为如何随时间变化的数据。
时间序列数据的特征
如果您仔细观察它是如何产生和摄取的,就会发现像 TimescaleDB 这样的时间序列数据库通常利用的一些重要特征:
1.以时间为中心:数据记录总是有时间戳。
2.仅附加:数据几乎完全是仅附加(INSERT)。
3.近:新数据通常与近的时间间隔有关,我们很少更新或回填有关旧时间间隔的缺失数据。
不过,数据的频率或规律性并不那么重要;它可以每毫秒或每小时收集一次。它也可以定期或不定期地收集(例如,当某些事件发生时,而不是在预定义的时间)。
但是数据库不是早就有时间字段了吗?与标准关系“业务”数据等其他数据相比,时间序列数据(以及支持它们的数据库)之间的主要区别在于,对数据的更改是插入,而不是覆盖。
时间序列数据无处不在
时间序列数据无处不在,但在某些环境中,它尤其是在洪流中创建的。
1.监控计算机系统:VM、服务器、容器指标(CPU、可用内存、网络/磁盘 IOP)、服务和应用程序指标(请求率、请求延迟)。
2.金融交易系统:经典证券、较新的加密货币、支付、交易事件。
3.物联网:来自工业机器和设备、可穿戴设备、车辆、物理容器、托盘、智能家居消费设备等传感器的数据。
4.事件应用程序:用户/客户交互数据,如点击流、页面浏览量、登录、注册等。
5.商业智能:跟踪关键指标和业务的整体健康状况。
6.环境监测:温度、湿度、压力、pH、花粉计数、气流、一氧化碳 (CO)、二氧化氮 (NO2)、颗粒物 (PM10)。
参考
https://docs.timescale.com/timescaledb/latest/overview/what-is-time-series-data/#is-everywhere