属性删除问题

  • nebula 版本:1.2
  • 部署方式(rpm包,三节点分布式 ):

如图,创建4属性的edge,插入了一些数据。当我删除掉其中2个属性,并执行了submit job compact之后,删掉的属性数据会从磁盘上删除吗?
当我再将删除的属性添加回来(创建和之前重名的属性),再查询时,发现删掉的属性数据还在。
删除属性后,如何操作才能将对应的属性数据从磁盘上删除?

如图,创建4属性的edge,插入了一些数据。当我删除掉其中2个属性,并执行了submit job compact之后,删掉的属性数据会从磁盘上删除吗?

属性的数据不会删除,只是读不了。只有删除tag或者edge做compact才会把数据删除

当我再将删除的属性添加回来(创建和之前重名的属性),再查询时,发现删掉的属性数据还在。
删除属性后,如何操作才能将对应的属性数据从磁盘上删除?

你把属性加回来是可以读出来数据的,前面说到,数据不会删除。删除个别属性,数据不会删除,也没有提供这样的操作。你是觉得这样占用存储,所以希望删除吗?

是的,业务上部分属性可能不会长期有效,但时间上不确定又不能使用ttl,2.x版本会支持删属性值吗?

感谢你的提问,首先,ttl过期也是针对tag的,不是针对属性的。
这个功能2.0也不支持。但是这个我们会考虑下是否要支持上。

好的,nebula> CREATE TAG t1(a int, b int, c string) ttl_duration = 100, ttl_col = “a”;
这个语句是 为t1设置100秒的过期时间,查询时,属性a数据的创建时间+100s进行过滤,确定a数据是否返回。当做compact时,以tag为单位进行数据遍历(每次读出该条数据的所有属性值),然后判断ttl_col指定的属性进行值的删除 吗?

基本可以这么理解

我们内部评审过,这个需求过于业务,可以咨询下你们具体使用在哪块业务上吗?

我们业务中,有些属性需要存储时序型数据,比如某属性每天一个值,保留30天。这种的话我们考虑每天新增一个当天的属性,并判断属性超过30则删除

1 个赞

我来更新下哈,技术委员会重新评审了下,下面是他们的评审结果哈

其实你的问题可以通过构图去解决:

  • 边,用 ranking timestamp + 在新开发的 ttl(我们新开发的功能,数据过期功能) 功能。
  • 点,把属性放到边上去,自己指向自己。
1 个赞

如果把 属性提升成tag 或许可以解决 TTL 的问题 :slight_smile: