知识库

导入 CSV 文件:Neo4j Aura、桌面版和沙盒

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

我们将介绍的导入方法

  1. 远程:Neo4j AuraNeo4j 沙盒

  2. 本地:Neo4j 服务器和 Neo4j 桌面版

Neo4j Aura 和 Neo4j 沙盒

云托管版本的 Neo4j 只能访问远程 http(s) URL。由于它们托管在云中,因此安全设置不允许沙盒访问桌面上的本地文件设置。需要导入的任何文件都必须存储在实例可以访问的远程位置或放置在远程位置

  • GitHub

  • Pastebin

  • 云提供商存储

  • 网站

  • Google Drive

  • Dropbox。

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

GitHub

如果您在 GitHub 存储库或 GitHub Gist 中找到或放置文件,其他人可以以原始格式访问内容。您只需导航到包含该文件的位置并转到该文件。在那里,您应该会看到一个菜单栏,如下面的文件内容上方所示。

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

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 存储桶

  • Azure Blob 存储

您可以使用您的凭据和 UI 或 CLI 将文件上传到那里,并使其(暂时)公开访问,然后使用文件的 HTTPS URL。

Google 表格

您可以访问上传到 Google 表格的文件,如果它们已发布到网络上。将文件导入到 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 桌面版

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

如果您出于隐私或性能原因想要从本地磁盘导入文件,则必须将它们放置在 import 文件夹中。它通常位于您的 Neo4j 服务器安装目录的相对位置。

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

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

Neo4j 桌面版

Neo4j 桌面版中,您可以通过 UI 点击“打开(文件夹)”下拉菜单或菜单打开文件管理器(资源管理器、查找器等)中的文件夹。

然后将文件放置在那里,并直接从 Neo4j 访问它们。

CSV 导入开发者指南 演示了如何将本地 CSV 文件加载到 Neo4j 桌面版。

自定义导入文件夹

如果您需要与默认位置不同的文件位置,可以在 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

资源

您可以在 操作手册 中找到按操作系统列出的完整文件位置列表(不包括沙盒)。

Andy Jefferson 探讨了将文件(安全地)加载到远程 Neo4j 实例中的不同方法 * 第 1 部分 - ngrok 和 python webserver * 第 2 部分 - 云存储