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

自托管产品

MST

旧版 API (自 TimescaleDB v2.18.0) 已由 ALTER TABLE (Hypercore) 替代。

'ALTER TABLE' 语句用于开启压缩并设置压缩选项。

ALTER 语句本身并不会压缩超表。要进行压缩,您可以使用 add_compression_policy 函数创建压缩策略,或使用 compress_chunk 函数手动压缩特定的超表数据块。

语法如下

ALTER TABLE <table_name> SET (timescaledb.compress,
timescaledb.compress_orderby = '<column_name> [ASC | DESC] [ NULLS { FIRST | LAST } ] [, ...]',
timescaledb.compress_segmentby = '<column_name> [, ...]',
timescaledb.compress_chunk_time_interval='interval'
);
名称类型描述
timescaledb.compress布尔型启用或禁用压缩
名称类型描述
timescaledb.compress_orderby文本压缩使用的排序方式,与 SELECT 查询中的 ORDER BY 子句指定方式相同。默认值是超表时间列的降序。
timescaledb.compress_segmentby文本用于对压缩分段进行键控的列列表。通常,表示数据源的标识符(例如 device_idtags_id)是很好的选择。默认情况下,没有 segment by 列。
timescaledb.compress_chunk_time_interval文本实验性:设置用于合并数据块的压缩数据块时间间隔。此参数会压缩每个数据块,如果可能,会将其不可逆地合并到先前的相邻数据块中,以减少超表中的数据块总数。请注意,在解压缩期间,数据块不会被拆分。它应设置为当前数据块间隔的倍数。此选项可以独立于其他压缩设置进行更改,并且不需要 timescaledb.compress 参数。
名称类型描述
table_name文本支持压缩的超表
column_name文本用于排序或分段的列
interval文本用于合并压缩数据块的时间间隔

配置一个摄取设备数据以使用压缩的超表。在此,如果超表经常查询特定设备或设备集,则应使用 device_id 进行分段压缩以获得更高性能。

ALTER TABLE metrics SET (timescaledb.compress, timescaledb.compress_orderby = 'time DESC', timescaledb.compress_segmentby = 'device_id');

您也可以在不更改其他压缩设置的情况下指定压缩数据块间隔

ALTER TABLE metrics SET (timescaledb.compress_chunk_time_interval = '24 hours');

要禁用先前设置的选项,请将间隔设置为 0

ALTER TABLE metrics SET (timescaledb.compress_chunk_time_interval = '0');

关键词

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