时序数据库 QuestDB 特性解析

2022-03-22 00:00:00 数据 文件 时序 分区 写入

QuestDB 是一款针对时序数据实时处理优化的关系型列存数据库。

存储模型

QuestDB 采用列存(column-based)存储模型,表里的数据按列存储到不同的文件,每次新的写入数据追加到文件末尾,保持跟写入顺序一致。

追加模型

QuestDB 采用列存模型,每个列存储到不同的文件,文件通过 mmap 方式映射到内存,每次写入直接在映射内存大末尾追加数据,非常高效,对于定长类型列,通过行号就能固定定位到数据位置;针对变长类型列,每个列除了对应一个数据文件,还要对应一个索引文件,索引文件的记录为定长,指向各个记录在数据文件的位置。

CREATE TABLE IF NOT EXISTS trades(name STRING, value INT);
INSERT INTO trades VALUES('abc', 123456);

$tree trades
.
├── default
│   ├── name.d
│   ├── name.i
│   └── value.d
├── _meta
└── _txn

相关文章