知识库

导入 CSV 文件:Neo4j Aura、Desktop 和 Sandbox

将各种类型的文件加载到 Neo4j 中需要根据所使用的工具选择不同的位置。

我们将介绍的导入方法

  1. Remote: Neo4j Aura and Neo4j Sandbox

  2. Local: Neo4j Server and Neo4j Desktop

Neo4j Aura 和 Neo4j Sandbox

托管在云端的 Neo4j 版本只能访问远程 http(s) URL。由于在云端托管,安全设置不允许沙盒访问桌面上的本地文件设置。所有需要导入的文件必须存储或放置在实例能够访问的远程位置。

  • GitHub

  • Pastebin

  • 云供应商存储

  • 网站

  • Google Drive

  • Dropbox.

我们将查看一些将文件导入云托管 Neo4j 实例的位置示例。

GitHub

如果您在 GitHub 仓库或 GitHub Gist 中找到或放置文件,其他人可以以原始格式访问该内容。您只需导航到包含该文件的页面并打开文件。打开后,您应该会看到文件内容上方如下面所示的菜单栏。

在右侧的按钮列表中点击 Raw 按钮,页面加载后复制 URL 路径(URL 应以 https://raw.githubusercontent.com/…​ 开头)。现在您就可以在 Neo4j Browser 会话中使用类似以下语句来使用该数据。

LOAD CSV FROM 'https://raw.githubusercontent.com/<yourFileRepositoryPath>' AS row
RETURN row
LIMIT 20

网站

如果文件托管在网站上,Neo4j 可以通过公共 URL 访问它。例如,在 Neo4j Cypher 手册中,LOAD CSV 页面使用了 neo4j.com 上的 CSV 文件。

LOAD CSV FROM 'http://data.neo4j.com/northwind/products.csv' AS row
RETURN row

对任何云供应商的存储也同样适用

  • AWS S3

  • GCP Buckets

  • Azure Blob storage

您可以使用凭证通过 UI 或 CLI 将文件上传至上述位置,并将其(临时)设为公共可访问,然后使用文件的 HTTPS URL。

Google Sheets

如果文件已发布至网络,您可以访问上传到 Google Sheets 的文件。文件导入到 Google 表格的一个工作表后,您可以按照下图的截图一步步完成后续过程。

红色框和编号显示了点击位置及步骤顺序。

步骤 1 - 发布至网络

image

步骤 2 - 选择标签名称并设置为 CSV 格式

image

步骤 3 - 确认发布并复制链接

image

步骤 4 - 运行 Cypher LOAD CSV 命令
LOAD CSV WITH HEADERS FROM 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSx5-mHPUs7hQ3292zrLL_FeNzo85iC83TiezRcPl_SUv4NpW0e2VZilCUH9KbCWExAfE7OAELgdCW8/pub?gid=0&single=true&output=csv' AS row
RETURN row

Dropbox

上传到 Dropbox 的文件的操作方式与 Google Drive 类似。您同样需要确保权限设置正确。以下截图演示了其余步骤。

步骤 1 - 检查文件权限

image

步骤 2 - 确保权限为公开

image

步骤 3 - 下载 Dropbox 文件

image

步骤 4 - 前往浏览器下载列表并复制链接地址

image

步骤 5 - 运行 Cypher LOAD CSV 命令
LOAD CSV WITH HEADERS FROM 'https://<fileId>.dl.dropboxusercontent.com/cd/0/get/<yourFilePath>/file#' AS row
RETURN row

本地 Neo4j 安装和 Neo4j Desktop

本地的 Neo4j 安装当然也可以如上所述通过 URL 访问远程文件。

如果出于隐私或性能考虑需要从本地磁盘导入文件,必须将其放置在 import 文件夹中。该文件夹通常位于 Neo4j 服务器安装目录的相对位置。

随后这些文件可以通过 file:///filename.csv URL 访问,例如:

LOAD CSV WITH HEADERS FROM 'file:///products.csv' AS row
RETURN row

Neo4j Desktop

在 Neo4j Desktop 中,您可以通过 UI 中的 “打开(文件夹)” 下拉菜单或选项,在文件管理器(资源管理器、Finder 等)中打开该文件夹。

然后将文件放置在那里,即可直接从 Neo4j 访问。

The CSV 导入开发者指南 walks through loading local CSV files to Neo4j Desktop.

自定义导入文件夹

如果您需要的文件位置不同于默认路径,可以在 neo4j.conf 文件中更新以下设置。我们建议指定目录路径,而不是将此设置注释掉,以避免配置注释中提到的安全问题。

# This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or comment it out to
# allow files to be loaded from anywhere in the filesystem; this introduces possible security problems. See the
# `LOAD CSV` section of the manual for details.
dbms.directories.import=import

资源

您可以在 运维手册 中查看按操作系统划分的完整文件位置列表(不包括 Sandbox)。

Andy Jefferson 探讨了将文件(安全)加载到远程 Neo4j 实例的不同方法 * 第 1 部分 - ngrok 与 Python 网络服务器 * 第 2 部分 - 云存储

© . This site is unofficial and not affiliated with Neo4j, Inc.