TimeScaleDB在气象时序统计中的应用

2022-03-25 00:00:00 查询 数据 时序 累计 降水量

一 前言

气象数据是个典型的时序数据,例如自动站监测风、温、湿、压等数据,每分钟都有新监测数据,数据只有插入和查询,没有修改操作,数据量大,业务上有累计10分钟降水,累计30分钟降水等需求,这样的需求使用时序数据库去存储是合适不过了。

同时自动站本身具有经纬度、高度等空间位置信息,实际业务中监测数据可以根据位置空间插值成等值线面。

PG丰富的插件正好就比较适应气象这样的业务场景,其通过PostGIS插件支持空间数据存储检索分析,通过TimeSacleDB插件支持时序数据存储检索分析。

本文重点介绍如何使用PG的时序数据库插件timescaledb。

二 timescaledb特点

TimeScaleDB是基于PostgreSQL的时序数据库插件,用户可以通过sql就可以进行时序数据的统计分析,入门非常简单。截至目前(2021-07-14)TimeScaleDB新版本是2.3.0,该版本特点是后一版支持PG11的版本,版支持分布式的版本,该版本是个里程碑版本。

虽然PG内置了range分区、list分区、hash分区,带时间类型数据通常通过时间的range分区去优化,再根据list、hash创建二级分区优化查询,然后各种优化数据过期也要自己写job等。就和比赛分专业与业余一样,时序数据库应该就是时间类型数据应用的专业赛道,其提供大量的管理查询分析工具在功能上性能上进行扩展和优化。简单列举下timescaledb特点便可以知道时序数据库与分区表的差异:

  • 支持关系表一键转换成时序数据表(超表)。
  • 时序数据大,可以支持超表的分布式管理,节点增删改等(新增)。
  • 时序数据大,可以支持数据压缩。
  • 物化视图支持数据的连续聚合,如逐时数据的统计。
  • 自定义设置数据保留策略,过期数据自动删除。
  • 内置特殊的自定义函数用于时序超表的查询和统计。
  • 时序数据库的元数据管理和查看函数等方便用户管理。

在实际使用前,入门还是要写一下安装步骤的。

三 插件安装

  • 安装PG

源码安装,注意.configure带上 --with-openssl

安装教程:

https://mp.weixin.qq.com/s?__biz=Mzg2OTUxMzM2MA==&mid=2247483949&idx=1&sn=e118ced220d8e6e9d0005dd722e4326e&chksm=ce9aa3d2f9ed2ac47d8c4f9f2cdc9b92b4dfe78fa1f7d09197d7b36f4644a0a41ed884380ac5&token=1469763994&lang=zh_CN#rd

  • 安装timecaledb
# 下载源码
wget https://github.com/timescale/timescaledb/archive/refs/tags/2.3.1.tar.gz
# 解压
tar -zxvf 2.3.1.tar.gz
# 进入目录编译
cd timescaledb-2.3.1
# source pg环境变量,以获取pg_config
source /home/postgres/.bashrc
# 编译
./bootstrap -DREGRESS_CHECKS=OFF
make -j 4
make install

相关文章