如何使用 LOAD CSV 导入数据?

· 约 3 分钟读完 · 第 115 / 124 章

推荐答案

本题详细解读

1. LOAD CSV 的基本语法

LOAD CSV 是 Neo4j 提供的一个用于从 CSV 文件中导入数据的命令。它的基本语法如下:

  • WITH HEADERS:可选参数,表示 CSV 文件的第一行是列名。如果指定了这个参数,可以通过 row.column_name 来访问每一列的数据。
  • FROM 'file:///path/to/file.csv':指定 CSV 文件的路径。路径可以是本地文件路径,也可以是远程 URL。
  • AS row:将每一行数据赋值给变量 row,后续可以通过 row 来访问每一列的数据。

2. 使用 LOAD CSV 导入数据

假设我们有一个 CSV 文件 data.csv,内容如下:

我们可以使用以下 Cypher 语句将数据导入到 Neo4j 中:

  • WITH HEADERS:表示 CSV 文件的第一行是列名。
  • CREATE (n:Person {name: row.name, age: toInteger(row.age)}):为每一行数据创建一个 Person 节点,并将 name 和 age 属性赋值给节点。

3. 注意事项

  • 文件路径:file:/// 表示文件路径是相对于 Neo4j 的 import 目录的。如果文件不在 import 目录下,需要提供绝对路径。
  • 数据类型转换:CSV 文件中的所有数据都是字符串类型,因此在导入时需要进行适当的数据类型转换,例如使用 toInteger() 将字符串转换为整数。
  • 性能优化:对于大规模数据导入,建议使用 USING PERIODIC COMMIT 来分批提交事务,以避免内存溢出。
  • USING PERIODIC COMMIT 500:每处理 500 行数据后提交一次事务。