可以更新 vertex 的 id 吗?

  • nebula 版本:
    v2.6.2
  • 部署方式:分布式 / 单机
    单机
  • 安装方式:源码编译 / Docker / RPM
    docker compose
  • 是否为线上版本:Y / N

image

文档里提到的 update vertex 只能更新 prop, 好像是不能更新 id ?

我的使用场景是这样的,我用 hash(name) 作为 int64 id, name 在某些情况下需要更新。因为 id 是 hash(name), 所以也需要同时更新 id.

所以可以更新 vertex 的时候也更新 id 吗?

vid 是不可修改的,VID - Nebula Graph Database 手册 你可以参考这份 vid 使用指南,找个唯一性的属性值作为 vid 源。

name 的确是唯一的,但是是可变的。。。

因为 name 的长度变化很大,所以我选择了 int64 做 vid.
方案一:
使用 snow flake 算法生成一个 id, 在子图查询的时候先根据 name prop 找出 vid, 在用 vid 查询

方案二:
使用 hash(name) 作为 vid, 在 name 更新的时候把原来的 edge 都迁移到新的 vertex 上。

如果使用方案二, 迁移 edge 有啥好的做法吗?

允许更新身份证号不

哈哈,我上面描述的情况是我们实际情况的一个简单版本。
不过说到身份证号码,其实在有些特殊情况下也是可以更改的。
从文档上来看,nebula 应该只要求 vid 是唯一的,并没有提到 vid 是不可变的。最好是在文档里明确 vid 是不可变的,这样会更加清楚一些。

换了身份证就不是同一个人了

1 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。