属性管理

7.1 查看属性

  • Connection 对象提供了 listProperty 方法进行查看属性,通过 ULTIPA.DBType 来指定查看边或者点的属性 。

  • 查看点的属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.getProperty(ULTIPA_REQUEST.GetProperty(type=ULTIPA.DBType.DBNODE))
    print(ret.toJSON())
    
  • 查看边的属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.getProperty(ULTIPA_REQUEST.GetProperty(type=ULTIPA.DBType.DBEDGE))
    print(ret.toJSON())
    
  • 查看所有属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.listProperty()
    print(ret.toJSON())
    

7.2 创建属性

  • 用户可以自由的为点或者边创建所需要的属性,并指定他们的类型。目前可以指定为int或者 string类型。所创建的属性默认会存于磁盘当中。

  • 创建点属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.createProperty(ULTIPA_REQUEST.CreatProperty(type=ULTIPA.DBType.DBNODE,
    name='test',property_type=ULTIPA.CreatePropertyType.PROPERTY_STRING))
    print(ret.toJSON())
    
  • 创建边属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.createProperty(ULTIPA_REQUEST.CreatProperty(type=ULTIPA.DBType.DBEDGE,
    name='test',property_type=ULTIPA.CreatePropertyType.PROPERTY_STRING))
    print(ret.toJSON())
    

7.3 删除属性

  • 用户在删除属性可以调用 connection 中的 dropProperty方法。需要指定删除的属性类型以及属性名称:

  • 删除点属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.dropProperty(ULTIPA_REQUEST.DropProperty(type=ULTIPA.DBType.DBNODE,
    		name='test'))
    print(ret.toJSON())
    
  • 删除边属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.dropProperty(ULTIPA_REQUEST.DropProperty(type=ULTIPA.DBType.DBEDGE,
    		name='test'))
    print(ret.toJSON())
    

7.4 加载属性

  • LTE 即 Load to Engine, 用于将磁盘上的属性加载到Ultipa高性能图计算引擎当中,加载后的属性可被用于各类查询的条件筛选。 在执行LTE之前,请确保内存充足,充足的内存会带来较好的性能与更稳定的运行环境。随着内存成本的降低,大内存环境的出现,以及网络虚拟化内存阵列的发明,数据库的发展趋势一定是通过更多的依赖内存存储与计算来提高系统吞吐率。Memory is the new disk!

  • SDK 提供了 lte() 方法来支持,通过调用时指定属性名称及类型:

  • 加载点属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.lte(ULTIPA_REQUEST.LTE(type=ULTIPA.DBType.DBNODE,property='name'))
    print(ret.toJSON())
    
  • 加载边属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.lte(ULTIPA_REQUEST.LTE(type=ULTIPA.DBType.DBEDGE,property='name'))
    print(ret.toJSON())
    

7.5 卸载属性

  • UFE 即 Unload From Engine, 用于将不再需要加速或者筛选的属性从内存之中删除,UFE将会卸载不必要的属性以节省内存,这些属性仍然会存在于外存(硬盘)当中直至用户运行了删除属性的操作。删除属性的操作同样也会触发UFE的执行。

  • SDK提供了 ufe() 方法来支持,通过调用时指定属性名称及类型:

  • 卸载点属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.ufe(ULTIPA_REQUEST.UFE(property='name',type=ULTIPA.DBType.DBNODE))
    print(ret.toJSON())
    
  • 卸载边属性

    from ultipa import Connection,ULTIPA_REQUEST
    conn = Connection(host='host:port', username="root", password="root")
    ret = conn.ufe(ULTIPA_REQUEST.UFE(property='name',type=ULTIPA.DBType.DBEDGE))
    print(ret.toJSON())