Neo4j插件
下载安装
下载地址:https://github.com/knowbi/knowbi-pentaho-pdi-neo4j-output/releases
- 解压文件,放入kettle的
plugins
目录中 - 需要先删除所有历史
/plugins/Neo4JOutput
的文件夹 - 重启kettle使用
kettle版本插件,已不再维护;现维护的为kettle分支hop,地址:https://github.com/apache/hop
组件清单
类别 | 组件名称 | 简介 |
---|---|---|
JOB | Check Neo4j Connections | 条件栏,验证neo4j连接是否正常 |
JOB | Neo4j Cypher Script | 脚本栏,执行Cypher语句 |
TRANS | Neo4J Output | 插入或更新Neo4j数据库中的节点和关系 |
TRANS | Neo4j Cypher | 执行 Cypher 语句 |
TRANS | Neo4j Generate CSVs | 生成并导出csv文件 |
TRANS | Neo4j Graph Output | 通过模板方式插入或更新Neo4j数据库 |
TRANS | Neo4j Import | 初始化数据加载导入 |
TRANS | Neo4j Split Graph | 切分图,将大图切分成单个小的图 |
Check Neo4j Connections 组件
验证neo4j连接是否正常
- 需要预先配置Neo4j的连接信息
- 该组件无法创建连接,需要通过其他组件创建,如
Neo4j Cypher Script
组件 - 可配置多个,但只要有一个图库无法连接则报错
- 控制流程,失败则不进行后续操作
Neo4j Cypher Script 组件
执行Cypher语句
- 可新建、编辑
neo4j
连接信息,无法删除 - 可选择使用
变量替换
- 只能执行单条语句,不能进行多条
Cypher
语句
Neo4j Output 组件
插入或更新Neo4j数据库中的节点和关系
- 允许插入或更新
一个节点
、两个节点
或节点节点和关系
,节点和关系可以具有属性 - 源节点(目标节点)标签名
Label
的内容必须一致,如果存在不一样的值会导致标签错乱 - 若是需要相同节点不重复创建,在节点配置中必须指定
Primary
属性
整体配置
Neo4j Connection
:选择、新建、编辑neo4j
连接信息,无法删除Batch size
:批量大小,将定义的记录数分组到单个事务中执行Create indexes
:创建索引,为节点中所有Primary
属性创建唯一约束,在处理关系的Merge
和查找节点时保持良好的性能。(不允许重复,如果勾选,谨慎使用Use CREATE instead of Merge
选项,容易出现主键冲突无法导入的情况);Use CREATE instead of Merge
:使用CREATE
代替Merge
- 选择此项绕过了查找,速度更快;
- 生成一个 UNWIND 语句,将记录组合在一起以获得更好的性能
- 不使用任何事务,只使用隐式事务(自动提交);
- 选择此项无论什么情况都会创建新的节点;
Only create relationships
:是否仅创建节点关系- 选择后,节点信息不会更新;
- 源节点和目标节点的
Perform lookups only,do not update the "from" nodes
选项不可用
Return graph data
:是否返回图数据,选中后,将不会在图数据库创建节点和关系,仅输出图数据- 勾选此项后,仅
Graph output field name
选项有效,整体配置
的选项都不可用 - 图数据为
JSON
格式,内容为节点、关系配置项的数据信息
- 勾选此项后,仅
Graph output field name
:节点图输出名称- 必须勾选
Return graph data
此选项才可用,并且可修改
- 必须勾选
源节点配置
Perform lookups only,do not update the "from" nodes
:仅查找不更新节点信息- 此配置无效,不论选中与否,节点属性都会变更
整体配置
中勾选了Only create relationships
,该选项不可选
From Labels
:源节点标签From Label Fields
:标签名称的字段列(数据流传入字段),值作为节点标签名称,所有行的值必须都相同,否则会导致图库中标签错乱From Label Values
:源节点标签名称默认值(From Label Fields
为空时使用此值);
From Property
:源节点属性From Properties Fields
:属性字段列(数据流传入字段);Properties Name
:源节点属性名称的字段列- 列名作为属性名,值作为属性值
From Properties Fields
字段列存在下划线,默认获取字段时会采用驼峰命名规则
type
:属性值类型Primary
:是否主键,判断节点是否Merge的标识
目标节点配置
Perform lookups only,do not update the "to" nodes
:仅查找不更新节点信息- 此配置无效,不论选中与否,节点属性都会变更
整体配置
中勾选了Only create relationships
,该选项不可选
To Labels
:目标节点标签To Label Fields
:标签名称的字段列(数据流传入字段),值作为节点标签名称,所有行的值必须都相同,否则会导致图库中标签错乱To Label Values
:目标节点标签名称默认值(To Label Fields
为空时使用此值)
To Property
:源节点属性To Properties Fields
:属性字段列(数据流传入字段)Properties Name
:目标节点属性名称的字段列- 列名作为属性名,值作为属性值
To Properties Fields
字段列名存在下划线,默认获取字段时会采用驼峰命名规则
type
:属性值类型Primary
:是否主键,判断节点是否Merge的标识
关系配置
Relationship filed
:关系类型名称的字段(数据流传入字段),值作为关系类型名称,所有行的值必须都相同,否则会导致图库中标签错乱Relationship value
:关系类型名称默认值(Relationship filed
为空时使用此值);Relationship properties
:关系属性Relationship Properties
:属性字段列(数据流传入字段)Properties Property name
:关系属性名称的字段列- 列名作为属性名,值作为属性值
- 数据流字段列名存在下划线,默认获取字段时会采用驼峰命名规则
Property type
:属性值类型
Neo4j Cypher 组件
执行 Cypher 语句
作业中的
Neo4j Cypher Script
组件不能传递数据流,本组件可传递数据流
整体配置
-
Neo4j Connection
:选择、新建、编辑neo4j
连接信息,无法删除 -
Batch size
:批量大小,将定义的记录数分组到单个事务中执行 -
Read only statement
:只读语句,勾选此项只能执行查询语句,执行插入更新语句会报错 -
Retry connecting after disconnection
:连接中断重连 -
Get Cypher from input field
:从输入字段获取Cypher
语句(与Cypher
选项互斥)Cypher input field
:Cypher语句字段
-
Cypher
:执行语句(与Get Cypher from input field
选项互斥) -
Collect parameter values map
:收集参数值,将所有行添加到列表中并将其传递给UNWIND
语句(必须在参数列表中选择入参字段)Name of values map list
:参数Map值的字段名称,如设置为params
- 例:
UNWIND $params AS p match (n:TL {id:p.id}) return n.name as name
- 例:
UNWIND $params AS p CREATE (n:TL {id:p.id,name:p.name})
-
Return graph data
:返回图数据,选中后仅输出图数据- 勾选此项后,
Graph output field name
选项有效 Graph output field name
:节点图输出字段名称- 下一个步骤可连接
Neo4j Generate CSVs 组件
,用于导出图数据
- 勾选此项后,
入参配置 Parameters
Parameter
:参数名称,需配合Cypher
语句使用,合并成MapField
:数据流字段Neo4j Type
:图库中数据类型
返回值配置 Returns
-
Field Name
:字段名称(图库中返回的字段名称)- 若查询语句返回值带符号,此次也必须带符号
- 例:
match (n:TL) return n.name
语句返回需配置为n.name
- 例:
match (n:TL) return n.name as rname
语句返回需配置为rname
-
Return Type
:返回值类型(输出到下一个步骤的数据类型) -
Source Type
:来源类型(图库中的数据类型)
Neo4j Generate CSVs 组件
导出csv文件
graph field
:传递图形数据的字段(从上一步选择)base folder (below import/folder)
:文件目录(导出的csv文件在文件目录/import
下)csv files prefix
:csv文件前缀node/relationships uniqueness strategy
:节点或关系唯一性策略- 选项不起作用,暂未发现其他作用
filename field
:导出文件的字段名- 输出内容规则:
import/前缀-图库类型-转换名-前一个步骤名-图库名-序号.csv
- 输出内容例子:
import/prefix-nodes-export_csv_neo4j-Neo4j Cypher-TL-0.csv
- 输出内容规则:
file type field
:导出文件类型的字段名- 节点类型:
Nodes
- 关系类型:
Relationships
- 节点类型:
Neo4j Graph Output 组件
通过模板方式插入或更新Neo4j数据库
用的比较少,累了,过段时间再更新
Neo4j Import 组件
初始化数据加载导入,慎用
实际上是调用Neo4j 数据库的neo4j-import
命令行工具,用于高效地将大量数据导入 Neo4j 图形数据库。适用于初始数据加载或大规模数据迁移,因为它能够比Cypher查询更快地导入数据;
注意:使用该组件会先删除数据库再重新创建,但是社区版没有权限创建数据库,会使用失败
filename field
:导出文件的字段名(数据流获取)file type field
:导出文件类型的字段名(数据流获取)database filename
:图数据库文件名称neo4j-admin command path
:neo4j管理命令的路径base folder (below import/folder)
:文件目录(文件需在文件目录/import
下)Max Memory
:最大内存High IO
:最高IOIgnore Duplicate Nodes
:忽略重复的节点Ignore Missing Nodes
:忽略丢失的节点Ignore Extra Columns
:忽略多余的列Fields Can Have Multi-line Data
:字段可以具有多行数据Skip Bad Relationships
:跳过不良关系Read Buffer Size
:读取缓冲区大小
Neo4j Split Graph 组件
切分图
将大的图拆分成单个节点或者单个关系的小图
Graph field
:传递图形数据的字段(从上一步选择)Type output field (Node/Relationship)
:类型输出字段(节点/关系)- 节点类型:
Nodes
- 关系类型:
Relationships
- 节点类型:
ID output field
:ID输出字段Property set output field
:标签(Lable)输出字段