先决条件
本页概述了在运行 Dataflow 作业将数据导入 Neo4j 之前需要遵循的所有步骤。
Neo4j 实例
您需要一个正在运行的 Neo4j 实例,数据可以流向其中。
如果您还没有实例,有两种选择
-
注册免费的 AuraDB 实例
-
在公开可访问的位置安装和自托管 Neo4j(请参阅 Neo4j → 安装),并打开 7687 端口(Bolt 协议)
该模板使用 约束,其中一些只在 Neo4j/Aura Enterprise Edition 安装中可用。尽管 Dataflow 作业能够在 Neo4j Community Edition 实例上运行,但大多数约束将不会被创建。因此,您必须确保源数据和作业规范已相应准备好。 |
Google Cloud Storage 存储桶
您需要一个 Google Cloud Storage 存储桶。这是 Dataflow 作业获取文件的唯一位置(包括配置文件和源 CSV,如果存在)。
上传连接信息
无论您的 Neo4j 实例如何部署,您都需要创建一个包含数据库连接信息的 JSON 格式文件。我们将此文件称为 neo4j-connection-info.json
。Dataflow 将使用此文件中包含的信息连接到 Neo4j 实例。
基本身份验证方案依赖于传统的用户名和密码。此方案也可用于针对 LDAP 服务器进行身份验证。
{
"server_url": "neo4j+s://xxxx.databases.neo4j.io",
"database": "neo4j",
"username": "<username>",
"pwd": "<password>"
}
如果服务器上禁用了身份验证,则可以省略凭据。
{
"server_url": "neo4j+s://xxxx.databases.neo4j.io",
"database": "neo4j",
"auth_type": "none"
}
Kerberos 身份验证方案需要 base64 编码的票据。仅当服务器已安装 Kerberos 附加组件 时才能使用此方案。
{
"server_url": "neo4j+s://xxxx.databases.neo4j.io",
"database": "neo4j",
"auth_type": "kerberos",
"ticket": "<base 64 encoded Kerberos ticket>"
}
持有者身份验证方案需要身份提供者通过 Neo4j 的 单点登录功能 提供的 base64 编码令牌。
{
"server_url": "neo4j+s://xxxx.databases.neo4j.io",
"database": "neo4j",
"auth_type": "bearer",
"token": "<bearer token>"
}
要登录具有自定义身份验证方案的服务器。
{
"server_url": "neo4j+s://xxxx.databases.neo4j.io",
"database": "neo4j",
"auth_type": "custom",
"principal": "<principal>",
"credentials": "<credentials>",
"realm": "<realm>",
"scheme": "<scheme>",
"parameters": {"<key>": "<value>"}
}
连接文件可以作为机密上传到 Google Cloud Secret Manager 或直接上传到您的 Google Cloud Storage 存储桶中
-
Google Secret Manager — 创建一个新机密,并将
neo4j-connection-info.json
文件作为值上传。 -
Google Cloud Storage — 将
neo4j-connection-info.json
文件上传到您的 Cloud Storage 存储桶。
要导入的数据集
您需要一个要导入到 Neo4j 的数据集。此数据集应包含位于您的 Google Cloud Storage 存储桶中的多个 CSV 文件。本指南提供了一组 CSV 文件供您入门使用。
源 CSV 文件必须满足一些约束
-
它们不应包含空行。
-
它们不应包含标题行。
在源对象定义中指定列名,并在文件中只保留数据行。包含标题行的 CSV 将导致额外导入一个实体,并将列名作为数据值。
由于您正在将数据从关系数据库迁移到图数据库,数据模型可能会发生变化。请查阅 图数据建模指南,了解如何为图数据库进行建模。 |
Google Dataflow 作业
The Google Dataflow 作业将所有部分连接在一起并执行数据导入。您需要编写一个作业规范文件,为 Dataflow 提供将数据加载到 Neo4j 所需的所有信息。

所有与 Google 相关的资源(Cloud 项目、Cloud Storage 存储桶、Dataflow 作业)应属于同一账户,或 Dataflow 作业有权限访问的账户。 |