Timescale Cloud:性能、扩展性、企业级
自托管产品
MST
为超表启用列式存储。
启用列式存储后,您可以选择
- add_columnstore_policy:创建一个 作业,以特定的时间间隔自动将超表中的数据块移动到列式存储中。
- convert_to_columnstore:手动将超表中的特定数据块添加到列式存储中。
启用列式存储
配置一个超表,使其能够摄取设备数据并使用列式存储:
在此示例中,`metrics` 超表通常会查询特定设备或设备组的相关数据。通过 `device_id` 对超表进行分段可以提高查询性能。
ALTER TABLE metrics SET(timescaledb.enable_columnstore,timescaledb.orderby = 'time DESC',timescaledb.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');
对您添加到列式存储中的所有数据启用二级索引 抢先体验:TimescaleDB v2.18.0
alter table metricsset access method hypercore,set (timescaledb.compress_orderby = 'created_at',timescaledb.compress_segmentby = 'location_id');对您添加到列式存储中的数据块启用二级索引 抢先体验:TimescaleDB v2.18.0
alter table _timescaledb_internal._hyper_1_21_chunkset access method hypercore;
语法为
ALTER TABLE <table_name> SET (timescaledb.enable_columnstore,timescaledb.orderby = '<column_name> [ASC | DESC] [ NULLS { FIRST | LAST } ] [, ...]',timescaledb.segmentby = '<column_name> [, ...]',timescaledb.compress_chunk_time_interval='interval',SET ACCESS METHOD { new_access_method | DEFAULT },ALTER <column name> SET NOT NULL,ADD CONSTRAINT <constraint_name> UNIQUE (<column name>, ... ));
名称 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
table_name | TEXT | - | ✖ | 要为其启用列式存储的超表。 |
timescaledb.enable_columnstore | BOOLEAN | true | ✖ | 启用列式存储。 |
timescaledb.orderby | TEXT | 按 `table_name` 中时间列的降序排列。 | ✖ | 列式存储中项目的使用顺序。与 `SELECT` 查询中的 `ORDER BY` 子句的指定方式相同。 |
timescaledb.segmentby | TEXT | 不按列分段。 | ✖ | 设置用于在 `table` 的列式存储中对数据进行分段的列列表。通常,表示数据源的标识符,例如 `device_id` 或 `tags_id`,是一个很好的选择。 |
column_name | TEXT | - | ✖ | 用于 `orderby` 或 `segmentby` 的列名。 |
timescaledb.compress_chunk_time_interval | TEXT | - | ✖ | 实验性功能:减少 `table` 的列式存储中的数据块总数。如果您设置 `compress_chunk_time_interval`,添加到列式存储的数据块将尽可能地与 `chunk_time_interval` 内的相邻前一个数据块合并。这些数据块是不可逆合并的。如果您调用 convert_to_rowstore,合并的数据块不会被拆分。您可以独立于其他压缩设置调用 `compress_chunk_time_interval`;不需要 `timescaledb.enable_columnstore`。 |
间隔 | TEXT | - | ✖ | 设置为 `table` 的 chunk_time_interval 的倍数。 |
设置访问方法 | TEXT | 默认 (堆表 | ✖ | 要在列式存储上启用索引,在您 创建超表 后将其设置为 `hypercore`。抢先体验:TimescaleDB v2.18.0 |
ALTER | TEXT | ✖ | 设置列式存储中的特定列为 NOT NULL。 | |
ADD CONSTRAINT | TEXT | ✖ | 为列式存储中的数据添加 UNIQUE 约束。 |
关键词