如何对Nebula中存储的顶点或边进行增量更新?
假设Nebula中存储了a,b两类点及其相关边,初始全量从Hive表导入时,导入了a, b, a-b三张表。在实际生产环境中 a, b, a-b所包含的属性每天都可能被更新,那么如何每天对Nebula中的数据进行增量更新呢?
现在想到的办法是比较 T 和 T+1 日数据,若某一行记录中的某些属性发生更新,则将该行记录筛选出来覆盖更新至Nebula。
不知道这样的方法是否可行,若可行的话是否是最优的方法呢?
如何对Nebula中存储的顶点或边进行增量更新?
假设Nebula中存储了a,b两类点及其相关边,初始全量从Hive表导入时,导入了a, b, a-b三张表。在实际生产环境中 a, b, a-b所包含的属性每天都可能被更新,那么如何每天对Nebula中的数据进行增量更新呢?
现在想到的办法是比较 T 和 T+1 日数据,若某一行记录中的某些属性发生更新,则将该行记录筛选出来覆盖更新至Nebula。
不知道这样的方法是否可行,若可行的话是否是最优的方法呢?
这个方法当然是可行的,抛开数据库类型而言,这应该是一个常规的做法。
除此以外你导数据可以使用我们的提供的数据导入工具,可能会帮你提升一些效率:https://docs.nebula-graph.com.cn/manual-CN/3.build-develop-and-administration/5.storage-service-administration/data-import/import-csv-file/
如果数据源在Hive的话,我能想到就是Hive里面先算个差量吧——可能计算量有点大,要算出 删除、修改、增加
属性更新相对好处理,点的删除比较费事(否则会有悬挂边)。
也可以试试TTL,也许自动过期也是个办法——边上有个rank字段可以使用,但是点上的时间我没想好怎么处理。
也可以新建一个space。
这样本质上每天可能就是一个全量导入。
主要看看差量和全量哪个更大吧。