Timescale Cloud:性能、扩展、企业级
自托管产品
MST
创建一个基于单个维度分区的超表,并启用列式存储,或创建标准的 PostgreSQL 关系表。
超表是一种特殊的 PostgreSQL 表,它根据时间自动对数据进行分区。所有适用于 PostgreSQL 表的操作都适用于超表。例如,ALTER TABLE 和 SELECT" width="16" height="16" class="inline m-0 ml-1">。
超表到超表的外键是不允许的,所有其他组合都是允许的。
随着数据逐渐冷却并更适合分析,添加列式存储策略,以便您的数据在特定时间间隔后自动转换为列式存储。这种列式格式可实现快速扫描和聚合,优化分析工作负载的性能,同时节省大量存储空间。在列式存储转换中,超表分块的压缩率超过 90%,并经过组织以实现高效的大规模查询。这种列式格式可实现快速扫描和聚合,优化分析工作负载的性能。您还可以手动将超表中的分块转换为列式存储。
默认情况下,超表是按时间维度分区的。要向超表添加次要维度,请调用 add_dimension。
要将现有关系表转换为超表,请调用 create_hypertable。
CREATE TABLE
扩展了标准 PostgreSQL 的 CREATE TABLE" width="16" height="16" class="inline m-0 ml-1"> 命令。本页面解释了 TimescaleDB 特有的功能和参数。
创建一个按时间维度分区并启用列式存储的超表
创建超表
CREATE TABLE crypto_ticks ("time" TIMESTAMPTZ,symbol TEXT,price DOUBLE PRECISION,day_volume NUMERIC) WITH (tsdb.hypertable,tsdb.partition_column='time',tsdb.segmentby='symbol',tsdb.orderby='time DESC');通过添加列式存储策略启用 Hypercore
CALL add_columnstore_policy('crypto_ticks', after => INTERVAL '1d');
创建一个按时间分区、基于时间间隔减少分块数量的超表
CREATE TABLE IF NOT EXISTS hypertable_control_chunk_interval(time int4 NOT NULL,device text,value float) WITH (tsdb.hypertable,tsdb.partition_column='time',tsdb.chunk_interval=3453);创建 PostgreSQL 关系表
CREATE TABLE IF NOT EXISTS relational_table(device text,value float);
语法是
CREATE TABLE <table_name> (-- Standard PostgreSQL syntax for CREATE TABLE)WITH (tsdb.hypertable = true | falsetsdb.partition_column = '<column_name> ',tsdb.chunk_interval = '<interval>'tsdb.create_default_indexes = true | falsetsdb.associated_schema = '<schema_name>',tsdb.associated_table_prefix = '<prefix>'tsdb.orderby = '<column_name> [ASC | DESC] [ NULLS { FIRST | LAST } ] [, ...]',tsdb.segmentby = '<column_name> [, ...]',)
名称 | 类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
tsdb.hypertable | BOOLEAN | true | ✖ | 为时序数据创建一个新的超表,而不是一个标准的 PostgreSQL 关系表。 |
tsdb.partition_column | TEXT | true | ✖ | 设置时间列以自动分区您的时序数据。 |
tsdb.chunk_interval | TEXT | 7 天 | ✖ | 更改此值以更好地满足您的需求。例如,如果您将 chunk_interval 设置为 1 天,则每个分块存储同一天的数据。不同天的数据存储在不同的分块中。 |
tsdb.create_default_indexes | BOOLEAN | true | ✖ | 设置为 false 则不自动创建索引。默认索引包括
|
tsdb.associated_schema | REGCLASS | _timescaledb_internal | ✖ | 设置内部超表表的模式名称。 |
tsdb.associated_table_prefix | TEXT | _hyper | ✖ | 设置内部超表分块名称的前缀。 |
tsdb.orderby | TEXT | table_name 中时间列的降序。 | ✖ | 列式存储中使用项目的顺序。以与 SELECT 查询中的 ORDER BY 子句相同的方式指定。 |
tsdb.segmentby | TEXT | 不按列分段。 | ✖ | 设置用于在 table 的列式存储中分段数据的列列表。通常,表示数据源的标识符(例如 device_id 或 tags_id )是一个很好的选择。 |
TimescaleDB 返回一条简单的消息,指示成功或失败。
关键词
本页面有问题?报告问题" width="16" height="16" class="inline m-0 ml-1"> 或在 GitHub 上编辑此页面
。