本节为您介绍如何使用Connection
对象的方法管理数据库中的图集。
每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。
showGraph()
从数据库获取全部图集。
参数:
RequestConfig
(可选):配置请求。
返回值:
ResponseListGraph
:数据库中全部图集列表。
# 获取全部图集并打印边数超过2000条的图集名称
graphs = Conn.showGraph().data
for graph in graphs:
if graph.totalEdges > 2000:
print(graph.name)
Display_Ad_Click
ERP_DATA2
wikiKG
getGraph()
根据图集名称从数据库获取图集信息。
参数:
str
:图集名称。RequestConfig
(可选):配置请求。
返回值:
ResponseGraph
:目标图集。
# 获取名为wikiKG的图集并打印其全部信息
graph = Conn.getGraph("wikiKG")
print(graph.toJSON())
{"description": "", "id": "13844", "name": "wikiKG", "status": "MOUNTED", "totalEdges": "167799", "totalNodes": "44449"}
createGraph()
在数据库中新建图集。
参数:
GraphSet
:待创建的图集;必须设置name
字段,description
字段可选。RequestConfig
(可选):配置请求。
返回值:
UltipaResponse
:请求的结果。
# 创建图集并打印错误代码
graph = GraphSet(
name="testPythonSDK",
description="testPythonSDK desc"
)
response = Conn.createGraph(graph)
print(response.status.code)
数据库中已创建名为testPythonSDK
的新图集,驱动程序打印结果如下:
0
createGraphIfNotExist()
在数据库中新建图集,若同名图集已存在,忽略报错。
参数:
GraphSet
:待创建的图集;必须设置name
字段,description
字段可选.RequestConfig
(可选):配置请求。
返回值:
bool
:图集是否存在。UltipaResponse
或None
:请求的结果;如果图集已存在,则返回None
。
# 创建图集并打印错误代码
graph = GraphSet(
name="testPythonSDK",
description="testPythonSDK desc"
)
response1 = Conn.createGraphIfNotExist(graph)
if response1[0] is False:
print("Code =", response1[1].status.code)
else:
print("No response")
# 尝试再次创建图集并打印错误代码
response2 = Conn.createGraphIfNotExist(graph)
if response2[0] is False:
print("Code =", response2[1].status.code)
else:
print("No response")
数据库中已创建名为testPythonSDK
的图集,驱动程序打印结果如下:
Code = 0
No response
dropGraph()
根据图集名称从数据库中删除图集。
参数:
str
: 图集名称。RequestConfig
(可选): 配置请求。
返回值:
UltipaResponse
: 请求的结果。
# 创建图集后将其删除并打印结果
graph = GraphSet(
name="testPythonSDK",
description="testPythonSDK desc"
)
response1 = Conn.createGraph(graph)
print(response1.status.code)
response2 = Conn.dropGraph("testPythonSDK")
print(response2.status.code)
0
0
alterGraph()
根据图集名称,修改数据库中已有图集的名称和描述信息。
参数:
GraphSet
:待修改的图集;必须设置name
字段。GraphSet
:更新已有图集的配置;必须设置name
字段和description
字段。RequestConfig
(可选):配置请求。
返回值:
UltipaResponse
: Result of the request.
# Renames the graphset 'testPythonSDK' to 'newGraph', sets a description for it, and prints the result
oldGraph = GraphSet('testPythonSDK')
newGraph = GraphSet(name='newGraph1', description="a new graph")
response = Conn.alterGraph(oldGraph, newGraph)
print(response.status.code)
0
truncate()
清空(删除)给定图集中的指定点或边,或清空全部图集。请注意,清空点数据的同时会删除与点相连的所有边。清空操作仅删除点边数据,不会删除schema和属性信息。
参数:
Truncate
: 待清空的对象;必须设置graphName
字段,可选择设置dbType
和schema
字段,但设置schema
字段时,必须设置dbType
字段。RequestConfig
(可选): 配置请求。
返回值:
UltipaResponse
: 请求的结果。
# 清空图集exKG中@person点数据并打印错误代码
target1 = Truncate(graphName="exKG", schema="person", dbType=DBType.DBNODE)
response1 = Conn.truncate(target1)
print(response1.status.code)
# 清空图集exKG中全部边数据并打印错误代码
target2 = Truncate(graphName="exKG", schema="*", dbType=DBType.DBEDGE)
response2 = Conn.truncate(target2)
print(response2.status.code)
# 清空图集exKG并打印错误代码
target3 = Truncate(graphName="exKG")
response3 = Conn.truncate(target3)
print(response3.status.code)
0
0
0
compact()
清除服务器磁盘上的无效及冗余数据以压缩图集。有效数据不会受到影响。
参数:
str
:图集名称。RequestConfig
(可选):配置请求。
返回值:
UltipaResponse
:请求的结果。
# 压缩图集miniCircle并打印错误代码
response = Conn.compact("miniCircle")
print(response.status.code)
0
hasGraph()
根据图集名称查看数据库中是否存在该图集。
参数:
str
:图集名称。RequestConfig
(可选):配置请求。
返回值:
bool
:请求的结果。
# 查看图集miniCircle是否存在并打印结果
response = Conn.hasGraph("miniCircle")
print(response)
True
unmountGraph()
卸载图集以节省数据库内存。
参数:
str
:图集名称。RequestConfig
(可选):配置请求。
Returns:
UltipaResponse
:请求的结果。
# 卸载图集miniCircle并打印图集状态
Conn.unmountGraph("miniCircle")
time.sleep(2)
graph = Conn.getGraph("miniCircle")
print(graph.data.status)
UNMOUNTED
mountGraph()
将图集挂载至数据库内存。
参数:
str
:图集名称。RequestConfig
(可选):配置请求。
返回值:
UltipaResponse
:请求的结果。
# 挂载图集miniCircle并打印图集状态
Conn.mountGraph("miniCircle")
time.sleep(2)
graph = Conn.getGraph("miniCircle")
print(graph.data.status)
MOUNTED
完整示例
from ultipa import Connection, UltipaConfig, Truncate
ultipaConfig = UltipaConfig()
# URI示例:ultipaConfig.hosts = ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"]
ultipaConfig.username = "<username>"
ultipaConfig.password = "<password>"
Conn = Connection.NewConnection(defaultConfig=ultipaConfig)
target = Truncate(graphName="exKG")
response = Conn.truncate(target)
print(response.status.code)