TimeScaleDB食用手册

news2024/9/28 5:30:00

TimescaleDB食用手册

一 TimescaleDB介绍

TimescaleDB是一种用于处理时间序列数据的开源时序数据库,它是PostgreSQL的扩展。它可以处理大量的时间序列数据,并且支持SQL查询和连续聚合功能。

1.TimescaleDB的优点

  • 分布式架构:TimescaleDB利用分布式架构根据时间戳进行分片的方式,以提高并行查询性能,从而可以轻松地处理大型数据集
  • 高性能:由于其专注于时间序列数据,TimescaleDB包括了许多特性,如离线压缩、顺序扫描等,这些功能使得查询效率更高、数据占用空间更小
  • 兼容标准SQL:使用标准SQL来查询数据,并且完全兼容 PostgreSQL,也可以支持 PostGIS 等其它扩展
  • 易于部署和维护:TimescaleDB安装非常方便,与现有应用程序基础设施兼容。同时,它的监控工具也可以帮助用户监视和管理整个系统

总之,TimescaleDB是一个快速可伸缩的开源时序数据库,适合于需要处理和分析大量时间序列数据的应用场景。

2.TimescaleDB的缺点

  • 开源版本的 TimescaleDB 功能相对较为简单,如果需要使用更高级的功能,需要购买专业版或企业版的许可证
  • TimescaleDB 可以处理大量的时间序列数据,但是它并不是一个通用的数据库,因此在处理非时间序列的数据时,需要使用其他的数据库
  • TimescaleDB 依赖 PostgreSQL 运行,因此需要一定的 PostgreSQL 知识才能使用它
  • TimescaleDB 的写入性能相对较慢,尤其是在数据量非常大的情况下。由于它是一个基于时间序列的数据库,因此写入操作需要进行时间序列的排序和分区,这可能会影响到写入的速度
  • TimescaleDB 目前还不支持复杂的分布式操作,例如分布式事务和分布式 join 等。这对于需要进行复杂分布式操作的场景可能是一个限制

总的来说,虽然 TimescaleDB 具有很多优点,但是它也有一些限制和缺点。在选择数据库时,需要根据实际情况进行权衡和选择

二 TimescaleDB的安装

注意:安装TimescaleDB的前提是,已经成功安装了PostgreSQL

安装完成之后需要重启PostgreSQL

1.Windows安装

Window安装前提:已将bin目录地址lib目录地址配置到了环境变量Path中,另外记得暂时关闭各种杀毒软件
在这里插入图片描述

1.下载Timescale安装包

下载地址:Releases · timescale/timescaledb · GitHub

我这里使用的是PostgreSQL12.x,故此下载12版本的timescaledb-postgresql的压缩包

在这里插入图片描述

2.解压运行

解压之后进入根目录,右击setup.exe文件,然后选择“以管理员身份运行”,这一点很重要,如果没有关闭杀毒软件或没有以管理员身份运行,则可能会报错,或者画面一闪而过。

在这里插入图片描述

在弹出的cmd对话框中,输入 y,同意继续安装

在这里插入图片描述

然后根据提示,会让输入PostgreSQL的配置文件路径,找到PostgreSQL的配置文件地址,复制过来即可,一般在/data目录下

在这里插入图片描述

接下来一路 yes,直到提示安装完成。

最后,打开pgsql的控制台,或者使用pgsql的连接工具,打开一个查询界面。

输入以下命令

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

如果出现以下画面,则说明安装成功

在这里插入图片描述

然后重启PostgreSQL服务即可。

如果不再需要TimescaleDB,则可以使用命令移除它

DROP EXTENSION IF EXISTS timescaledb CASCADE;

2.Ubuntu安装

3.Centos安装

4.Docker安装

三 Timescale的使用

1.创建超表

查看timescaledb是否已经安装并且启用

SELECT * FROM pg_extension WHERE extname = 'timescaledb';

PostgreSQL属于关系型数据库,常规表与其他关系型数据库区别不大,可使用PostgreSQL的管理工具pgAdmin连接,也可以使用Navicat。

以下是一个简单的创建表的SQL:

CREATE TABLE sensor_data ( 
time        TIMESTAMPTZ       NOT NULL,  
location    TEXT              NOT NULL,  
temperature DOUBLE PRECISION   NULL,  
humidity    DOUBLE PRECISION   NULL, 
pressure    DOUBLE PRECISION   NULL,  
PRIMARY KEY (time, location) 
)

需要注意的是,主键是类型为TIMESTAMPTZ的字段

然后为常规表创建超表

在 TimescaleDB 中,超表(hypertable)是指具有不同数据分区的表。 TimescaleDB 的一个主要功能是能够在数据集按时间分割(时间序列数据)的情况下改善查询性能。

-- 实例 1
SELECT create_hypertable('sensor_data', 'time');
-- 实例 2
SELECT create_hypertable('sensor_data', 'time', chunk_time_interval => interval '1 month');

