运维语句

1. 状态查看

1.1 查看集群版本

含义:返回当前集群的版本。

语法:

1. showVersionStatement
2. : SHOW VERSION
3. ;

示例:

1. IoTDB> SHOW VERSION

执行结果如下:

1. +-------+-----------+
2. |Version|  BuildInfo|
3. +-------+-----------+
4. |1.3.4.1|e5334cf-dev|
5. +-------+-----------+

1.2 查看集群关键参数

含义:返回当前集群的关键参数。

语法:

1. showVariablesStatement
2. : SHOW VARIABLES
3. ;

关键参数如下:

  1. ClusterName:当前集群的名称。
  2. DataReplicationFactor:数据副本的数量,表示每个数据分区(DataRegion)的副本数。
  3. SchemaReplicationFactor:元数据副本的数量,表示每个元数据分区(SchemaRegion)的副本数。
  4. DataRegionConsensusProtocolClass:数据分区(DataRegion)使用的共识协议类。
  5. SchemaRegionConsensusProtocolClass:元数据分区(SchemaRegion)使用的共识协议类。
  6. ConfigNodeConsensusProtocolClass:配置节点(ConfigNode)使用的共识协议类。
  7. TimePartitionOrigin:数据库时间分区的起始时间戳。
  8. TimePartitionInterval:数据库的时间分区间隔(单位:毫秒)。
  9. ReadConsistencyLevel:读取操作的一致性级别。
  10. SchemaRegionPerDataNode:数据节点(DataNode)上的元数据分区(SchemaRegion)数量。
  11. DataRegionPerDataNode:数据节点(DataNode)上的数据分区(DataRegion)数量。
  12. SeriesSlotNum:数据分区(DataRegion)的序列槽(SeriesSlot)数量。
  13. SeriesSlotExecutorClass:序列槽的实现类。
  14. DiskSpaceWarningThreshold:磁盘空间告警阈值(单位:百分比)。
  15. TimestampPrecision:时间戳精度。

示例:

1. IoTDB> SHOW VARIABLES

执行结果如下:

1. +----------------------------------+-----------------------------------------------------------------+
2. |                          Variable|                                                            Value|
3. +----------------------------------+-----------------------------------------------------------------+
4. |                       ClusterName|                                                   defaultCluster|
5. |             DataReplicationFactor|                                                                1|
6. |           SchemaReplicationFactor|                                                                1|
7. |  DataRegionConsensusProtocolClass|                      org.apache.iotdb.consensus.iot.IoTConsensus|
8. |SchemaRegionConsensusProtocolClass|                  org.apache.iotdb.consensus.ratis.RatisConsensus|
9. |  ConfigNodeConsensusProtocolClass|                  org.apache.iotdb.consensus.ratis.RatisConsensus|
10. |               TimePartitionOrigin|                                                                0|
11. |             TimePartitionInterval|                                                        604800000|
12. |              ReadConsistencyLevel|                                                           strong|
13. |           SchemaRegionPerDataNode|                                                                1|
14. |             DataRegionPerDataNode|                                                                0|
15. |                     SeriesSlotNum|                                                             1000|
16. |           SeriesSlotExecutorClass|org.apache.iotdb.commons.partition.executor.hash.BKDRHashExecutor|
17. |         DiskSpaceWarningThreshold|                                                             0.05|
18. |                TimestampPrecision|                                                               ms|
19. +----------------------------------+-----------------------------------------------------------------+

1.3 查看数据库当前时间

语法:

含义:返回数据库当前时间。

1. showCurrentTimestampStatement
2. : SHOW CURRENT_TIMESTAMP
3. ;

示例:

1. IoTDB> SHOW CURRENT_TIMESTAMP

执行结果如下:

1. +-----------------------------+
2. |             CurrentTimestamp|
3. +-----------------------------+
4. |2025-02-17T11:11:52.987+08:00|
5. +-----------------------------+

1.4 查看正在执行的查询信息

含义:用于显示所有正在执行的查询信息。

语法:

1. showQueriesStatement
2. : SHOW (QUERIES | QUERY PROCESSLIST)
3. (WHERE where=booleanExpression)?
4. (ORDER BY sortItem (',' sortItem)*)?
5. limitOffsetClause
6. ;

参数解释:

  1. WHERE 子句:需保证过滤的目标列是结果集中存在的列
  2. ORDER BY 子句:需保证sortKey是结果集中存在的列
  3. limitOffsetClause:
  4. 含义:用于限制结果集的返回数量。
  5. 格式:LIMIT <offset>, <row_count>, <offset> 是偏移量,<row_count> 是返回的行数。
  6. QUERIES 表中的列:
  7. time:查询开始的时间戳,时间戳精度与系统精度一致
  8. queryid:查询语句的 ID
  9. datanodeid:发起查询语句的 DataNode 的ID
  10. elapsedtime:查询的执行耗时,单位是秒
  11. statement:查询的 SQL 语句

