Nebula Graph是否支持自增ID?能否自动生成VID无需手动创建?
Nebula Graph 自增ID与自动VID生成问题解答
1. 是否有自增ID?
Nebula Graph 本身没有内置的自增ID功能。因为它是分布式图数据库,自增ID在分布式场景下会带来全局一致性维护的性能瓶颈,不符合其高性能分布式设计的定位。如果业务需要类似自增的唯一标识,得自己在业务侧实现,比如用外部的分布式ID生成器(像Snowflake算法这类)。
2. 怎么不用手动写VID插入顶点?
有两种常用方法可以自动生成VID:
方法一:用内置函数生成唯一VID
Nebula Graph 提供了uuid()和hash()这类函数,能直接生成可用的VID:
- 用
uuid()生成字符串类型的唯一VID:
CREATE TAG IF NOT EXISTS t2 (name string, age int); INSERT VERTEX t2 (name, age) VALUES uuid():("n1", 12); INSERT VERTEX t2 (name, age) VALUES uuid():("n3", 12), uuid():("n4", 8);
- 用
hash()对业务字段做哈希生成VID(适合需要把VID和业务字段关联的场景):
INSERT VERTEX t2 (name, age) VALUES hash("n1"):("n1", 12);
方法二:在业务代码里生成唯一VID
在客户端代码中提前生成全局唯一ID(比如用Snowflake算法、UUID工具等),再把生成的ID传入INSERT语句。这种方式更灵活,能满足业务对ID格式、规则的自定义需求。
内容的提问来源于stack exchange,提问作者foesa Yang
相关产品推荐
相关产品推荐

