Apache IoTDB开发系统之Maintenance Command
FLUSH
将存储组的内存表中的所有数据点保存到磁盘,并密封数据文件。
客户端不需要手动调用此命令。IoTDB有WAL来确保数据安全,IoTDB会在适当的时候刷新。频繁调用刷新可能会导致生成降低查询性能的小型数据文件。
IoTDB> FLUSH
IoTDB> FLUSH root.ln
IoTDB> FLUSH root.sg1,root.sg2
FLUSH
合并序列和取消序列数据。目前 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>
可以通过指定 来中止指定的查询。如果未指定,则将终止所有正在执行的查询。queryId
queryId
要获取执行,您可以使用命令,该命令将显示所有正在执行的查询的列表,并具有以下结果集:queryId
show query processlist
时间 | 查询标识 | 陈述 |
---|---|---|
语句的最大显示长度为 64 个字符。对于超过 64 个字符的语句,将显示截获的部分。
- 点赞
- 收藏
- 关注作者
评论(0)