Neo4j ETL工具快速上手:简化从关系数据库到图数据库的数据迁移

kettle连接mysql到neo4j_使用Kettle在Neo4j中导入数据 使用Kettle在Neo4j中导入数据Kettle(或Pentaho Data Integration)是一种众所周知的ETL工具。它是成熟的工具,由于其GUI和开放源代码而易于学习。此外,Kettle为所有各种数据编辑器提供了许多插件,因此实际上可以处理您想要的所有数据。在这篇文章中,我将向您展示如何使用Neo4j组件,但是首先,您需要在计算机上安装ketlle。要安装Kettle,这非常容易,... 阅读详情

注:本文系从https://medium.com/neo4j/tap-into-hidden-connections-translating-your-relational-data-to-graph-d3a2591d4026翻译整理而来。

本文介绍新近推出的Neo4j ETL App,包括其安装、使用和功能特性。大纲如下:

  • Neo4j ETL工具
  • 添加Neo4j ETL应用程序
  • 选择项目
  • 检索RDBMS元数据
  • Mapping.json中的数据
  • 调整映射
  • 导入数据
  • 检查导入的数据
  • 总结

Neo4j ETL工具

Neo4j ETL(Extract-Transform-Load)工具的构建使开发人员能够轻松地将关系数据加载到图数据库中。它包括3个简单的步骤来实现:

  1. 通过JDBC设置指定源关系数据库;
  2. 使用图形化的编辑工具建立数据模型映射;
  3. 运行生成的脚本将所有数据导入到Neo4j。

该工具很容易访问和使用。有两种方式与工具交互:

  1. 通过命令行,
  2. 通过Neo4j Desktop应用程序。 为了使用命令行,在GitHub上下载项目,并按照文档说明运行每个步骤: https://github.com/neo4j-contrib/neo4j-etl

本文将主要介绍如何在Neo4j Desktop中使用ETL工具。

添加Neo4j ETL应用程序要在Neo4j Desktop中添加ETL,首先需要联系Neo4j以获取激活密钥,并添加到配置文件中。下面的屏幕截图显示了如何在Neo4j Desktop中添加激活密钥。


完成后,即可以访问ETL应用程序。现在,我们需要将它添加到图形应用程序中。

首先,进入Neo4j Desktop中的Projects菜单,选择/创建一个项目。然后,点击右侧菜单窗格第一个横幅下的“添加应用程序”。当弹出窗口显示可添加的应用程序时,通过单击“添加”按钮选择ETL应用程序。如下图所示:



好,一切就绪了!现在,点击ETL App图标,就可以运行这个工具了。


选择项目Neo4j

ETL App采用类似执行向导的方式,让ETL设计和运行的每一步都直观、简洁。第一步,是选择一个要运行ETL的项目。这将在应用程序的主屏幕上打开一个新窗口,如下所示。选择要在其中工作的项目,这将告诉应用程序Neo4j数据库的位置。


设置RDBMS连接

接下来,我们需要建立一个关系数据库连接。该工具允许使用支持JDBC驱动程序的大多数类型的关系数据库,包括MySQL,PostgreSQL,Oracle,Cassandra,DB2,SQL Server,Derby等。虽然MySQL和PostgreSQL数据库内置于该工具中,但通过指定驱动程序文件可以轻松设置所有其他数据库。

在这个例子中,我将使用加载了Northwind数据集的PostgreSQL关系数据库。如果需要安装此示例数据库和数据集,那么可以下载PostgreSQL、并运行从GitHub上获得的为Northwind数据集提供的加载脚本。链接如下:https://github.com/pthom/northwind_psql

要设置连接详细信息,首先单击左侧边栏(数据库)中的顶部图标,然后单击打开窗格中的RDBMS选项,这将在窗口右侧显示JDBC Connection界面。

首先从“类型”下拉字段中选择数据库类型,其他一些字段将自动填充。在这个例子中,选择postgresql选项。这里,使用默认端口和连接URL就可以了。


现在我们可以根据需要填写其他细节。在“连接名称”字段中输入任何你喜欢的名称。需要注意的是“数据库”字段必须与关系数据库中实际的名称相匹配。如果使用Postgres或MySQL以外的其他数据库,请确保选择相应的连接驱动程序。

