在工作中,使用postgresql数据库 尤其是timescaledb 时序库往往会遇到一些问题:
甲方提供的内存不足,只能保留部分数据,
或者储存的的数据量太大
这个 时候我们就需要对数据压缩了
在timescaledb 时序库 有专门的函数 api compress_chunk() 用来压缩超级表
compress_chunk函数用于压缩特定的块。当用户想要更多地控制压缩调度时,最常用这个函数来代替add_compression_policy函数
必选参数
Name | Description |
---|---|
chunk_name | 要压缩的块的名称 |
可选参数
Name | Description |
---|---|
if_not_compressed | 设置为true将跳过已经压缩的块。默认值为false。 |
CREATE OR REPLACE FUNCTION "hrmw"."compress_chunk"("uncompressed_chunk" regclass, "if_not_compressed" bool=false)
RETURNS "pg_catalog"."regclass" AS '$libdir/timescaledb-1.7.1', 'ts_compress_chunk'
LANGUAGE c VOLATILE STRICT
COST 1
一般在 timescaledb 时序库 大量数据的表都是超级表 ,如果不是的建议你改为超表,要不你用 timescaledb 数据库就没有多少意义了
运用 create_hypertable()来把普通表改为超级表
SELECT create_hypertable('表名_cs', 'alarm_time', chunk_time_interval => INTERVAL '7 day');
如果有啥不懂的话,可以参考postgresql数据库 timescaledb 时序库 把大数据量表转换为超表这篇文章
ALTER TABLE 模式名.表名 SET (
timescaledb.compress,
timescaledb.compress_segmentby = '字段',
timescaledb.compress_orderby = 'collect_time DESC');
压缩块
SELECT compress_chunk( '_timescaledb_internal._hyper_4_238_chunk');
SELECT decompress_chunk('_timescaledb_internal._hyper_4_26_chunk');
SELECT * FROM timescaledb_information.compressed_chunk_stats;
如果有啥问题 欢迎指出,谢谢。
项目中用到的一些特殊字符和图标 html代码 XML/HTML Code 复制内容到剪贴板 div ...
Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特...
4月11日20:30~22:00通过腾讯会议进行了第二次在线学习讨论我把学习笔记整理一下...
复制代码 代码如下: % URL="http://news.163.com/special/00011K6L/rss_newstop....
上篇文章给大家介绍了 Java正则表达式匹配,替换,查找,切割的方法 ,接下来,...
本文实例讲述了Laravel框架源码解析之反射的使用。分享给大家供大家参考,具体如...
工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。...
错误描述: 在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报...
DELETEFROMTablesWHEREIDNOTIN(SELECTMin(ID)FROMTablesGROUPBYName) Min的话保...
正则忽略大小写 – RegexOptions.IgnoreCase 例如: 复制代码 代码如下: Str = R...