示例:

1. IoTDB> SHOW QUERIES WHERE elapsedtime > 0.003

执行结果如下:

1. +-----------------------------+-----------------------+----------+-----------+--------------------------------------+
2. |                         Time|                QueryId|DataNodeId|ElapsedTime|                             Statement|
3. +-----------------------------+-----------------------+----------+-----------+--------------------------------------+
4. |2025-05-09T15:16:01.293+08:00|20250509_071601_00015_1|         1|      0.006|SHOW QUERIES WHERE elapsedtime > 0.003|
5. +-----------------------------+-----------------------+----------+-----------+--------------------------------------+

1.5 查看分区信息

含义:返回当前集群的分区信息。

语法:

1. showRegionsStatement
2. : SHOW REGIONS
3. ;

示例:

1. IoTDB> SHOW REGIONS

执行结果如下:

1. +--------+------------+-------+-------------+-------------+-----------+----------+----------+-------+---------------+------+-----------------------+----------+
2. |RegionId|        Type| Status|     Database|SeriesSlotNum|TimeSlotNum|DataNodeId|RpcAddress|RpcPort|InternalAddress|  Role|             CreateTime|TsFileSize|
3. +--------+------------+-------+-------------+-------------+-----------+----------+----------+-------+---------------+------+-----------------------+----------+
4. |       9|SchemaRegion|Running|root.__system|           21|          0|         1|   0.0.0.0|   6667|      127.0.0.1|Leader|2025-08-01T17:37:01.555|          |
5. |      10|  DataRegion|Running|root.__system|           21|         21|         1|   0.0.0.0|   6667|      127.0.0.1|Leader|2025-08-01T17:37:01.556|   8.27 KB|
6. |      65|SchemaRegion|Running|      root.ln|            1|          0|         1|   0.0.0.0|   6667|      127.0.0.1|Leader|2025-08-25T14:46:50.113|          |
7. |      66|  DataRegion|Running|      root.ln|            1|          1|         1|   0.0.0.0|   6667|      127.0.0.1|Leader|2025-08-25T14:46:50.425|     524 B|
8. +--------+------------+-------+-------------+-------------+-----------+----------+----------+-------+---------------+------+-----------------------+----------+

2. 状态设置

2.1 更新配置项

含义:用于更新配置项,执行完成后会进行配置项的热加载,对于支持热修改的配置项会立即生效。

语法:

1. setConfigurationStatement
2. : SET CONFIGURATION propertyAssignments (ON INTEGER_VALUE)?
3. ;

5. propertyAssignments
6. : property (',' property)*
7. ;

9. property
10. : identifier EQ propertyValue
11. ;

13. propertyValue
14. : DEFAULT
15. | expression
16. ;

参数解释:

  1. propertyAssignments
  2. 含义:更新的配置列表,由多个 property 组成。
  3. 可以更新多个配置列表,用逗号分隔。
  4. 取值:
    • DEFAULT:将配置项恢复为默认值。
    • expression:具体的值,必须是一个字符串。
  5. ON INTEGER_VALUE
  6. 含义:指定要更新配置的节点 ID。
  7. 可选性:可选。如果不指定或指定的值低于 0,则更新所有 ConfigNode 和 DataNode 的配置。

示例:

1. IoTDB> SET CONFIGURATION 'disk_space_warning_threshold'='0.05','heartbeat_interval_in_ms'='1000' ON 1;

2.2 读取手动修改的配置文件

含义:用于读取手动修改过的配置文件,并对配置项进行热加载,对于支持热修改的配置项会立即生效。

语法:

1. loadConfigurationStatement
2. : LOAD CONFIGURATION localOrClusterMode?
3. ;

5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;

参数解释:

  1. localOrClusterMode
  2. 含义:指定配置热加载的范围。
  3. 可选性:可选。默认值为 CLUSTER。
  4. 取值:
    • LOCAL:只对客户端直连的 DataNode 进行配置热加载。
    • CLUSTER:对集群中所有 DataNode 进行配置热加载。

示例:

1. IoTDB> LOAD CONFIGURATION ON LOCAL;

2.3 设置系统的状态

含义:用于设置系统的状态。

语法:

1. setSystemStatusStatement
2. : SET SYSTEM TO (READONLY | RUNNING) localOrClusterMode?
3. ;

5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;

参数解释:

  1. RUNNING | READONLY
  2. 含义:指定系统的新状态。
  3. 取值:
    • RUNNING:将系统设置为运行状态,允许读写操作。
    • READONLY:将系统设置为只读状态,只允许读取操作,禁止写入操作。
  4. localOrClusterMode
  5. 含义:指定状态变更的范围。
  6. 可选性:可选。默认值为 CLUSTER。
  7. 取值:
    • LOCAL:仅对客户端直连的 DataNode 生效。
    • CLUSTER:对集群中所有 DataNode 生效。

