Timescale Cloud:性能、扩展性、企业级

自托管产品

MST

旧 API 自 TimescaleDB v2.18.0 起。此函数已被 [`convert_to_rowstore`](https://docs.timescaledb.cn/api/latest/hypercore/convert_to_rowstore/) 替代。

Timescale 自动支持向压缩块中 INSERT 数据。但是,如果您需要插入大量数据,例如作为批量回填操作的一部分,则应首先解压该块。向压缩块中插入数据的计算成本高于向未压缩块中插入数据的计算成本。这会随着行数的增多而累积。

重要提示

压缩数据可以减少 Timescale 实例的存储空间。但您应始终预留一些额外的存储容量。这使您可以在必要时灵活地解压块,以进行批量插入等操作。

本节介绍用于解压块的命令。您可以按时间过滤以选择要解压的块。

在解压块之前,请停止您正在解压的超表上的所有压缩策略。完成数据回填或更新后,请重新启用该策略。数据库会在下一个计划的作业中自动重新压缩您的块。有关如何使用 alter_job() 函数停止和运行压缩策略的更多信息,请参阅API 参考

有几种选择和解压块的方法。

要按名称解压单个块,请运行此命令

SELECT decompress_chunk('_timescaledb_internal.<chunk_name>');

其中,<chunk_name> 是您要解压的块的名称。

要根据时间范围解压一组块,您可以使用 show_chunks 的输出来解压每个块

SELECT decompress_chunk(c, true)
FROM show_chunks('table_name', older_than, newer_than) c;

有关 decompress_chunk 函数的更多信息,请参阅 decompress_chunk API 参考

如果要使用更精确的匹配约束,例如空间分区,可以构建类似这样的命令

SELECT tableoid::regclass FROM metrics
WHERE time = '2000-01-01' AND device_id = 1
GROUP BY tableoid;
tableoid
------------------------------------------
_timescaledb_internal._hyper_72_37_chunk

关键词

在此页面上发现问题?报告问题 或 编辑此页面 在 GitHub。