简介
Neo4j 数据库是开源的高性能 NOSQL 图形数据库,图数据库用来解决现有关系数据库的局限性,图模型明确地列出数据节点之间的依赖关系,可以简单快速地检索难以在关系系统中建模的复杂层次结构。Neo4j 数据库适合处理复杂关系,应用在欺诈检测、推荐系统、社交网络图、身份和访问管理等领域。
Neo4j 连接器可连接第三方 Neo4j 数据库系统并执行节点的增删改查和 CQL 操作。用户通过连接器配置来配置数据库的连接参数,配置成功后便可执行对应的数据库操作。
连接器配置
配置参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
连接URL | string | 用于连接 Neo4j 数据库的 URL | 是 | - |
用户名 | string | 用于连接验证的用户名 | 否 | - |
密码 | string | 用于连接验证的用户密码 | 否 | - |
数据库 | string | 连接的数据库名称 | 否 | - |
连接超时时间 | int | 连接超时时间(单位秒),最长超时时间为30秒 | 否 | 5 |
配置界面
操作说明
Neo4j 连接器目前支持创建节点、查询节点、删除节点、更新节点、执行 CQL 语句等操作。
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
节点标签名称 | string | 待创建节点的标签名称 | 是 | - |
节点属性 | dict | 待创建节点的属性,key 为属性名称,value 为属性值 | 否 | - |
输出
查询操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 int 类型,返回创建成功的节点数量;执行失败后,payload 为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
案例
1. 添加 Neo4j 连接器组件,选择创建节点操作。
2. 新建连接器配置,填写配置参数,单击测试连接,测试连接器配置是否正确。
3. 在通用配置中,填写节点标签名称和节点属性信息。例如:标签名称填写为 person、节点属性 item_1 的 key 为 name、value 为 'xiaoming'、item_2 的 key 为 age、value 为18。
节点属性:
4. 创建成功后,message payload 返回创建节点的数量。
5. 若执行过程中出现错误,message error中会包含错误信息。
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
节点标签名称 | string | 待查询的节点标签名称 | 是 | - |
节点属性 | dict | 节点属性,根据节点属性作为查询过滤条件,不填则返回标签下所有节点 | 否 | - |
输出
操作执行成功后,输出结果会保存在 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 连接器组件,选择查询节点操作。
2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填入节点标签名称和节点属性。例如:标签名称填写为 person、节点属性 item_1 的 key 值为 age、value 值为18,即可筛选出 age 属性值为18的节点。
4. 查询成功后,message payload 中包含执行结果,返回 age 属性为18的两个节点信息。
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
节点标签名称 | string | 待删除的节点标签名称 | 是 | - |
节点属性 | dict | 节点属性,根据节点属性作为删除条件,不填则更新标签下所有节点 | 否 | - |
更新后的节点属性 | dict | 更新后的节点属性 | 是 | - |
输出
操作执行成功后,输出结果会保存在 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 连接器组件,选择更新节点操作。
2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填入所需参数。例如:节点标签填写为 person、节点属性 item_1 的 key 值为 age、value 值为18,更新后的节点属性采用 Dataway 表达式输入。
def dw_process(msg):return {'name': 'abc','age': 30}
4. 执行成功后,message payload 中包含执行结果,true 表示更新成功。
再执行查询节点操作,可以看到两个节点已经完成更新。
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
节点标签名称 | string | 待删除的节点标签名称 | 是 | - |
是否删除节点关系 | bool | 是否删除节点间的关系信息 | 否 | true |
节点属性 | dict | 节点属性,根据节点属性作为删除条件,不填则删除标签下所有节点 | 否 | - |
输出
操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 int 类型,代表删除的节点数量;执行失败后,payload 为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”元素:“Code”表示错误类型,“Description”表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
案例
1. 添加 Neo4j 连接器组件,选择删除节点操作。
2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填写相关参数。例如:节点标签填写为 person、节点属性采用 Dataway 表达式输入,输入如下:
def dw_process(msg):return {'age': 30}
4. 删除成功后,message payload 中包含成功删除的节点数量。
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
CQL语句 | string | 待执行的 CQL 语句,遵循 Cypher Query Language 标准的语句,支持原生 CQL 及参数化输入。参数化使用($+参数名称)输入 | - | - |
输入参数 | string | CQL 语句的输入参数,key 为参数名称,参数名称需要和 input 参数名称一致,value 为参数值 | 是 | - |
输出
操作执行成功后,输出结果会保存在 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 操作。
2. 新建连接器或选择已创建的连接器。
3. 在通用配置中,填入相关信息。例如:”CQL 语句“为
MATCH(n:person {age:$age}) RETURN n
,CQL 语句中包含 age 参数变量,输入参数采用 Dataway 表达式输入,如下:def dw_process(msg):return {'age': 18}
界面如图:
4. 执行成功后,message payload 中包含执行结果,由于执行的是查询命令,“selectResult”字段包含查询结果。