示例:

1. IoTDB> SET SYSTEM TO READONLY ON CLUSTER;

3. 数据管理

3.1 刷写内存表中的数据到磁盘

含义:将内存表中的数据刷写到磁盘上。

语法:

1. flushStatement
2. : FLUSH identifier? (',' identifier)* booleanValue? localOrClusterMode?
3. ;

5. booleanValue
6. : TRUE | FALSE
7. ;

9. localOrClusterMode
10. : (ON (LOCAL | CLUSTER))
11. ;

参数解释:

  1. identifier
  2. 含义:指定要刷写的数据库名称。
  3. 可选性:可选。如果不指定,则默认刷写所有数据库。
  4. 多个数据库:可以指定多个数据库名称,用逗号分隔。例如:FLUSH root.ln, root.lnm。
  5. booleanValue
  6. 含义:指定刷写的内容。
  7. 可选性:可选。如果不指定,则默认刷写顺序和乱序空间的内存。
  8. 取值:
    • TRUE:只刷写顺序空间的内存表。
    • FALSE:只刷写乱序空间的MemTable。
  9. localOrClusterMode
  10. 含义:指定刷写的范围。
  11. 可选性:可选。默认值为 CLUSTER。
  12. 取值:
    • ON LOCAL:只刷写客户端直连的 DataNode 上的内存表。
    • ON CLUSTER:刷写集群中所有 DataNode 上的内存表。

示例:

1. IoTDB> FLUSH root.ln TRUE ON LOCAL;

4. 数据修复

4.1 启动后台扫描并修复 tsfile 任务

含义:启动一个后台任务,开始扫描并修复 tsfile,能够修复数据文件内的时间戳乱序类异常。

语法:

1. startRepairDataStatement
2. : START REPAIR DATA localOrClusterMode?
3. ;

5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;

参数解释:

  1. localOrClusterMode
  2. 含义:指定数据修复的范围。
  3. 可选性:可选。默认值为 CLUSTER。
  4. 取值:
    • ON LOCAL:仅对客户端直连的 DataNode 执行。
    • ON CLUSTER:对集群中所有 DataNode 执行。

示例:

1. IoTDB> START REPAIR DATA ON CLUSTER;

4.2 暂停后台修复 tsfile 任务

含义:暂停后台的修复任务,暂停中的任务可通过再次执行 start repair data 命令恢复。

语法:

1. stopRepairDataStatement
2. : STOP REPAIR DATA localOrClusterMode?
3. ;

5. localOrClusterMode
6. : (ON (LOCAL | CLUSTER))
7. ;

参数解释:

  1. localOrClusterMode
  2. 含义:指定数据修复的范围。
  3. 可选性:可选。默认值为 CLUSTER。
  4. 取值:
    • ON LOCAL:仅对客户端直连的 DataNode 执行。
    • ON CLUSTER:对集群中所有 DataNode 执行。

示例:

1. IoTDB> STOP REPAIR DATA ON CLUSTER;

5. 副本修复

该功能从 V1.3.6 起支持传入 regionId list ,一次处理多个 region。

5.1 手动扩容

含义:将指定 Region 扩容到指定 DataNode 上。

语法:

1. extendRegionStatement
2. : EXTEND REGION <region_id>(, <region_id>)* TO <data_node_id>
3. ;

示例:

1. IoTDB> EXTEND REGION 1,2,3 TO 3;

5.2 手动缩容

含义:从指定 DataNode 上移除指定 Region。

注意:手动缩容至多将副本数缩减至 1 ,不能缩减至 0 。

语法:

1. removeRegionStatement
2. : REMOVE REGION <region_id>(, <region_id>)* FROM <data_node_id>
3. ;

示例:

1. IoTDB> REMOVE REGION 1,2,3 FROM 2;

6. 终止查询

6.1 主动终止查询

含义:使用该命令主动地终止查询。

语法:

1. killQueryStatement
2. : KILL (QUERY queryId=string | ALL QUERIES)
3. ;

参数解释:

  1. QUERY queryId=string
  2. 含义:指定要终止的查询的 ID。 <queryId> 是正在执行的查询的唯一标识符。
  3. 获取查询 ID:可以通过 SHOW QUERIES 命令获取所有正在执行的查询及其 ID。
  4. ALL QUERIES
  5. 含义:终止所有正在执行的查询。

示例:

通过指定 queryId 可以中止指定的查询,为了获取正在执行的查询 id,用户可以使用 show queries 命令,该命令将显示所有正在执行的查询列表。

1. IoTDB> KILL QUERY 20250108_101015_00000_1; -- 终止指定query
2. IoTDB> KILL ALL QUERIES; -- 终止所有query