Neo4j 连接器

最近更新时间:2023-06-08 14:48:02

我的收藏

简介

Neo4j 数据库是开源的高性能 NOSQL 图形数据库,图数据库用来解决现有关系数据库的局限性,图模型明确地列出数据节点之间的依赖关系,可以简单快速地检索难以在关系系统中建模的复杂层次结构。Neo4j 数据库适合处理复杂关系,应用在欺诈检测、推荐系统、社交网络图、身份和访问管理等领域。
Neo4j 设计 CQL(Cypher Query Language)查询语言,Neo4j 通过 CQL 可以进行 Neo4j 数据库的增删改查等相关操作,CQL 的语法类似于 SQL,简单易读。
Neo4j 连接器可连接第三方 Neo4j 数据库系统并执行节点的增删改查和 CQL 操作。用户通过连接器配置来配置数据库的连接参数,配置成功后便可执行对应的数据库操作。

连接器配置

配置参数

参数
数据类型
描述
是否必填
默认值
连接URL
string
用于连接 Neo4j 数据库的 URL
-
用户名
string
用于连接验证的用户名
-
密码
string
用于连接验证的用户密码
-
数据库
string
连接的数据库名称
-
连接超时时间
int
连接超时时间(单位秒),最长超时时间为30秒
5

配置界面


image-20210520153224585



操作说明

Neo4j 连接器目前支持创建节点、查询节点、删除节点、更新节点、执行 CQL 语句等操作。
创建节点
查询节点
更新节点
删除节点
执行CQL语句

参数配置

参数
数据类型
描述
是否必填
默认值
节点标签名称
string
待创建节点的标签名称
-
节点属性
dict
待创建节点的属性,key 为属性名称,value 为属性值
-

image-20210520171116857



输出

查询操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性
payload
执行成功后,payload 为 int 类型,返回创建成功的节点数量;执行失败后,payload 为空
error
执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息
attribute
继承上个组件的 attribute 信息
variable
继承上个组件的 variable 信息

案例

1. 添加 Neo4j 连接器组件,选择创建节点操作。
image-20210520171439537


2. 新建连接器配置,填写配置参数,单击测试连接,测试连接器配置是否正确。
image-20210520171520885


3. 在通用配置中,填写节点标签名称和节点属性信息。例如:标签名称填写为 person、节点属性 item_1 的 key 为 name、value 为 'xiaoming'、item_2 的 key 为 age、value 为18。
image-20210520171945127


节点属性:
image-20210520172021477


image-20210520172041721


4. 创建成功后,message payload 返回创建节点的数量。
image-20210323113311938


5. 若执行过程中出现错误,message error中会包含错误信息。
image-20210322192839811



参数配置

参数
数据类型
描述
是否必填
默认值
节点标签名称
string
待查询的节点标签名称
-
节点属性
dict
节点属性,根据节点属性作为查询过滤条件,不填则返回标签下所有节点
-

image-20210520184724126



输出

操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性
payload
执行成功后,payload 为 list 类型,list 成员为 dict 类型,表示节点的属性信息;执行失败后,payload 为空
error
执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”元素:“Code”表示错误类型,“Description”表示错误具体信息
attribute
继承上个组件的 attribute 信息
variable
继承上个组件的 variable 信息
例如:查询操作执行成功后,查询返回两个节点的属性信息,message payload 值如下:
[
{
"age": 18,
"name": "xiaohua"
},
{
"age": 18,
"name": "xiaoming"
}
]

案例

1. 添加 Neo4j 连接器组件,选择查询节点操作。
image-20210521095822998


2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填入节点标签名称和节点属性。例如:标签名称填写为 person、节点属性 item_1 的 key 值为 age、value 值为18,即可筛选出 age 属性值为18的节点。
image-20210521100202113


4. 查询成功后,message payload 中包含执行结果,返回 age 属性为18的两个节点信息。
image-20210521100419381



参数配置

参数
数据类型
描述
是否必填
默认值
节点标签名称
string
待删除的节点标签名称
-
节点属性
dict
节点属性,根据节点属性作为删除条件,不填则更新标签下所有节点
-
更新后的节点属性
dict
更新后的节点属性
-

image-20210521101343734



输出

操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性
payload
执行成功后,payload 为 Bool 类型,更新成功为 true,更新失败为 false;执行失败后,payload 为空
error
执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”元素:“Code”表示错误类型,“Description”表示错误具体信息
attribute
继承上个组件的 attribute 信息
variable
继承上个组件的 variable 信息

案例

1. 添加 Neo4j 连接器组件,选择更新节点操作。
image-20210521101205675


2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填入所需参数。例如:节点标签填写为 person、节点属性 item_1 的 key 值为 age、value 值为18,更新后的节点属性采用 Dataway 表达式输入。
def dw_process(msg):
return {
'name': 'abc',
'age': 30
}
4. 执行成功后,message payload 中包含执行结果,true 表示更新成功。
image-20210521105858364


再执行查询节点操作,可以看到两个节点已经完成更新。
image-20210521105957969



参数配置

参数
数据类型
描述
是否必填
默认值
节点标签名称
string
待删除的节点标签名称
-
是否删除节点关系
bool
是否删除节点间的关系信息
true
节点属性
dict
节点属性,根据节点属性作为删除条件,不填则删除标签下所有节点
-

image-20210521104644913



输出

操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性
payload
执行成功后,payload 为 int 类型,代表删除的节点数量;执行失败后,payload 为空
error
执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”元素:“Code”表示错误类型,“Description”表示错误具体信息
attribute
继承上个组件的 attribute 信息
variable
继承上个组件的 variable 信息

案例

1. 添加 Neo4j 连接器组件,选择删除节点操作。
image-20210521100615438


2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填写相关参数。例如:节点标签填写为 person、节点属性采用 Dataway 表达式输入,输入如下:
def dw_process(msg):
return {
'age': 30
}
4. 删除成功后,message payload 中包含成功删除的节点数量。
image-20210521110242528



参数配置

参数
数据类型
描述
是否必填
默认值
CQL语句
string
待执行的 CQL 语句,遵循 Cypher Query Language 标准的语句,支持原生 CQL 及参数化输入。参数化使用($+参数名称)输入
-
-
输入参数
string
CQL 语句的输入参数,key 为参数名称,参数名称需要和 input 参数名称一致,value 为参数值
-

image-20210521104754750



输出

操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性
payload
执行成功后,payload 为 dict 类型,包含4个字段:selectResult、createCount、deleteCount、containsUpdates。
selectResult 字段代表查询结果,对应的值为 list 类型,list 成员为 dict 类型,为节点的属性信息
createCount 代表创建的节点数量,对应的值为 int 类型
deleteCount 代表删除的节点数量,对应的值为 int 类型
containsUpdates 代表是否执行更新,对应的值为 bool 类型;执行失败后,payload 为空
error
执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”元素:“Code”表示错误类型,“Description”表示错误具体信息
attribute
继承上个组件的 attribute 信息
variable
继承上个组件的 variable 信息

案例

1. 添加 Neo4j 连接器组件,选择执行 CQL 操作。
image-20210521104542626


2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填入相关信息。例如:”CQL 语句“为MATCH(n:person {age:$age}) RETURN n,CQL 语句中包含 age 参数变量,输入参数采用 Dataway 表达式输入,如下:
def dw_process(msg):
return {
'age': 18
}
界面如图:
image-20210521111606338


4. 执行成功后,message payload 中包含执行结果,由于执行的是查询命令,“selectResult”字段包含查询结果。
image-20210521111640518