Timescale Cloud:性能、扩展性、企业级
自托管产品
MST
'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_id 或 tags_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');
关键词