入门

安装

上传 JAR 文件和连接详细信息

  1. AWS Glue 连接器 - GitHub 下载最新版本的连接器。

  2. 将连接器 neo4j-aws-glue-<version>.jar 文件上传到 Amazon S3 存储桶。

  3. 在 AWS Secrets Manager 中将 Neo4j 或 AuraDB 的连接详情以键/值对的形式存储,其中包括 user(用户)和 password(密码)。

  4. 记录/复制 Secret ARN,因为稍后在连接中使用该密钥时需要它。

本指南不使用环境文件中的命名(neo4j_userneo4j_password),而是使用 userpassword

创建自定义连接器

在 AWS Glue 控制台中

  1. 选择 Create custom connector(创建自定义连接器)。

  2. 为连接器命名,例如 Neo4j-Connector-for-AWS-Glue

  3. Connector S3 URL 中提供上述 S3 存储桶中连接器的链接。

  4. 提供类名 org.neo4j.jdbc.Neo4jDriver

  5. 提供以下 JDBC 基础 URL jdbc:neo4j+s://<aura>?enableSQLTranslation=true,以启用 JDBC 驱动程序内置的翻译功能,将 SQL 命令翻译为 Cypher®

  6. 将 URL 参数分隔符设置为 &

创建连接

只有在前一步创建了自定义连接器后才能创建连接。必须使用在 AWS Secrets Manager 中提供的 userpassword 键/值对,因为这些属性是实际连接所必需的。

  1. 提供连接名称,例如 aws-glue-connection-to-neo4j-auradb

  2. 在连接凭证类型中,选择 <default>(默认)。

  3. 在 AWS Secret 中,选择 Secret from this account(此账户的密钥)。

  4. 提供用于存储上述凭证的密钥名称。

  5. 展开 Additional Options(附加选项),并以键值对形式提供以下额外参数。

属性

user(用户)

${user}

password

${password}

快速入门

以下快速入门演示如何使用 AWS Glue 连接器通过 Visual ETL Editor 将虚拟数据集导入,并将数据子集导出为存储在 S3 上的 Parquet 文件。快速入门假设您已按照“入门指南”安装连接器并配置了与数据库的连接,请相应地更改连接名称。

在 AuraDB/Neo4j 中创建蓝图模式

使用 Query 或 Browser 创建描述要导入的节点、关系和属性的蓝图模式。

CREATE (m:Movie{title:'The Matrix', released:1999})
CREATE (p:Person{name:'Keanu Reeves', born:'1964'})
CREATE (p)-[:ACTED_IN{roles: ['Neo']}]->(m)

将节点导入 AuraDB/Neo4j

  1. 在 AWS Glue 控制台,选择 Visual ETL,为作业命名(例如 “Import data from Parquet on S3 into AuraDB”)。

  2. 从源列表中选择 Amazon S3,然后选择 S3 source typeS3 locationBrowse to S3 以定位要导入的文件。

  3. 首先选择包含节点的 Parquet 文件。

  4. 选择 Infer schema(推断模式)。

  5. 在目标列表中选择 Neo4j-Connector-for-AWS-Glue

  6. 为目标属性提供 aws-glue-connection-to-neo4j-auradb

  7. 表名应设置为要导入的标签名称,例如 Movie

  8. 将显示模式;若需要删除列,可添加 Transform - DropFields 步骤(或其他合适的转换)。如果这些数据来自另一个 Neo4j 数据库,则应删除 v$id

  9. 为每组导入文件和表名添加流。对于节点,这些流可并行添加。

  10. 启动导入作业。

将关系导入 AuraDB/Neo4j

节点导入完成后即可导入关系。可以在导入节点的步骤之后将其添加为附加步骤(例如串行),或创建新的导入作业。

  1. 在 AWS Glue 控制台,选择 Visual ETL** 并为作业命名(例如 “Import relationship data from Parquet on S3 into AuraDB”)。

  2. 从源列表中选择 Amazon S3,随后选择 S3 source typeS3 locationBrowse to S3 定位要导入的文件。

  3. 首先选择包含节点和关系的 Parquet 文件。

  4. 使用诸如 SQL Query 的转换器创建所需的输出模式,本例中为 `(v$person_id, roles, v$movie_id)`。

  5. 在目标列表中选择 Neo4j-Connector-for-AWS-Glue

  6. 为目标属性提供 aws-glue-connection-to-neo4j-auradb

  7. 表名应设置为(虚拟)关系表,例如 Person_ACTED_IN_Movie

  8. 启动导入作业。

从 AuraDB/Neo4j 导出

  1. 在 AWS Glue 控制台,选择 Visual ETL,为作业命名,例如 Export data from AuraDB to Parquet on S3(从 AuraDB 导出数据到 S3 上的 Parquet)。

  2. Sources 列表中选择 Neo4j-Connector-for-AWS-Glue

  3. 为目标属性提供 aws-glue-connection-to-neo4j-auradb

  4. 表名应设置为要导出的标签名称,例如 Movie

  5. Data preview(数据预览)应显示数据样本。

  6. 浏览目标列表,选择 S3 source typeS3 location 并浏览至用于存储 Parquet 文件的 S3 location

  7. 将显示模式;若需要删除列,可添加 Transform - DropFields 步骤(或其他合适的转换)。如果这些数据来自另一个 Neo4j 数据库,则应删除 v$id

  8. 为每组导入文件和表名添加流。对于节点,这些流可并行添加。

  9. 启动导入作业。