为何Apache IoTDB 0.12.4需加order by time desc才返回数据?
Apache IoTDB 0.12.4查询异常原因分析
- 默认查询逻辑的局限性:不带排序的
select * from root.kantian.data.SKY_C3.442C05954CE7语句,默认按时间正序(order by time asc)查询。在0.12.4版本中,正序查询会优先扫描已完成合并的历史TsFile,而刚写入数据的**活跃TsFile(未触发合并的文件)**不会被正序遍历逻辑覆盖,所以查不到数据。 - 倒序查询的逻辑优势:添加
order by time desc limit 10后,查询会优先扫描最新的活跃TsFile(因为要取时间最晚的数据),直接读取到未合并文件里的内容,所以能正常返回结果。 - 版本特性问题:这是0.12.4版本的已知问题,后续的0.13及以上版本已经修复了这个查询逻辑漏洞,优化了文件遍历规则,不管正序还是倒序查询都能覆盖所有有效存储文件。
内容的提问来源于stack exchange,提问作者shuww
相关产品推荐
相关产品推荐