在上述实例2语句中,create_hypertable 函数用于创建名为 sensor_data 的 hypertable,其中使用 time 列来进行数据分区,并将其按月分割成单独的数据块(chunk)。该函数接受的最后一个参数为 chunk_time_interval,用于定义超级表中每个数据块的范围。

如果不指定chunk_time_interval,则默认为7天,即每间隔7天,将会生成一个新的数据块(chunk)。

也可以在创建超表之后对chunk_time_interval进行修改:

--实例: 将sensor_data超表的数据块范围修改为3天
SELECT set_chunk_time_interval('sensor_data', INTERVAL '3 days');

2.删除超表

-- 删除 sensor_data 表所对应的超表
DROP HYPERTABLE IF EXISTS sensor_data;
-- 删除 sensor_data 表所对应的超表以及数据
DROP HYPERTABLE IF EXISTS sensor_data CASCADE;

3.查看超表

使用以下命令,可以查看当前数据库的超表信息

-- 查看超表的状态
SELECT * FROM timescaledb_information.hypertables;

在这里插入图片描述

以上内容,主要展示了超表所在的模式,超表名称,超表拥有者,数据围堵,数据分区数量,是否启用压缩,是否分布式等主要内容,可以清晰的看到各个超表的具体情况。

4.超表压缩

启用压缩后,超表中新插入的数据将被自动压缩,并且查询时只需要解压缩必要的部分,这可以显著降低磁盘空间和 IO 开销,并大幅提高读写性能。

需要注意的是,启用压缩后会增加一定的查询处理时间,因此建议进行基准测试以确定哪些查询将受到影响并了解何时使用压缩或放弃压缩。

同时,也应该考虑其它压缩类型的设置,如timescaledb.compress_orderby,用于指定优化压缩的列或表达式。选择不同的压缩类型也会影响压缩效果和可操作性,必须考虑实际业务情况进行设置。

以下是一个压缩示例:

压缩 sensor_data 超表,并以time列项进行排序

ALTER TABLE sensor_data SET (
    timescaledb.compress, 
    timescaledb.compress_orderby => 'time'
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

类和对象上

文章目录 一、类的定义1、声明和定义全部放在类体中2、 类声明放在.h文件中,成员函数定义放在.cpp文件中 二、类的访问限定符三、类的作用域类及其实例化1、作用域2、实例化 四、类对象大小的计算1、计算对象(仅成员变量)2、计算方式&#xf…

iMazing2官方下载最新iPhone/iPad手机设备管理工具

iMazing 2最新版它可以完美地在 iOS 设备之间传输数据。 该软件专门设计用于为用户提供对 iPhone、iPod 和 iPad 的更多控制和管理能力。 它将所有这些高价值设备变成了外部存储,以便您可以交换各种数据,例如短信、通话记录、视频或照片。值得信赖的是&a…

学习k近邻算法(KNN)【自学且自用】

文章目录 1 概念2 原理及举例3 KNN中最常用的距离度量——欧式距离4 K值的选择5 knn和k-means的区别 参考的一些网页: https://zhuanlan.zhihu.com/p/143092725 1 概念 k近邻算法(k-nearest neighbour,k-NN)是一种基本分类与回归…

JavaEE-HTML常用标签了解(二)

目录 表格标签合并单元格 列表标签表单标签无语义标签HTML特殊字符 表格标签 table 标签: 表示整个表格tr: 表示表格的一行td: 表示一个单元格th: 表示表头单元格. 会居中加粗thead: 表格的头部区域(注意和 th 区分, 范围是比 th 要大的)tbody: 表格得到主体区域. <table …

CAS简介

文章目录 前言一、锁&#xff1f; CAS?二、juc--java.util.concurrent1.CAS思想的落地2 ABA问题出现3 可以解决的问题 总结 前言 CAS的全称是&#xff1a;比较并交换&#xff08;Compare And Swap&#xff09;。在CAS中&#xff0c;有这样三个值&#xff1a; V&#xff1a;要…

基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)

摘要&#xff1a;本文重点介绍了基于YOLOv5目标检测系统的MATLAB实现&#xff0c;用于智能检测物体种类并记录和保存结果&#xff0c;对各种物体检测结果可视化&#xff0c;提高目标识别的便捷性和准确性。本文详细阐述了目标检测系统的原理&#xff0c;并给出MATLAB的实现代码…

IPRAN网络结构智能优化

IPRAN&#xff08;Internet Protocol Radio Access Network&#xff09;是指基于IP技术的无线接入网络&#xff0c;是当前移动通信重要基础网络。然而&#xff0c;随着技术的快速发展&#xff0c;IPRAN网络规模不断扩大&#xff0c;网络结构日趋复杂&#xff0c;运维网优愈发困…

基于数据和AI之上,数说故事首发“人、货、场、域”W-SCC测量体系|D3大会演讲实录

