比较CSV文件和Neo4j结果

时间:2018-10-24 12:31:18

标签: java csv neo4j

我的任务是将oracle导出(CSV格式但不以逗号作为定界符)与neo4j导出进行比较。

一个oracle csv文件(可以有几百万行)的格式如下:

OBJECT_ID|'¦'|NAME|'¦'|SITE_LOCATION|'¦'|PARENT_ID|'¦'|LOCATION_CODE
9144735089013188062|¦|00|¦|9144735080313909184|¦|9144735085613119290|¦|O2GB

这里OBJECT_ID是唯一的,并按它对数据进行排序。

  1. 现在,我的第一种方法是使用一些Java代码从cypher db创建类似的csv,并将其保存在Map<String, Map<String, String>>变量中,以生成类似cypher的查询结果:
  

{“ loc1” = {ObjectId =“ 9144735079813886326”,NAME =“ locationName”,   SITE_LOCATION =“ Location”,ParentId =“ 9144735080313909184”},       “ loc2” = {ObjectId =“ 9144735079813886326”,NAME =“ locationName”,SITE_LOCATION =“ Location”,ParentId =“ 9144735080313909184”}}

并将其导出到csv。

然后,我必须将两个csvs加载回java以便进行比较,并创建某种报告,如果2个csvs的值不匹配,则需要输入密钥名称。

  1. 我可以想到的第二种方法是将oracle csv加载到Map<String, Map<String, String>>或某种数据类型中,并将其与我的密码结果进行比较,从而跳过neo4j到csv的转换。

是否可以在相似的Map中逐行从每个csv并行加载,而无需将两个csv同时加载到内存中?

什么是最好的方法?

2 个答案:

答案 0 :(得分:0)

也许您应该将CSV加载到任何关系数据库(可能已经有Oracle)并使用SQL查询进行比较?

答案 1 :(得分:-1)

JSON文件是否相同?您可以只使用Meld

之类的差异工具