数据删除
本文介绍清库、按照点Label或边Label、点ID或边ID并发删除数据的基本操作。
清库
用户有清库需求,请参见清除实例数据 。
警告
该操作是清除实例的全部数据,操作前请务必确认,如果您只是想删除部分数据,请参考下文的删除脚本部分。
删除脚本
如果有根据点Label或边Label、点ID或边ID并发删除数据的需求,请使用以下脚本执行。
下载删除脚本并解压。
wget https://github.com/aliyun/alibabacloud-gdb-tools/archive/refs/heads/master.zip unzip master.zip pip install -r requirements.txt --user
使用举例。
删除所有Label为Player的点,32线程并发。
python GdbDataRemover.py --host ${gdb_end_point} --port ${gdb_port} --username ${gdb_user} --password ${gdb_pwd} --label player --threadCnt 32
根据输入文件里的ID批量删除点,128个一批。
python GdbDataRemover.py --host ${gdb_end_point} --port ${gdb_port} --username ${gdb_user} --password ${gdb_pwd} --threadCnt 32 --batch 128 input1.txt [input2.txt]
输入文件input1.txt里包含点ID列表,每行一个ID。
根据输入文件里的ID批量删除边,128个一批。
python GdbDataRemover.py --host ${gdb_end_point} --port ${gdb_port} --username ${gdb_user} --password ${gdb_pwd} --threadCnt 32 --edge --batch 128 input1.txt [input2.txt]
输入文件input1.txt里包含边ID列表,每行一个ID。
说明${gdb_end_point}:请替换为图数据库GDB实例的连接地址(内网地址或外网地址)。
${gdb_port}:请替换为图数据库GDB实例连接地址对应的端口号(内网端口或外网端口)。
${gdb_user}:请替换为图数据库GDB实例的账号名称。
${gdb_pwd}:请替换为图数据库GDB实例的账号密码。
限制删除数量
虽然图数据库GDB具有ACID(原子性、一致性、隔离性、持久性)事务能力,但是修改的数据集建议小于等于8 MB。如果您不使用上述脚本删除的话,需要手动限制每次删除数据的大小。
示例:
推荐方案(将每次删除的数据量限制在1024 Byte)
String dsl ="g.V().limit(1024).drop()"; ResultSet results = client.submit(dsl);
普通方案
String dsl ="g.V().drop()"; ResultSet results = client.submit(dsl);