注意:如果为关系数据库设置了用户名和密码,则必须在相应的字段中输入这些用户名和密码。但是,如果没有为关系数据库指定用户名和/或密码,则可以将其中一个或两个字段留空。完成所有细节填写后,单击窗格底部的“ 测试并保存连接 ”按钮,这时应该会在顶部看到一个蓝色的消息栏,表示连接已成功保存。如果其中一个字段不正确或无法找到关系数据库,则会出现一条带有错误消息的红色条。

检索RDBMS元数据

好了,现在我们已经建立了关系数据库连接。接下来,选择左侧边栏中的第二个图标(导入),然后在打开的窗格中单击“导入数据”选项。这会在窗口右侧显示“检查元数据”面板。

要从关系图映射到图,我们从顶部列表中选择已加载的关系数据库连接,然后选择在底部列表中选择要写入的图形数据库。选中的数据库信息会出现在窗口右侧的FROM和TO文本中。完成后点击Start Mapping按钮。


Mapping.json中的数据

输出会在窗口的底部显示。其中包括一些JSON文件。这是mapping.json基于源关系数据库的模式创建的文件。这是ETL过程的执行逻辑定义,因为如果决定在迁移中忽略特定的表或字段,则可以对此文件进行更改。

要查看该文件,打开Neo4j桌面窗口,转至当前项目,然后找到目标Neo4j数据库上,点击下面的“Manage”按钮。在本例中,它的名称为ETL_db。在打开i的面板上面点击“打开文件夹”按钮。


这里,应该可以看到一个postgresql_northwind_mapping.json文件(或类似命名的文件)。如果在进行下一步之前想做出任何更改,可以直接打开并编辑。这里,我我们对mapping.json不做任何修改、直接进入下一步。

调整映射回到ETL应用程序窗口,单击右下角的“ 下一步 ”按钮,打开数据建模屏幕。可以移动屏幕右侧图表中的节点和关系,以便更好地查看它们中的每一个。

在这里,可以更改节点名称、关系、甚至属性(字段)名称和数据类型。例如,可以选择更适合的关系类型,将它们从通用名词更改为更具体的动词。本例中,将员工节点之间的关系从“ EMPLOYEES”改为“ REPORTS_TO”,因为员工可以向另一个员工(即经理)报告。

Neo4j ETL App会根据源数据库模式决定基本的数据映射,规则如下:a. 拥有1个外键的表会映射成节点和其上的关系;b. 拥有2个外键的表会被当做是关系表,映射成关系;c. 拥有多于2个外键的表会被当作中间表处理,映射成拥有多个关系的节点。

数据导入

一旦对建立的映射足够满意了,可以点击右下角的“ 下一步”按钮。这将打开最后一步的屏幕,即选择导入方式。有四个选项可以使用:

  1. Neo4j import命令行工具 - 适用大型数据集的快速、初始、批量导入,数据库必须脱机且本地运行,已有数据将被覆盖。
  2. Neo4j Shell  - 基于Cypher的大型数据集导入,数据库必须脱机且本地运行。
  3. Cypher Shell  - 创建并运行可编辑的Cypher脚本,数据库需要联机。
  4. 直接Cypher导入  - 创建可以编辑的Cypher脚本,数据库需要联机,在客户端通过Bolt协议连接数据库并导入数据。 所以,采用何种导入方法的关键是,Neo4j数据库是否正在运行/联机,以及是否要将数据添加到现有的图数据库中。

Neo4j Import 比Cypher导入要快得多,因为它使用底层数据库文件直接、批量导入程序来初始创建数据库。但是,如果无法关闭并更换数据库,那么Cypher导入选项是更加可行的方案。

最后,单击“导入数据 ”按钮,屏幕底部的输出会显示后台命令执行的状态。完成后,窗口顶部会出现蓝色的消息栏,表示导入已成功。


检查导入的数据

要验证加载的所有内容并开始使用Neo4j中的数据,我们可以查看数据模型并从Neo4j浏览器或连接到数据库的应用程序运行查询。

