关系型数据 CSV 导入图数据 Neo4j

github链接:

目标

本文演示了将CSV数据导入Neo4j的不同方法以及该过程中可能出现的潜在问题的解决方案。

先决条件

在导入数据之前,您应该熟悉什么是图形数据库,如何构建属性图数据模型以及Cypher查询语言的一些基础知识。所有这些技能都是数据导入过程的一部分。中间

CSV是一个用逗号分隔的值的文件,通常在Excel或其他电子表格工具中查看。可以使用其他类型的值作为定界符,但最标准的是逗号。如今,许多系统和流程已经将其数据转换为CSV格式,以便将文件输出到其他系统,人性化的报告以及其他需求。这是人类和系统已经熟悉的使用和处理的标准文件格式。

为Neo4j提供读取和加载CSV文件的功能有助于减少将数据从各种格式和系统导入Neo4j的麻烦。

导入CSV文件的方法

有几种方法可以将CSV数据导入Neo4j,每种方法都有不同的标准和功能。您选择的选项将取决于数据集的大小,以及您对各种工具的舒适程度。

让我们看看Neo4j可以读取和导入CSV文件的一些方式。

  1. LOAD CSV Cypher命令:此命令是一个很好的起点,可以处理中小型数据集(最多1000万条记录)。
  2. neo4j-admin 批量导入工具:命令行工具,用于直接加载大型数据集。
  3. 水壶导入工具:映射并执行数据处理流程的步骤,并且对于非常大的数据集非常适用,尤其是在开发人员已经熟悉使用此工具的情况下。

我们将简要介绍这些工具中的每一个,它们的操作方式以及如何开始使用一般用例。每个文档的更多文档和信息也将包括在内,以在更复杂的情况下提供帮助。数据质量也可能是任何类型的数据导入任何系统的问题,因此我们将介绍其中一些潜在的困难以及如何解决它们。

使用Cypher的LOAD CSV命令

LOAD CSV子句是Cypher查询语言的一部分。我们的Cypher手册包含一个专门介绍其用法的页面,Neo4j的各种博客,视频,解决方案和其他材料都使用此命令。它使用简单并且广泛适用。 LOAD CSV不只是您的基本数据提取机制,还因为它将多个方面组合到一个操作中。

  • 支持从URI加载/提取CSV数据
  • 直接将输入数据映射到复杂的图/域结构
  • 处理数据转换
  • 支持复杂的计算
  • 创建或合并实体,关系和结构
  为了更好地控制,您可以LOAD CSV使用cypher-shell而不是在浏览器中运行命令。有关更多信息,请参见Cypher shell的手册页。

读取CSV文件

LOAD CSV可以处理本地和远程文件,并且每个文件都有一些语法。这很容易错过,最终会导致访问错误,因此我们将在此处尝试阐明规则。

本地文件file:///在文件名之前带有前缀。Neo4j安全性有一个默认设置,即只能从Neo4j导入目录中读取本地文件,这取决于您的操作系统。Neo4j操作手册中列出了每个操作系统的文件位置。我们建议将文件放在Neo4j的import目录中,因为这样可以保护环境安全。但是,如果您需要访问其他位置的文件,则可以在我们的手册中找到要更改的设置。

例子
//Example 1 - file directly placed in import directory (import/data.csv)
LOAD CSV FROM "file:///data.csv"

//Example 2 - file placed in subdirectory within import directory (import/northwind/customers.csv)
LOAD CSV FROM "file:///northwind/customers.csv"

网络托管文件可以直接使用其URL进行引用,例如https://host/path/data.csv。但是,必须设置权限,以便外部源可以读取文件。有关与在线文件导入相关的访问的更多信息,请参见此知识库文章

例子
//Example 1 - website
LOAD CSV FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists.csv'

//Example 2 - Google
LOAD CSV WITH HEADERS FROM 'https://docs.google.com/spreadsheets/d/<yourFilePath>'
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值