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

时间:2015-04-02 22:25:23

标签: neo4j

我有一个Postgres表,我将其完全导出为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});

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

它可能是您的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