《开源时间序列数据库发布,兼具RDBMS和NoSQL特性》要点:
本文介绍了开源时间序列数据库发布,兼具RDBMS和NoSQL特性,希望对您有用。如果有疑问,可以联系我们。
近日,使用Postgres引擎构建的一个新的开源时间序列数据库TimeScaleDB已经发布了, TimeScaleDB可用于单节点版本,并且针对快速采集和复杂查询进行了优化.
开发人员表示TimeScaleDB的优势特别明显,与传统RDBMS相比,它可以在多个服务器之间水平扩展,与NoSQL数据库相比,它支持所有的SQL.创建TimeScaleDB数据库的初衷其实是他们需要处理大量且复杂的时间尺度数据,且短时间内需要多次拜访数据,所以存储这样的时间序列数据需要规模和有效的复杂查询.而他们不愿意在NoSQL的水平可扩展性和关系数据库的查询能力之间进行权衡和将就,所以就自主开发了TimeScaleDB.
TimeScaleDB的SQL支持由PostgreSQL引擎提供,同时包括了二次索引,JOIN和窗口函数等功能. TimescaleDB的使用与PostgreSQL数据库类似,用户可以像PostgreSQL一样连接到数据库以及管理数据库,另外,与PostgreSQL连接的工具和库在TimescaleDB也能正常工作.
开发人员表示TimescaleDB比PostgreSQL更具优势,因为PostgreSQL不能很好地适应大多数时间序列应用产生的数据量,特别是在单个服务器上运行时.他们特别指出, PostgreSQL对大型表格的写入性能差,如果数据量是随时间呈线性增长,那么随着数据量的增长,这个问题会越来越严重.当表索引不再适合内存时,那么之后的每次插入都会替代掉原来索引“B-Trees”的一部分.
SQL数据库的这些问题间接造成了NoSQL数据库的蓬勃发展,TimescaleDB的开发人员表示时间序列工作负载在两个关键方面是不同的.首先,时间序列数据在很大程度上是不变的,到达的新数据通常是对应于最近的时间段.换句话说,写入主要作为新的插入,而不是对现有行进行更新.
其次,工作负载在时间和空间上都有自然的划分.写入通常被制成最新的时间间隔,并跨越空间维度(例如数据源,设备,用户等)中的“分区键”.查询通常会通过特定的时间序列或者数据源或者跨越多个数据源.
TimescaleD自动将数据分割为跨多个节点(或单个节点)的二维块,通过所有块执行并行操作和优化查询计划,并将单个表格接口暴露于此数据(“hypertable”).
TimescaleDB提供了所有时间和空间中单个连续数据库表的错觉,实际上这个表在服务器之间分为多个块. 您可以针对此超级表运行标准SQL查询,TimescaleDB分布式查询计划程序会自动优化查询以拜访正确的组块. 数据库可以有多个hypertable,,其中每个具有自己的模式和分区.
《开源时间序列数据库发布,兼具RDBMS和NoSQL特性》是否对您有启发,欢迎查看更多与《开源时间序列数据库发布,兼具RDBMS和NoSQL特性》相关教程,学精学透。维易PHP学院为您提供精彩教程。