FLUSH

将存储组的内存表中的所有数据点保存到磁盘,并密封数据文件。

客户端不需要手动调用此命令。IoTDB有WAL来确保数据安全,IoTDB会在适当的时候刷新。频繁调用刷新可能会导致生成降低查询性能的小型数据文件。

IoTDB> FLUSH 
IoTDB> FLUSH root.ln
IoTDB> FLUSH root.sg1,root.sg2

MERGE

合并序列和取消序列数据。目前 IoTDB 支持以下两种类型的 SQL 手动触发数据文件的合并过程:

  • MERGE只重写重叠的块,合并速度很快,而磁盘上最终会有冗余数据。
  • FULL MERGE重写重叠文件中的所有数据,合并速度较慢,但最终磁盘上不会有冗余数据。
IoTDB> MERGE
IoTDB> FULL MERGE

清除缓存

清除区块、区块元数据和时间序列元数据的缓存以释放内存占用量。

IoTDB> CLEAR CACHE

将 STSTEM 设置为只读/可写

手动将 IoTDB 系统设置为只读或可写模式。

IoTDB> SET SYSTEM TO READONLY
IoTDB> SET SYSTEM TO WRITABLE

架构快照

为了加快 IoTDB 的重启速度,用户可以创建架构快照并避免从 mlog 文件中恢复架构。

IoTDB> CREATE SNAPSHOT FOR SCHEMA

终止查询

使用IoTDB时,可能会遇到以下情况:您输入了查询语句,但长时间无法得到结果,因为该查询包含的数据过多或其他一些原因,必须等到查询结束。从0.12版本开始,IoTDB针对执行时间较长的查询提供了两种解决方案:查询超时和查询中止。

查询超时

对于执行时间过长的查询,IoTDB 会强制中断查询并抛出超时异常,如图所示:

IoTDB> select * from root;
Msg: 701 Current query is time out, please check your statement or modify timeout parameter.

系统默认超时为60000ms,可通过参数在配置文件中自定义。query_timeout_threshold

如果您使用 JDBC 或 Session,我们还支持为单个查询设置超时(单位:毫秒):

((IoTDBStatement) statement).executeQuery(String sql, long timeoutInMS)
session.executeQueryStatement(String sql, long timeout)

如果未配置超时参数或值为 0,则将使用默认超时时间。

查询中止

除了被动等待查询超时外,IoTDB 还支持主动停止查询:

KILL QUERY <queryId>

可以通过指定 来中止指定的查询。如果未指定,则将终止所有正在执行的查询。queryIdqueryId

要获取执行,您可以使用命令,该命令将显示所有正在执行的查询的列表,并具有以下结果集:queryIdshow query processlist

时间

查询标识

陈述

语句的最大显示长度为 64 个字符。对于超过 64 个字符的语句,将显示截获的部分。