重新压缩在压缩后插入了更多数据的压缩数据块。
recompress_chunk(chunk REGCLASS,if_not_compressed BOOLEAN = false)
您还可以通过运行与您的压缩策略关联的作业来重新压缩数据块。recompress_chunk
通过允许您定位特定数据块,为您提供更精细的控制。
重要提示
recompress_chunk
自 2.14 版本起已弃用,并将在未来版本中移除。此过程现在是一个包装器,它调用 compress_chunk
而不是自身。
重要提示
recompress_chunk
被实现为一个 SQL 过程,而不是一个函数。使用 CALL
调用该过程。不要使用 SELECT
语句。
注意
recompress_chunk
仅适用于以前压缩过的数据块。要首次压缩数据块,请使用 compress_chunk
。
名称 | 类型 | 描述 |
---|---|---|
chunk | REGCLASS | 要重新压缩的数据块。必须包含模式,例如 _timescaledb_internal ,如果它不在搜索路径中。 |
名称 | 类型 | 描述 |
---|---|---|
if_not_compressed | BOOLEAN | 如果为 true ,则在数据块已压缩时打印通知而不是报错。默认为 false 。 |
重新压缩数据块 timescaledb_internal._hyper_1_2_chunk
CALL recompress_chunk('_timescaledb_internal._hyper_1_2_chunk');
在 TimescaleDB 2.6.0 及更高版本中,recompress_chunk
被实现为一个过程。 之前,它被实现为一个函数。如果您正在升级到 TimescaleDB 2.6.0 或更高版本,recompress_chunk
函数可能会导致错误。例如,尝试运行 SELECT recompress_chunk(i.show_chunks, true) FROM...
会给出以下错误
ERROR: recompress_chunk(regclass, boolean) is a procedure
要修复此错误,请使用 CALL
而不是 SELECT
。您可能还需要编写一个过程来替换您的 SELECT
语句中的全部功能。例如
DO $$DECLARE chunk regclass;BEGINFOR chunk IN SELECT format('%I.%I', chunk_schema, chunk_name)::regclassFROM timescaledb_information.chunksWHERE is_compressed = trueLOOPRAISE NOTICE 'Recompressing %', chunk::text;CALL recompress_chunk(chunk, true);END LOOP;END$$;
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。