无测量&#xff0c;不营销。 品牌在加速更迭、场景在垂直发展、需求在不断升级&#xff0c;借助数字化力量可以实现更精准、长效的营销增长。但如果连营销效果都无法被量化测量&#xff0c;那么一切为了增长的“轮番”操作只会沦为“锦团花簇”&#xff0c;品牌营销的真正实效…

使用ChatGPT工具阅读文献的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

PySpark基础入门(1):基础概念+环境搭建

目录 Spark基础入门 spark基础概念 spark架构 Spark环境搭建 local模式 Standalone 模式 Spark On YARN 模式 PySpark开发环境搭建 Python On Spark 执行原理 更好的阅读体验&#xff1a;PySpark基础入门&#xff08;1&#xff09;&#xff1a;基础概念&#xff0b;环…

国产仪器 9906在线式户外多通道光伏组件评测系统 可替代EKO MP-160

9906 在线式户外多通道光伏组件评测系统可替代国外仪器型号&#xff1a;EKO MP-160 在线式户外多通道光伏组件评测系统是一款支持实时多通道光伏组件测试的评测系统&#xff0c;提供真6路电子负载&#xff0c;提供多至6通道的实时测试能力&#xff0c;并可根据用户需求订制通道…

TouchGFX开发(1)----安装软件

TouchGFX开发.1----安装软件 概述TouchGFX 特点下载&安装 概述 TouchGFX 是一个高性能的嵌入式图形库&#xff0c;主要用于为微控制器&#xff08;MCU&#xff09;驱动的设备创建现代用户界面&#xff08;UI&#xff09;。它提供了一套丰富的图形功能&#xff0c;使开发者…

[SWPU CTF]之Misc篇(NSSCTF)刷题记录⑥

NSSCTF-Misc篇-[SWPUCTF] [长城杯 2021 院校组]签到[巅峰极客 2021]签到[羊城杯 2021]签到题[鹤城杯 2021]流量分析[SWPU 2019]神奇的二维码[NISACTF 2022]为什么我什么都看不见[NISACTF 2022]bqt[SWPU 2020]套娃[NISACTF 2022]huaji&#xff1f;[SWPUCTF 2021 新生赛]gif好像有…

Mybatis之配置文件与映射文件的“那些事”,你真的知道吗?

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 Mybatis版本&#xff1a;3.5.6 目录 一.详解Mybatis的核心配置文件【mybatis-config.xml】1.1 核心配置文件概述1.2 核心配置文件之根标签1…

基于Java的房屋租赁管理系统开发与设计(附源码文档)-毕业设计

文章目录 1.适用人群2.你将收获3.项目概述3.1.项目背景3.2.项目简介3.3.软件技术栈 4.项目运行截图4.1.登陆界面4.2.首页4.3.修改密码4.4.用户管理模块4.5.权限管理模块4.6.资源管理模块4.7.区域设置模块4.8.房屋类型管理模块4.9.房屋管理模块4.10.房间管理模块4.11.房东管理模…

论文浅尝 | 利用关系路径的混合语义进行知识图的多跳问答

笔记整理&#xff1a;金龙&#xff0c;浙江大学硕士&#xff0c;研究方向知识图谱 链接&#xff1a;https://aclanthology.org/2022.coling-1.156/ 动机 知识图谱上回答自然语言问题(KGQA)仍然多跳推理面临的一个巨大的挑战。以前的方法通常是利用大规模的实体相关文本体或知识…

MAC移动硬盘无法正常推出:“磁盘无法推出,因为一个或多个程序正在使用它”

MAC移动硬盘在使用中&#xff0c;经常会碰到无法正常退出的情况&#xff0c;提示&#xff1a;“磁盘无法推出&#xff0c;因为一个或多个程序正在使用它”&#xff0c;如果你“直接拔掉”或“强行推出”的话&#xff0c;可能导致你下次重新连接移动硬盘无法识别。&#xff08;参…

[python] 协程学习从0到1,配合案例,彻底理解协程,耗费资源不增加,效果接近多线程

文章目录 前言1.python 生成器1.1 python 生成器概述1.2 关键字yield/yield from1.3 next/send函数1.4 StopInteration异常1.5 利用生成器实现生产者-消费者模型1.6 生成器和协程的关系 2.生成器协程调度器3.python事件驱动编程4.实现协程调度器5.python 协程生态 前言 多进程…

代码随想录算法训练营第二十九天 | 递增子序列(新的树层去重)、排列、排列中树枝树层去重

491.递增子序列 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;回溯算法精讲&#xff0c;树层去重与树枝去重 | LeetCode&#xff1a;491.递增子序列_哔哩哔哩_bilibili 状态&#xff1a;能直接写出来。不过还是要再看一遍&#xff0c;因为是新的去…

行人重识别(REID)——原理方法

行人重识别&#xff1a;短时 类内差异增大&#xff0c;类间差异减小 应用——行人跟踪 单摄像头单目标单摄像头多目标多摄像头多目标 行人重识别系统 特征提取 学习能够应对在不同摄像头下行人变化的特征 度量学习 将学习到的特征映射到新的空间使相同的人更近&#xff0c…