知识库

导入 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.