'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 | BOOLEAN | 启用或禁用压缩 |
名称 | 类型 | 描述 |
---|---|---|
timescaledb.compress_orderby | TEXT | 压缩使用的排序,指定方式与 SELECT 查询中的 ORDER BY 子句相同。默认值是超表时间列的降序。 |
timescaledb.compress_segmentby | TEXT | 用于对压缩段进行键控的列列表。表示数据源的标识符,例如 device_id 或 tags_id 通常是一个不错的选择。默认情况下,没有 segment by 列。 |
timescaledb.compress_chunk_time_interval | TEXT | 实验性功能:设置用于将数据块滚入的压缩数据块时间间隔。此参数压缩每个数据块,然后尽可能地将其不可逆地合并到先前的相邻数据块中,以减少超表中的数据块总数。请注意,数据块在解压缩期间不会被拆分。它应设置为当前数据块间隔的倍数。此选项可以独立于其他压缩设置进行更改,并且不需要 timescaledb.compress 参数。 |
名称 | 类型 | 描述 |
---|---|---|
table_name | TEXT | 支持压缩的超表 |
column_name | TEXT | 用于排序或分段的列 |
interval | TEXT | 用于将压缩数据块滚入的时间间隔 |
配置一个摄取设备数据的超表以使用压缩。在此示例中,如果经常查询关于特定设备或设备集的超表,则应使用 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 上编辑此页。