TimescaleDB 1.0 正式发布!基于 PG 的时序数据库

TimescaleDB 是基于 PostgreSQL 数据库开发的一款时序数据库,以插件化的形式打包提供,随着 PostgreSQL 的版本升级而升级,不会因为另立分支带来麻烦。

TimescaleDB 架构

数据自动按时间和空间分片(chunk)

TimescaleDB 具有以下特点

1. 基于时序优化

2. 自动分片(自动按时间、空间分片(chunk))

3. 全 SQL 接口

4. 支持垂直于横向扩展

5. 支持时间维度、空间维度自动分区。空间维度指属性字段(例如传感器 ID,用户 ID 等)

6. 支持多个 SERVER,多个 CHUNK 的并行查询。分区在 TimescaleDB 中被称为 chunk。

7. 自动调整 CHUNK 的大小

8. 内部写优化(批量提交、内存索引、事务支持、数据倒灌)。

内存索引,因为 chunk size 比较适中,所以索引基本上都不会被交换出去,写性能比较好。

数据倒灌,因为有些传感器的数据可能写入延迟,导致需要写以前的 chunk,timescaleDB 允许这样的事情发生(可配置)。

9. 复杂查询优化(根据查询条件自动选择 chunk,最近值获取优化(最小化的扫描,类似递归收敛),limit 子句 pushdown 到不同的 server,chunks,并行的聚合操作)

10. 利用已有的 PostgreSQL 特性(支持 GIS,JOIN 等),方便的管理(流复制、PITR)

11. 支持自动的按时间保留策略(自动删除过旧数据)

示例代码

Creating a hypertable

-- We start by creating a regular SQL table

CREATETABLEconditions (timeTIMESTAMPTZNOTNULL, locationTEXTNOTNULL, temperatureDOUBLEPRECISIONNULL, humidityDOUBLEPRECISIONNULL);-- Then we convert it into a hypertable that is partitioned by time

SELECTcreate_hypertable('conditions','time');

更新亮点:

更广泛的可用性改进

后台作业自动化和调度的基础

增强了数据库强化和测试

构建开源监控堆栈:对 Grafana 和 Prometheus 的原生支持

---------------END----------------

后续的内容同样精彩

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101G1HPZN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券