从 Postgres 导出并在 Neo4j 中导入 - 在此过程中丢失了一些数据

Exporting from Postgres and importing in Neo4j - some data lost in the process

我有一个 Postgres table,我将其完全导出为 CSV。 我正在 Neo4j 中导入所有行的 CSV 文件。 导出和导入的记录数不同。 我在导出或导入过程中没有收到任何错误。 这是计数。我丢失了 133 条记录。

select count(1) from wokas;
  count   
----------
 19798966
(1 row)

match (n:Woka) return count(n);
+----------+
| count(n) |
+----------+
| 19798833 |
+----------+
1 row
16944 ms

导出命令为:

COPY (SELECT woka_id, author_id, publisher_id, language_id, woka_title FROM wokas) TO '/Users/levi/woka-data/wokas.csv' WITH CSV header;

导入命令为:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/Users/levi/woka-data/wokas.csv" AS row
CREATE (:Woka {woka_id: row.woka_id, author_id: row.author_id, publisher_id: row.publisher_id, language_id: row.language_id, woka_title: row.woka_title});

这里有什么问题?

它可能是您的 CSV 中的内容,例如。杂散引号或空字符等

您可以使用 csvkit 等工具来分析您的 CSV。

您也可以使用 Cypher 来完成其中的一些工作。开始于:

LOAD CSV WITH HEADERS FROM "file:/Users/levi/woka-data/wokas.csv" AS row
RETURN count(*)

然后从那里开始工作...

我们在这里介绍了其中的一些内容:

http://neo4j.com/developer/guide-import-csv/#_csv_data_quality