Apache IoTDB开发系统之Maintenance Command

举报
小云悠悠zZ 发表于 2023/09/20 11:03:28 2023/09/20
【摘要】 将存储组的内存表中的所有数据点保存到磁盘,并密封数据文件。 客户端不需要手动调用此命令。IoTDB有WAL来确保数据安全,IoTDB会在适当的时候刷新。频繁调用刷新可能会导致生成降低查询性能的小型数据文件。

FLUSH

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

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

  1. IoTDB> FLUSH
  2. IoTDB> FLUSH root.ln
  3. IoTDB> FLUSH root.sg1,root.sg2

FLUSH

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

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

清除缓存

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

  1. IoTDB> CLEAR CACHE

将 STSTEM 设置为只读/可写

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

  1. IoTDB> SET SYSTEM TO READONLY
  2. IoTDB> SET SYSTEM TO WRITABLE

架构快照

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

  1. IoTDB> CREATE SNAPSHOT FOR SCHEMA

终止查询

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

查询超时

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

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

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

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

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

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

查询中止

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

  1. KILL QUERY <queryId>

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

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

时间 查询标识 陈述

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

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。