作者:杭州美创科技有限公司

什么是时序数据库?顾名思义,用于处理按照时间变化顺序的数据的数据库即为时序数据库(time-series database),时序数据库专门优化处理带时间标签的数据,为什么会衍生时序数据库这一种新趋势呢?我们知道像PostgreSQL和MySQL这种关系型数据库对于短期需求不大的情况下下还是可以满足的,但是一旦数据量增长,其性能不足以支持频繁的添加和读取需求。运用时间模型来构造的应用非常需要时序数据库的加持,包括未来大数据的趋势,时序数据库必然会成为一个新潮流。

今天的主角TimescaleDB在DB-Engines中排名的处于第5位,并一直处于上升的趋势,其中不乏PostgreSQL的占有率提高而导致其增长的一部分原因,因为本质上它是PostgreSQL的一个插件,除了其本身丰富强大的功能外,TimescaleDB完全支持SQL且拥有PostgreSQL的丰富生态。

TimescaleDB是目前市面上唯一一款开源的时间序列数据库,且完全支持SQL。官方称之为“Full SQL”,它像传统的关系数据库一样易于使用,并且可以按以前为NoSQL数据库保留的方式进行扩展。

它依赖于PostgreSQL,拥有坚如磐石的可靠性以及最大量级的开发人员、管理工具和生态系统。其包含以下特性和优点:

  • 完整的SQL以及强大的分析功能,没有限制
  • 以PostgreSQL扩展的方式安装,支持已有的PostgreSQL特性
  • 拥有高基数的工作负载
  • 基于时序优化
  • 自动分片(自动按时间、空间分片(chunk))
  • 写入能力强大,每秒写入百万级的数据点
  • 支持多个SERVER,多个CHUNK的并行查询
  • 简化堆栈并将关系数据与时间序列数据一起存储
  • 支持自动的按时间保留策略

对于TimescaleDB来说,在功能的丰富程度上战胜了排名更靠前的几位选手,但是对于性能上可能处于下风,因此TimescaleDB如何持续地发展下去、如何发展地更好,除了探寻在性能等综合素质方面的提升外,在PostgreSQL的肩膀上怎么样更好地适应现代化需求才是重中之重。

接下来介绍一下如何安装并使用TimescaleDB

一、前期准备:

操作系统环境:CentOS Linux release 7.4.1708(Core)
Cmake编译环境:需要3.4以上,本实验环境使用最新版本3.21.2
PostgreSQL软件:支持PostgreSQL 9.6.3 +,10.9 +或11.4 +,本实验环境使用12.2

二、安装或升级你的Cmake版本:

卸载原有的旧版本

# yum remove cmake -y

进入cmake的官网下载对应版本的软件包:https://cmake.org/download/

这里我们直接下载3.21.2版本的二进制软件包

# wget https://github.com/Kitware/CMake/releases/download/v3.21.2/cmake-3.21.2-linux-x86_64.tar.gz

解压软件包

# tar xzvf cmake-3.21.2-linux-x86_64.tar.gz

进入解压后的目录,将bin/目录下的cmake做软链接,当然也可以直接将cmake添加到环境变量中

# ln -s /root/cmake-3.21.2-linux-x86_64/bin/cmake /usr/bin/cmake

检查cmake是否可用

# cmake --version
cmake version 3.21.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).

三、编译安装TimescaleDB软件:

从github中下载软件

https://github.com/timescale/timescaledb

解压软件包,进入解压目录,进行编译安装

如果在编译安装PostgreSQL软件的时候没有选择安装openssl,那么可以使用

/bootstrap -BUSE_OPENSSL=0进行安装,如果有选择安装openssl,就去掉参数选项,直接进行安装

# ./bootstrap && make && make install

四、配置PostgreSQL:

在postgresql.conf配置文件中修改

$ vim postgresql.conf
shared_preload_libraries = 'timescaledb'

重启数据库服务

创建一个时序数据库

$ psql
psql (12.2)
Type "help" for help.
postgres=# create database tsdb;
CREATE DATABASE
postgres=# \c tsdb -
You are now connected to database "tsdb" as user "postgres".
tsdb=# create extension timescaledb ;

到此为止,就完成了TimescaleDB的安装步骤,可以看到得益于扩展形式的存在,安装变得非常简便,并且随着PostgreSQL软件的更新,整个基于PostgreSQL软件的TimescaleDB时序数据库也在同步更新。

五、如何使用TimescaleDB:

使用TimescaleDB库,其实就多了一步转换为超表的步骤,其它基本和操作普通的表一样

创建标准表

CREATE TABLE conditions (time        TIMESTAMPTZ       NOT NULL,location    TEXT              NOT NULL,temperature DOUBLE PRECISION  NULL,humidity    DOUBLE PRECISION  NULL
);

以时间字段作为分片字段,将标准表转换为超表

SELECT create_hypertable('conditions', 'time');

在超表中进行插入和查询操作

