Timescale Cloud:性能、规模、企业级

自托管产品

MST

超表专为实时分析而设计,它们是 PostgreSQL 表,可根据时间自动对数据进行分区。通常,您会根据包含时间值的列对超表进行分区。最佳实践是使用 timestamptz 列类型。但是,您也可以根据 dateintegertimestamp 类型进行分区。

要按照本页上的步骤操作

使用 CREATE TABLE 为您的时序数据创建超表。为了高效查询列式存储中的数据,请记住按最常用于筛选数据的列进行 segmentby

CREATE TABLE conditions (
time TIMESTAMPTZ NOT NULL,
location TEXT NOT NULL,
device TEXT NOT NULL,
temperature DOUBLE PRECISION NULL,
humidity DOUBLE PRECISION NULL
) WITH (
tsdb.hypertable,
tsdb.partition_column='time',
tsdb.segmentby = 'device',
tsdb.orderby = 'time DESC'
);

如果您自托管 TimescaleDB v2.19.3 及更低版本,请创建一个PostgreSQL 关系表,然后使用 create_hypertable 进行转换。然后,您可以通过调用 ALTER TABLE 来启用 Hypercore。

要转换现有数据表,请在该表上调用 create_hypertable 并将 migrate_data 设置为 true。但是,如果数据量很大,这可能需要很长时间。有关数据迁移的更多信息,请参阅将数据迁移到 Timescale Cloud

随着数据变冷并更适合分析,[添加列式存储策略][add_columnstore_policy],使您的数据在特定时间间隔后自动转换为列式存储。这种列式格式可实现快速扫描和聚合,优化分析工作负载的性能,同时节省大量存储空间。在列式存储转换中,超表块被压缩超过 90%,并组织成高效的大规模查询。这种列式格式可实现快速扫描和聚合,优化分析工作负载的性能。

要优化数据,请添加列式存储策略

CALL add_columnstore_policy('conditions', after => INTERVAL '1d');

您也可以手动将超表中的块转换为列式存储

您可以使用 PostgreSQL ALTER TABLE 命令更改超表,例如添加列。这适用于常规超表和分布式超表。

您可以使用 ALTER TABLE 命令向超表添加列。在此示例中,超表名为 conditions,新列名为 humidity

ALTER TABLE conditions
ADD COLUMN sunshine DOUBLE PRECISION NULL;

如果您添加的列的默认值设置为 NULL 或没有默认值,则添加列相对较快。如果您将默认值设置为非 NULL 值,则需要更长时间,因为它需要为所有现有行的所有现有块填充此值。

您可以使用 ALTER TABLE 命令更改超表的名称。在此示例中,超表名为 conditions,正在更改为新名称 weather

ALTER TABLE conditions
RENAME TO weather;

使用标准 PostgreSQL DROP TABLE 命令删除超表。

DROP TABLE weather;

属于该超表的所有数据块都将被删除。

关键词

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