简介
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  | 
配置界面

 

操作说明
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”字段包含查询结果。

 
