UltipaConfig
UltipaConfig 用于配置连接 Ultipa 数据库时所需的 server 信息。UltipaConfig 的配置项发生改变时,由其创建的连接会自动更新。
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
hosts | List[str] | Ultipa 数据库集群地址列表 | |
username | str | 用户名 | |
password | str | 密码 | |
crtFilePath | str | crt证书路径 | |
timeoutWithSeconds | int | 3600 | 超时时间(秒) |
consistency | bool | False | 是否使用 leader 保证读一致性 |
maxRecvSize | int | -1 | 接收数据的最大字节数 |
defaultGraph | str | default | 连接时使用的图集名称 |
heartBeat | int | 10 | 所有实例的心跳时间(秒),0 为关闭心跳 |
responseWithRequestInfo | bool | False | 是否返回请求时相关信息 |
uqlLoggerConfig | LoggerConfig | 日志配置 | |
Debug | bool | False | 是否使用 debug 模式 |
当 Debug 为 True 但未设置 uqlLoggerConfig 时,将自动初始化一个 uqlLoggerConfig(LoggerConfig 类也会自动加载)用于输出 Debug 信息,但不会写文件。
示例:创建一个连接,使用 amz 图集
from ultipa import Connection, UltipaConfig
ultipaConfig = UltipaConfig()
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"]
ultipaConfig.username = "***"
ultipaConfig.password = "***"
ultipaConfig.defaultGraph = "amz"
conn = Connection.NewConnection(defaultConfig=ultipaConfig)
conn.test().Print()
LoggerConfig
LoggerConfig 用于配置连接 Ultipa 数据库时所需的日志信息。LoggerConfig 的配置项发生改变时,由其创建的连接会自动更新。
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
name | str | logger 的名称 | |
filename | str | 日志文件的名称 | |
isWriteToFile | bool | False | 是否将日志写进文件 |
isStream | bool | False | 是否将日志输出到屏幕 |
level | logging | INFO | 日志的等级 |
示例:创建一个连接,使用 amz 图集,并将 log 输出到屏幕
from ultipa import Connection, UltipaConfig
from ultipa.types.types import LoggerConfig
loggerConfig = LoggerConfig(name="myLog", isStream=True)
ultipaConfig = UltipaConfig()
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"]
ultipaConfig.username = "***"
ultipaConfig.password = "***"
ultipaConfig.defaultGraph = "amz"
ultipaConfig.uqlLoggerConfig = loggerConfig
conn = Connection.NewConnection(defaultConfig=ultipaConfig)
conn.test().Print()
RequestConfig
RequestConfig 用于向 Ultipa 数据库发送非插入类请求时进行相关的配置。
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
graphName | str | 当前请求使用的图集名,不设置则使用连接配置时的 defaultGraph | |
timeoutWithSeconds | int | 3600 | 超时时间(秒) |
useHost | str | 使用指定的主机进行请求,不设置则随机选择一台主机 | |
useMaster | bool | False | 是否使用 leader 进行请求来保证读一致性 |
retry | Retry | 请求失败重试配置 | |
stream | bool | False | 是否流式返回 |
threadNum | int | 指定线程数 |
当 useMaster 为 True 但 useHost 指定了一台 follower 时,将使用 leader 进行请求。
示例:创建连接时使用 default 图集,执行 UQL 查询时使用 amz 图集并发送给集群的 leader
from ultipa import Connection, UltipaConfig
from ultipa import RequestConfig
ultipaConfig = UltipaConfig()
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"]
ultipaConfig.username = "***"
ultipaConfig.password = "***"
conn = Connection.NewConnection(defaultConfig=ultipaConfig)
requestConfig = RequestConfig()
requestConfig.graphName = "amz"
requestConfig.useMaster = True
req = conn.uql("find().nodes() as nodes return nodes{*} limit 10", requestConfig)
req.Print()
InsertConfig
InsertConfig 用于向 Ultipa 数据库发送插入类请求时进行相关的配置。
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
graphName | str | 当前请求使用的图集名,不设置则使用连接配置时的 defaultGraph | |
timeoutWithSeconds | int | 3600 | 超时时间(秒) |
useHost | str | 使用指定的主机进行请求,不设置则随机选择一台主机 | |
useMaster | bool | False | 是否使用 leader 进行请求来保证读一致性 |
retry | Retry | 请求失败重试配置 | |
stream | bool | False | 是否流式返回 |
threadNum | int | 指定线程数 | |
insert_type | ULTIPA.InsertType | 插入操作的类型(NORMAL、UPSERT、OVERWRITE) | |
createNodeIfNotExist | bool | False | 插入边时如果起点或终点不存在,是否自动插入起点或终点 |
当 useMaster 为 True 但 useHost 指定了一台 follower 时,将使用 leader 进行请求。
示例:创建连接时使用 default 图集,执行插入边时使用 test 图集并进行插入更新操作,允许自动插入起点、终点
from ultipa import Connection, UltipaConfig
from ultipa import InsertConfig, ULTIPA
ultipaConfig = UltipaConfig()
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"]
ultipaConfig.username = "***"
ultipaConfig.password = "***"
conn = Connection.NewConnection(defaultConfig=ultipaConfig)
insertConfig = InsertConfig(insertType=ULTIPA.InsertType.UPSERT)
insertConfig.graphName = "test"
insertConfig.createNodeIfNotExist = True
rows = [ULTIPA.Edge(values={"level": "A"},from_id="ULTIPA0000001",to_id="ULTIPA0000002",schema="default",uuid=1),
ULTIPA.Edge(values={"level": "B"},from_id="ULTIPA0000003",to_id="ULTIPA0000004",schema="default")]
req = conn.InsertEdgesBatchAuto(rows, insertConfig)
req.Print()