数据存储结构

<< Click to Display Table of Contents >>

当前位置:  VooltDB数据集市 > 技术架构 

数据存储结构

复制链接

VooltDB采用经典的表格存储模型,属于结构化数据存储系统。下面分别从面向用户的逻辑数据模型和面向底层存储的物理数据模型进行介绍。

1. 逻辑数据模型

从用户使用角度看,VooltDB的逻辑数据模型与关系型数据库有一定的相似:都采用表用于实际存储数据。与传统关系型数据库不同的是,VooltDB是分布式系统,如何创建分布式表呢?VooltDB的设计是:先在所有Shard的所有副本上创建本地表,本地表只在对应节点内访问;然后再创建一个分布式表,映射到前面创建的本地表,分布式表本身不存储数据。这样用户在访问分布式表时,VooltDB能自动根据集群架构信息,把请求转发给对应的本地表。在通过调度任务把数据抽取到VooltDB时,会自动创建分布式表和本地表,用户无需手动操作。

更直观的,VooltDB中的逻辑数据模型如下:LogicalDataModel

2. 物理存储模型

物理存储模型对应的是数据在磁盘上的组织方式,具体如下:

数据分区:每个分片副本的内部,数据按照一定规则列进行分区,分区以目录的方式管理。如果有打meta或者分组分割,在入集市时会按照打的meta进行分区;否则按照每入一次集市,生成一个分区。

列式存储:每个数据分区内部,采用列式存储,每个列的数据都存储在不同的文件中。

主键索引:若在调度任务设置了主键,则在分区内按主键进行排序后再存储。由于整个分区内部是有序的,VooltDB抽取每个数据块第一行的主键,生成一份稀疏的排序索引,可在查询时结合过滤条件快速裁剪数据块。

PhysicalDataModel