本篇文章暂未完成
在上一篇文章《InfluxDB存储引擎—— TSM文件与数据写入》中,对数据写入流程和数据文件的结构进行了介绍,再了解了数据写入流程和TSM文件结构之后,我们知道数据在磁盘是按时间、按数据源、按列存储的,在这样的存储结构上,读取数据的流程是怎样的呢?采用了哪些数据结构或文件来提升查询的效率呢?这就是本篇文章要讲的内容。
目录
数据读取流程
时序数据最常见的查询场景有两个:按时间维度查询 和按数据源维度查询。如何提高这两个场景的查询效率是每种时序数据库都要充分考虑的问题。
结合之前的文章中所提到的数据写入流程和存储结构,我们很容易了解到InfluxDB中,如果能根据查询条件确定数据所属的时间范围和series(即所属数据源的唯一标识),即可大量减少数据扫描的范围,从而提高性能。InfluxDB正是通过这样的方式来提高查询数据的效率。
假设在如下图的场景中,需要查询atlalsdata发布在baidu的所有广告2018年8月份的pc端的总点击量:
查询语句:
select sum(pc) from advertise
where publisher=‘atlasdata’ and platform = ‘baidu’
and time>='2018-08-01' and time <'2018-09-01'
数据读取的流程:
第一步:找出atlasdata发布在baidu的所有广告的seriesKey</