Timescale Cloud:性能、规模、企业级
自托管产品
MST
Hypercore 是 TimescaleDB 混合行/列存储引擎,专为实时分析设计,并由时序数据提供支持。Hypercore 的优势在于其能够无缝地在行式和列式存储之间切换。这种灵活性使 Timescale Cloud 能够提供两全其美的解决方案,解决实时分析中的关键挑战:
- 高写入吞吐量
- 低延迟写入
- 快速查询性能
- 高效处理数据更新和迟到数据
- 精简数据管理
Hypercore 的混合方法在每个 Timescale Cloud 服务中结合了行式和列式格式的优点:
使用行式存储快速写入:新数据最初写入行式存储,该存储针对高速插入和更新进行了优化。此过程确保实时应用程序轻松处理快速传入的数据流。可变性——upsert、更新和删除无缝发生。
使用列式存储进行高效分析:当数据“冷却”并更适合分析时,它会自动转换为列式存储。这种列式格式可实现快速扫描和聚合,优化分析工作负载的性能,同时显著节省存储空间。
在列式存储中对压缩数据进行更快查询:在列式存储转换中,超表分块的压缩率超过 90%,并为高效、大规模查询进行了组织。结合分块跳过,这有助于您节省存储成本并保持查询以闪电般的速度运行。
快速修改列式存储中的压缩数据:只需使用 SQL 即可在列式存储中添加或修改数据。TimescaleDB 针对超快速 INSERT 和 UPSERT 性能进行了优化。
具有事务语义的完全可变性:无论数据存储在哪里,Hypercore 都提供完整的 ACID 支持。就像在普通的 PostgreSQL 数据库中一样,对行式存储和列式存储的插入和更新始终保持一致,并在完成后立即可用于查询。

使用 Hypercore 的最佳实践是:
启用列式存储
使用 CREATE TABLE 为您的时序数据创建超表。为了在列式存储中的数据上进行高效查询,请记住使用最常用于过滤数据的列进行
segmentby
。例如:- 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');
如果您是自托管 TimescaleDB v2.19.3 及更早版本,请创建PostgreSQL 关系表
,然后使用 create_hypertable 进行转换。之后,通过调用 ALTER TABLE 启用 Hypercore。
对连续聚合使用
ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW assets_candlestick_daily set (timescaledb.enable_columnstore = true,timescaledb.segmentby = 'symbol' );
添加策略以在指定时间间隔后将分块移动到列式存储
例如,数据添加到表后 7 天
CALL add_columnstore_policy('crypto_ticks', after => INTERVAL '7d');查看您设置的策略或已存在的策略
SELECT * FROM timescaledb_information.jobsWHERE proc_name='policy_compression';
您还可以手动调用 convert_to_columnstore 和 convert_to_rowstore 以更精细地控制您的数据。
列式存储中的分块有以下限制:
- 列式存储中的分块不支持
ROW LEVEL SECURITY
。
关键词