首页 > 其他分享 >Kettle之Neo4j插件

Kettle之Neo4j插件

时间:2024-03-23 18:34:37浏览次数:20  
标签:语句 插件 Cypher Kettle field Neo4j 节点 属性

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 语句使用,合并成Map
  • Field :数据流字段
  • 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 :最高IO
  • Ignore 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)输出字段

标签:语句,插件,Cypher,Kettle,field,Neo4j,节点,属性
From: https://www.cnblogs.com/wsum/p/18091521

相关文章

  • 【ComfyUI插件】Comfyroll节点 (一)
    知识星球:71297236该星球不仅包含大量的节点详细介绍还定期做工作流分享以及思路详解,还会解决各种报错问题,欢迎大家加入!前言:ComfyrollStudio是一个强大的自定义节点集合,旨在为ComfyUI用户提供更丰富、更专业的图像生成和编辑工具。通过这些节点,你将可以探索新的创作可能......
  • idea很好用的mybatis插件
    mybatis_log_plugin此插件可以恢复sql日志为完整的可执行的sql语句、把sql日志里面的?替换为真正的值可以选择在idea里找到下载,也可以在外面下来jar包直接拖拽到idea里下载后在idea:点击后在下面就多了一个MyBatisLog:在运行后,一旦有执行mybat......
  • 权限提升-Windows权限提升篇&溢出漏洞&宝塔面板Bypass&CS插件化&MSF模块化
    知识点1、Web到Win系统提权-权限差异原因2、Web到Win系统提权-溢出漏洞(MSF&CS)3、Web到Win系统提权-集成软件(哥斯拉模块Bypass)章节点:1、Web权限提升及转移2、系统权限提升及转移3、宿主权限提升及转移4、域控权限提升及转移基础点0、为什么我们要学习权限提升转移......
  • 【知识图谱】基于Python Neo4J :忆
    学习新技术,准备做一个用知识图谱和大数据做的的助农项目1.准备工作        首先就是软件的使用,那么选择了使用人数最多,模板使用最多的Neo4J,使用此软件得先安装Java的运行库,这里就不多介绍,网上有许多从零开始的安装教程。        在安装完运行库后,以管理员身......
  • 【Unity】捕捉PC桌面的插件
    【背景】之前介绍了如何用一款名为uWindowCapture的Unity免费插件在Unity的Canvas上展示PC桌面。经过一段时间的使用,本篇继续分享此插件的一些功能和限制。在此感谢作者Hecomi。【特征和限制】一般局域网络环境只能最多达到15帧的帧率,所以别幻想用来窜流游戏或者看电影......
  • MAC安装elasticsearch-head插件
    1.下载插件源码gitclonehttps://github.com/mobz/elasticsearch-head.git2.进入文件夹npminstall3.安装npminstall4.启动npmrunstart5.访问http://localhost:910......
  • Visual Studio 插件 AnAPI++ for VS 2022
    AnmialAPIabbreviationAnAPI++isanautomaticallygeneratedWebAPIprojectthathasencapsulatedJwtOauth2tokenauthentication,SqlSugar,Swagger,Nlog,Crossdomaintechnologies,andsupportsNet6andaboveversionsAnmialAPI缩写AnAPI++是一个自动生成的We......
  • burpsuit插件Turbo Intruder:突破速率限制详解
    一、插件介绍Turbo Intruder是一个BurpSuite扩展插件,用于发送大量HTTP请求并分析结果,可拥抱十亿请求攻击。它旨在处理那些需要异常速度、持续时间或复杂性的攻击来补充Burp Intruder。二、插件原理使用第一次请求的时候就建立好连接,后续获取资源都是通过这条连接来获取资......
  • 移动端 页面适配 原生js及lib-flexible 插件
    1.js原生;(function(win,doc){change()functionchange(){varremSize=window.innerWidth/7.5||50/*设计稿是以width=750px为基准的*/document.querySelector('html').style.fontSize=(remSize>100?100:remSize)+'px'}......
  • 插件-js实现动态时钟效果
    <divid="updatetime"></div>constupdateTime=()=>{varnow=newDate();varyear=now.getFullYear();varmonth=now.getMonth()+1;//getMonth()返回0-11varday=now.getDate();varhours=now.getHour......