CLEAR SPACE¶
CLEAR SPACE
语句用于清空图空间中的点和边,但不会删除图空间本身以及其中的 Schema 信息。
Note
建议在执行CLEAR SPACE
操作之后,立即执行SUBMIT JOB COMPACT
操作以提升查询性能。需要注意的是,COMPACT 操作可能会影响查询性能,建议在业务低峰期(例如凌晨)执行该操作。
权限要求¶
只有 God 角色的用户可以执行CLEAR SPACE
语句。
注意事项¶
- 数据清除后,如无备份,无法恢复。使用该功能务必谨慎。
CLEAR SPACE
不是原子性操作。如果执行出错,请重新执行,避免残留数据。- 图空间中的数据量越大,
CLEAR SPACE
消耗的时间越长。如果CLEAR SPACE
的执行因客户端连接超时而失败,可以增大 Graph 服务配置中storage_client_timeout_ms
参数的值。 - 在
CLEAR SPACE
的执行过程中,向该图空间写入数据的行为不会被自动禁止。这样的写入行为可能导致CLEAR SPACE
清除数据不完全,残留的数据也可能受到损坏。
Note
社区版 NebulaGraph 不支持在运行CLEAR SPACE
的同时禁止写入。
Enterpriseonly
企业版 NebulaGraph 支持先运行SET VARIABLE read_only=true
阻止向 NebulaGraph 写入数据,再运行CLEAR SPACE
。数据清除成功后运行SET VARIABLE read_only=false
即可重新允许写入。
语法¶
CLEAR SPACE [IF EXISTS] <space_name>;
参数/选项 | 说明 |
---|---|
IF EXISTS |
检查待清空的图空间是否存在,如果图空间存在,则继续执行清空操作;如果图空间不存在,则完成执行,并且提示执行成功,不会提示图空间不存在。若不设置该选项,当图空间不存在时,CLEAR SPACE 语句会执行失败,系统会报错。 |
space_name |
要清除数据的图空间名称。 |
示例:
CLEAR SPACE basketballplayer;
保留的数据¶
图空间中,CLEAR SPACE
不会删除的数据包括:
- Tag 信息。
- Edge type 信息。
- 原生索引和全文索引的元数据。
下面的执行示例明确展示了CLEAR SPACE
会删除与保留的数据。
# 进入图空间 basketballplayer。
nebula[(none)]> use basketballplayer;
Execution succeeded
# 查看 Tag 和 Edge type。
nebula[basketballplayer]> SHOW TAGS;
+----------+
| Name |
+----------+
| "player" |
| "team" |
+----------+
Got 2 rows
nebula[basketballplayer]> SHOW EDGES;
+----------+
| Name |
+----------+
| "follow" |
| "serve" |
+----------+
Got 2 rows
# 统计图空间中的数据。
nebula[basketballplayer]> SUBMIT JOB STATS;
+------------+
| New Job Id |
+------------+
| 4 |
+------------+
Got 1 rows
# 查看统计结果。
nebula[basketballplayer]> SHOW STATS;
+---------+------------+-------+
| Type | Name | Count |
+---------+------------+-------+
| "Tag" | "player" | 51 |
| "Tag" | "team" | 30 |
| "Edge" | "follow" | 81 |
| "Edge" | "serve" | 152 |
| "Space" | "vertices" | 81 |
| "Space" | "edges" | 233 |
+---------+------------+-------+
Got 6 rows
# 查看 Tag 索引。
nebula[basketballplayer]> SHOW TAG INDEXES;
+------------------+----------+----------+
| Index Name | By Tag | Columns |
+------------------+----------+----------+
| "player_index_0" | "player" | [] |
| "player_index_1" | "player" | ["name"] |
+------------------+----------+----------+
Got 2 rows
# ----------------------- CLEAR SPACE 分割线 -----------------------
# 执行 CLEAR SPACE 清空图空间 basketballplayer。
nebula[basketballplayer]> CLEAR SPACE basketballplayer;
Execution succeeded
# 更新统计信息。
nebula[basketballplayer]> SUBMIT JOB STATS;
+------------+
| New Job Id |
+------------+
| 5 |
+------------+
Got 1 rows
# 查看统计信息。Tag 和 Edge type 还存在,但所有的点和边都没了。
nebula[basketballplayer]> SHOW STATS;
+---------+------------+-------+
| Type | Name | Count |
+---------+------------+-------+
| "Tag" | "player" | 0 |
| "Tag" | "team" | 0 |
| "Edge" | "follow" | 0 |
| "Edge" | "serve" | 0 |
| "Space" | "vertices" | 0 |
| "Space" | "edges" | 0 |
+---------+------------+-------+
Got 6 rows
# 查看 Tag 索引,它们依然存在。
nebula[basketballplayer]> SHOW TAG INDEXES;
+------------------+----------+----------+
| Index Name | By Tag | Columns |
+------------------+----------+----------+
| "player_index_0" | "player" | [] |
| "player_index_1" | "player" | ["name"] |
+------------------+----------+----------+
Got 2 rows (time spent 523/978 us)
最后更新:
September 4, 2023