开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 16 天,点击查看活动详情
生命不息,学习不止
题外话
周五了,昨天的中证上午坐飞机直接上天,下午直接从天上掉到东非大裂谷里面,直接没爬出来,我们在地下看着其他指数满天飞,中证加点油
废话不多说,上货
表引擎
继续表引擎的介绍
- GraphiteMergeTree
今天来演示一下GraphiteMergeTree的工作原理
当使用 GraphiteMergeTree 表引擎时,数据会被组织成一棵树状结构,如下所示
root
├── 2020
│ ├── 01
│ │ ├── 01
│ │ │ ├── 00
│ │ │ │ ├── data_block_1
│ │ │ │ └── data_block_2
│ │ │ ├── 01
│ │ │ │ ├── data_block_3
│ │ │ │ └── data_block_4
│ │ │ └── ...
│ │ ├── 02
│ │ └── ...
│ ├── 02
│ └── ...
├── 2021
└── ...
树的根节点是一个虚拟的节点,表示整个数据集。每个节点都代表一段时间范围的数据,节点包含时间戳和值两个属性。在这个例子中,节点的时间戳表示对应的时间段,如年份、月份、日等。
在每个节点下面会有若干个数据块,每个数据块包含一段时间范围内的原始数据或已经合并过的数据。在每个数据块中,数据按照时间戳进行排序,并且可以按照不同的粒度进行聚合,以便于查询时的高效定位。
当数据块的数量达到一定阈值时,GraphiteMergeTree 表引擎会对相邻的数据块进行合并,生成新的数据块,从而减少数据块的数量和大小。同时,可以设置数据保留策略,自动删除过期的数据,保证数据的时效性。
在查询数据时,GraphiteMergeTree 表引擎会使用树状结构来快速定位需要的数据块。例如,如果查询某个时间范围内的数据,就可以在树状结构中找到相应的节点,然后按照时间戳的顺序查找相应的数据块,最终返回查询结果。
上面的图不好理解也可以参考下面这个
root
|
_______________________________________________________
| | | | | |
2020 2021 2022 2023 2024 2025
| | | | | |
__________ __________ ________ ________ ________ ________
| || || || || || |
01 02 03 04 ... 11 12 01
| | | | | | |
_______ _______ _______ _______ _______ _______ _______
| | | | | | | | | | | | | |
00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00
| | | | | | | | | | | | | |
data data data data data data data data data data data data data data ...
你以为结束了
下一篇我们继续挖坑
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!