Apache IoTDB 数据库(版本 0.11.2)中的 tsfile/数据存储太大

问题描述 投票:0回答:1

我们在场景中使用版本 0.11.2 的 Apache IoTDB 服务器,并观察到数据目录/tsfiles 比应有的大得多(大约 130 个传感器,每个传感器有 400 万个双值,但文件约为 200GB)。

是否存在已知问题,或者您是否有任何想法可能导致此问题以及如何追踪?

我们唯一能想到的可能是一些合并工件,因为我们确实乱序写入了许多数据点,因此合并必须经常发生。

是否有关于如何调试/检查 tsfiles 以了解这里发生的情况的任何想法或工具?

database time-series apache-iotdb iotdb
1个回答
1
投票

这可能是由于压缩策略所致。

您可以通过两种方式解决此问题(不需要同时进行):

(1)升级至0.12.2版本

(2)打开iotdb-engine.properties中的配置:force_full_merge=true

原因是:

0.11.2版本中的无序数据压缩有两种策略。

例如,

序列 TsFile 中的块:[1,3], [4,5]

无序 TsFile 中的块:[2]

(我用[1,3]表示一个Chunk中2个数据点的时间戳)

(1) 当使用完全合并(重写所有数据)时:我们得到一个整齐的序列文件:[1,2,3],[4,5]

(2) 然而,为了加快压缩速度,当我们得到一个序列 TsFile: [1,3],[4,5],[1,2,3] 时,我们默认使用追加合并。在这个TsFile中,[1,3]在File的末尾没有元数据,它是垃圾数据。

因此,如果您经常合并大量无序数据,就会发生这种情况(获得一个非常大的 TsFile)。

新的压缩后,大的 TsFile 将变得整洁。

您还可以使用 TsFileSketchTool 或 example/tsfile/TsFileSequenceRead 查看 TsFile 的结构。

© www.soinside.com 2019 - 2024. All rights reserved.