INSERT INTO conditions(time, location, temperature, humidity)VALUES (NOW(), 'office', 70.0, 50.0);SELECT * FROM conditions ORDER BY time DESC LIMIT 100;

基于PostgreSQL的时序数据库TimescaleDB相关推荐

  1. 基于PostgreSQL的时序数据库TimescaleDB(上)

    什么是时序数据库?顾名思义,用于处理按照时间变化顺序的数据的数据库即为时序数据库(time-series database). 时序数据库专门优化处理带时间标签的数据,为什么会衍生时序数据库这一种新趋 ...

  2. 基于PostgreSQL的时序数据库TimescaleDB(下)

    上一期我们介绍了一些关于时序数据库的概念和发展以及TimescaleDB的功能特性,本期就来介绍如何安装使用TimescaleDB. 一.前期准备: 操作系统环境:CentOS Linux relea ...

  3. 时序数据库timescaleDB安装

    参考链接 :时序数据库timescaleDB安装 :http://www.lwops.cn/thread-300-1-1.html 本环境在Centos7.5采用编译安装的方式,主要介绍Postgre ...

  4. [转帖]Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(下篇)

    Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(下篇) http://www.postgres.cn/v2/news/viewone/1/454 原作者:姚延栋 创作时间:201 ...

  5. java执行查询postgresql得到中文乱码_Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(上篇)...

    关于作者 姚延栋,山东大学本科,中科院软件所研究生.PostgreSQL中文社区委员,致力于Greenplum/PostgreSQL开源数据库产品.社区和生态的发展. 一.数据库内核揭秘 Greenp ...

  6. mysql和timescale联合查询_[技术干货] 时序数据库timescaleDB安装

    本环境在Centos7.5采用编译安装的方式,主要介绍PostgreSQL 11.7,TimescaleDB 1.6.1,cmake3.8.2 PostgreSQL编译安装需要cmake3.4以上的版 ...

  7. 时序数据库:基于Chronograf对时序数据库InfluxDB(限流监控Sentinel的监控数据存储) 进行监控大屏展示

    文章目录 前言 一.架构 二.工具 三.安装 四.大屏 总访问量 最近一小时访问量 最近一小时限流数 最近一小时异常数 最近一小时的访问趋势图(秒级别) 最近12小时资源访问排名 五.预警 六.小结 ...

  8. 时序数据库分析 - TimescaleDB时序数据库介绍

    背景 随着物联网的发展,时序数据库的需求越来越多,比如水文监控.工厂的设备监控.国家安全相关的数据监控.通讯监控.金融行业指标数据.传感器数据等. 在互联网行业中,也有着非常多的时序数据,例如用户访问 ...

  9. 从前世今生聊一聊,大厂为啥亲睐时序数据库

    摘要:本文会从时序数据库的基本概念.应用场景.需求与能力等方面一一展开,带你了解时序数据库的前世今生. 时序数据库忽然火了起来.Facebook开源了beringei时序数据库,基于PostgreSQ ...

最新文章

  1. PL/SQL无法登录
  2. 【译】史上最强的vimrc文件
  3. linux用的那国语言,在linux上可以使用什么变成语言
  4. 【项目管理】用LoC衡量程序员的工作效率是不科学的
  5. poj 1160 dp
  6. vim编辑器及目录结构
  7. 长连接和短链接在服务器占用资源,TCP长连接和短链接及优缺点
  8. 在小公司做项目经理有意义吗_产品经理–是否具有战略意义?
  9. 计算机视觉之人脸识别学习(六)
  10. 秋招提前批已来,万字长文教你如何增加面试大厂的成功率
  11. java week of year_JDK Calendar类获取WEEK_OF_YEAR时的陷阱
  12. tibco文档下载地址
  13. Viper的使用方法
  14. FZU2214 超大背包
  15. 多图详解:七种具体方法增强代码可扩展性
  16. idea安装maven依赖包及配置过程,打开及运行项目
  17. Retrofit中关于CallAdapter使用的设计模式分析
  18. 智慧交通发展与实现系列01-智慧交通畅想之一
  19. 高仿【华为消费者业务官网】和精彩动画剖析:练习在低代码平台中嵌入JS代码
  20. Redox OS 0.5发布

热门文章

  1. 径向基RBF神经网络
  2. 201903股票投资与实践入门二:政策选股与股市指标
  3. 计算机问题求解之递归 ※
  4. Android 的自定义RadioGroup
  5. python是一种跨平台开源免费的_2017年30个惊艳的Python开源项目
  6. 基于好奇心的神经网络算法自监督预测算法
  7. 小肥杨训练营——快速幂模板
  8. android 编译fastboot,Android应用开发之Fastboot烧写Android镜像文件到eMMC
  9. vue给标签动态添加元素_Vue用v-for给循环标签自身属性添加属性值的方法
  10. Android managedQuery查询如果加入group by条件(及其猥琐的方法)