在这个例子中,我们回到Neo4j桌面窗口,进入到ETL_db数据库,然后点击’ 打开浏览器 `。在浏览器命令行上执行CALL db.schema()会你显示图形数据模型。


请注意,该模型不包含连接到Customer节点的Customer Demographics节点。这是因为所使用的Postgres数据集在客户人口统计学csv文件中没有任何数据。

接下来,你可以充分运用你的Cypher技能对数据库中的数据进行查询、更新和分析,在连接的数据集中收集价值和发现新的内在价值。下面的屏幕截图显示了关于客户、托运人、订单和产品的查询结果。

总结ETL工具的使用将大大简化从关系数据库到图数据库进行数据迁移的开发和运行。目前,ETL App还处于早期版本,许多重要的ETL特性,例如对更加复杂的映射规则的支持、并行数据导出/导入的执行等都尚未实现。因此,现阶段更加适合于作为一个建模/开发工具,简化数据映射的过程、生成可客户化的ETL脚本。对于复杂的项目,可以参考Pentaho 的Kettle ETL工具。

如需了解更多,或者希望试用ETL App,欢迎随时联系。


图数据库实战入门——Neo4j Desktop一站式安装与核心工具解析 本文详细介绍了Neo4j Desktop的一站式安装流程与核心工具使用技巧,帮助开发者快速上手图数据库。从下载安装到首次配置,再到Browser、Bloom和ETL工具的应用解析,全面覆盖Neo4j Desktop的核心功能,提升图数据库操作效率。 阅读详情

相关推荐

实战分享:用neo4j-admin import快速导入百万级CSV数据(附完整避坑指南)

本文详细介绍了使用neo4j-admin import工具高效导入百万级CSV数据的实战经验。通过解析其离线批量导入的设计哲学,提供CSV文件准备、核心命令参数调优及性能诊断的完整指南,帮助开发者规避常见陷阱,实现从关系型数据库到Neo4j图数据库的快速迁移。

weixin_29214691的博客 294

Neo4j-ETL使用说明

虽然Neo4j-ETL提供了很简便的界面导入功能,但是无法进行定时同步,实际生产中还是使用命令行导入的情况较多,官方文档写的混乱很难通过看它配置成功,故写此文档进行详细说明,此文档主要说明Neo4j-ETL的安装及操作说明。

jsnh307的专栏 1084

告别命令行恐惧:用Neo4j Desktop图形化界面5分钟搞定安装与初体验

本文介绍如何通过Neo4j Desktop图形化界面快速安装和初体验Neo4j图数据库,告别复杂的命令行操作。Neo4j Desktop自动管理JDK配置,支持多版本切换,提供一键启停服务和可视化运维管理,大幅提升开发效率,特别适合初学者和快速验证场景。

weixin_30764883的博客 382

Neo4j ETL 项目使用教程

Neo4j ETL 项目使用教程 1. 项目介绍 Neo4j ETL 是一个用于将数据从关系型数据库导入到 Neo4j 图数据库的开源工具。它支持多种关系型数据库,如 MySQL 和 PostgreSQL,并提供了图形用户界面(GUI)和命令行工具两种方式来管理数据导入过程。Neo4j ETL 的主要功能包括自动提取数据库元数据、生成图模型、可视化编辑标签和关系类型、以及通过多种方式(如 neo4...

gitblog_00500的博客 1115

从零到一:Neo4j 社区版与企业版的深度对比与选型指南

本文深度对比了Neo4j社区版与企业版的核心功能、性能差异及适用场景,为技术选型提供决策指南。重点分析企业版在集群部署、高可用性和安全认证等方面的优势,以及社区版在开发验证和小型环境中的适用性。帮助用户根据数据规模、性能需求和预算做出明智选择。

weixin_29210727的博客 740

Neo4j数据迁移:从关系型数据库到图数据库

当你在关系型数据库(如MySQL)中处理“用户-好友-动态”“订单-产品-商家”这类复杂关联数据时,是否曾因多表JOIN的性能瓶颈而头疼?是否曾因数据模型的僵化无法快速响应业务需求而焦虑?图数据库(如Neo4j)通过“节点-关系”模型,将数据的关联直接存储为物理结构,彻底解决了关系型数据库的“关联查询诅咒”。本文将以**“从关系型数据库到Neo4j的完整迁移流程”为核心,用“迷宫 vs 网络”的比喻拆解复杂概念,通过。

大数据洞察的博客 974

打开json文件的工具_Neo4j ETL工具快速上手:简化从关系数据库到图数据库的数据迁移...

注:本文系从https://medium.com/neo4j/tap-into-hidden-connections-translating-your-relational-data-to-graph-d3a2591d4026翻译整理而来。本文介绍新近推出的Neo4j ETL App,包括其安装、使用和功能特性。大纲如下:Neo4j ETL工具添加Neo4j ETL应用程序选择项目检索R...

weixin_39608526的博客 595

跨越数据孤岛:MySQL与图数据库的深度融合,开启智能关联分析新时代

除了上述批量导入的方式之外,我们还可以编写Python或其他编程语言编写的脚本来实现实时或准实时的数据同步。这类脚本通常会监听MySQL Binlog日志的变化,一旦发现有符合条件的操作发生(如INSERT、UPDATE、DELETE),便立即触发相应的API调用,向Neo4j发送变更通知。"""建立到MySQL的连接""""""建立到Neo4j的连接""""""处理Binlog事件""""""在Neo4j中创建新用户节点""""""更新现有用户节点的信息""""""删除指定ID的用户节点"""

墨夶的博客 918

3分钟上手!SeaTunnel Neo4j连接器:图数据库同步实战指南

你是否还在为关系型数据库与图数据库间的数据同步而烦恼?是否因复杂的ETL流程望而却步?本文将带你零代码实现数据一键入图,从配置到运行全程可视化,让你3分钟内掌握SeaTunnel Neo4j连接器的核心用法。读完本文你将获得:图数据库同步的完整解决方案、批量写入性能优化技巧、常见问题排查指南。 ## 为什么选择SeaTunnel Neo4j连接器? 图数据库(Graph Database)凭借...

gitblog_00454的博客 1188

neo4j-etl:将数据从关系数据库导入Neo4j

neo4j-etl:将数据从关系数据库导入Neo4j

kettle-neo4j-graph-output:将数据直接输出到Neo4j图形模型中(的一部分)

水壶neo4j图输出 将数据直接输出到Neo4j图形模型中(的一部分)

Neo4j-ETL 开源项目使用指南

Neo4j-ETL 开源项目使用指南 1. 项目目录结构及介绍 Neo4j-ETL 是一个用于将关系型数据库数据导入到 Neo4j 图数据库的工具。以下是该仓库的基本目录结构及其简要介绍: docs: 包含了项目的文档资料,如 .adoc 和 .yaml 文件,用于描述项目功能和使用方法。 .gitignore: 指定了Git在提交时应忽略的文件或目录。 LICENSE.txt: 许可证文件,表...

gitblog_00652的博客 1034

Clion编译stm32cube初始化工程时non constant or forward reference address expression for section .ARM.extab报错

相信应该有同学在看了稚晖君关于clion开发stm32的文章之后也想在自己PC上实现“优雅の嵌入式开发”遇到和我类似的问题。他的文章是22年写的,我个人猜测应当是版本更新导致的不适配。意思就是说 READONLY 只能在gcc11以后的版本中使用,gcc10及以前的版本将无法正确识别,也就有如下错误。或者就可以将gcc升级至最新的版本。记得在clion工具链中修改c,cpp编译器的位置。可以将文本括号中的 READONLY 全部删除。当时由于没有注意到这行注释导致在这里卡了好久。

2301_77256849的博客 2512

如何快速上手Neo4j APOC:数据导入导出实战教程

想要高效管理Neo4j图数据库中的数据导入导出吗?Neo4j APOC(Awesome Procedures On Cypher)扩展库为你提供了强大的数据处理能力!🎯 作为Neo4j最受欢迎的工具包,APOC包含超过450个存储过程和函数,特别在数据迁移、ETL处理和格式转换方面表现出色。本文将为你详细介绍如何使用Neo4j APOC进行数据导入导出的完整实战教程,让你轻松掌握图数据库数据管理

gitblog_00246的博客 716

questasim的傻瓜式安装与仿真教程

一、安装 1、下载软件 链接:https://pan.baidu.com/s/1S05AnO_w-wy6RsAj_kdUXg 提取码:p2nt 2、根据电脑类型是32位还是64位,解压不同安装包。 解压得: 2、运行.exe文件,出现: 问题及解决办法: 这是杀毒软件造成的,因此在安装过程中关闭杀毒软件即可。关闭之后,再次运行.exe文件。 3、点击下一步,进入选择安装位置界面,如下:选择好安装位置后点击下一步。 4、点击同意 5、接下来等待安装结束即可,在安装过程中,会跳出来弹框,询问是否要添

树下等苹果的博客 3万+

从零到一:i.MX8M Plus开发板全流程开发指南(源码编译、烧录、镜像运行)

本文详细介绍了i.MX8M Plus开发板的全流程开发指南,包括源码编译、烧录和镜像运行等关键步骤。通过实战案例和配置技巧,帮助开发者快速掌握工业级应用开发,提升在边缘计算和AI推理等领域的开发效率。

weixin_30687051的博客 567

探索Apache Hop与Neo4j的强大结合:数据处理的全新境界

探索Apache Hop与Neo4j的强大结合:数据处理的全新境界 项目介绍 Apache Hop(原名Pentaho Data Integration)是一个强大的开源数据集成平台,旨在帮助用户轻松地进行数据抽取、转换和加载(ETL)操作。而Neo4j,作为全球领先的图数据库,以其高效的图数据处理能力而闻名。本项目将Apache Hop与Neo4j无缝集成,为用户提供了一个高效、灵活的数据处理解...

gitblog_00714的博客 881

ArchLinux下用Wine运行钉钉全攻略:从字体配置到中文输入法避坑

本文详细介绍了在ArchLinux系统上使用Wine运行钉钉的完整配置流程。从最新的WoW64架构环境准备、中文字体配置与DPI优化,到钉钉安装、关键系统库替换,再到解决中文输入法失效等核心难题,提供了实战避坑指南。旨在帮助Linux用户在企业办公场景下,获得接近原生的稳定使用体验。

alice7model的博客 588

Neo4j图数据库实战:从关系建模到高效查询

图数据库是一种以节点、关系和属性为核心的数据模型,专为处理高度关联的复杂网络而设计。其底层采用原生图存储结构,使关系遍历接近O(1)内存寻址,显著优于传统SQL中多表JOIN带来的笛卡尔积与I/O开销。技术价值体现在毫秒级深度路径查询、动态模式发现及ACID强一致性保障,广泛应用于金融风控、社交推荐、知识图谱与供应链分析等场景。本文聚焦Neo4j实践,结合Cypher语法精要、AuraDB云环境快速搭建、CSV到图结构的批量导入工程,以及真实足球数据集上的高性能索引与查询优化,系统呈现从零落地图技术的关键路

weixin_33910385的博客 371

基于PCIe的NVMe协议在FPGA中实现方法

NVMe协议是工作在PCIE的最上层协议层的,故需要先搞清楚PCIE。本文基于Xilinx的UltraScale+,开发工具为Vivado2021.2。NVMe的学习仍以spec为主,其它资料辅助理解,有冲突时以spec为准,必要时可对比最新版本spec。(此文重点介绍学习方法及资料,有时间再加细节)。 主要参考的文章是《老男孩读PCIe》,同时参考《古猫先生》,重点学习TLP报文部分,数据链路层和物理层的内容可以先不看。再买一本书《PCI Express 体系结构导读-王齐》用来查阅做笔记。

leixj的博客 1万+

QGraphicsView通过鼠标操作来绘制图元

在Visio和MindManager等类似的图元操作软件中,很多时候我们会通过鼠标操作来添加自定义的图元。这里就介绍一下如何在QT的图形视图框架中通过鼠标绘制来添加图元。

yang1fei2的博客 3576
上一篇: Neo4j最新版本3.4的特性一览
下一篇: Neo4j Cypher 图数据库查询语言快速参考 - 【1】 基本语法
俞博士
俞博士 领域专家: 数据库技术领域 领域专家: 数据库技术领域 业界专家认证 业界专家认证
博客等级 码龄9年 2326粉丝 72原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值