首页 > 解决方案 > 将excel sheet的数据与neo4j中的相关数据进行对比

问题描述

我们以 excel 格式将数据从 RDBMS 迁移到 NEO4J。我们在 excel 表中有大约 100000 条记录,使用该 excel 表我们在 neo4j 中创建了数据。现在,我们要将excel的数据与neo4j中的节点数据进行比较。

excel表中有一些字段是重复的,这意味着特定字段值被多次使用,但在neo4j中它只有1次。(使用合并)

有没有办法比较和验证大量的数据。所以,我们可以知道我们没有丢失任何数据。

标签: excelneo4j

解决方案


我不认为有一个具体的通用答案(比如可以为你做这件事的工具),因为它必须依赖于电子表格数据结构、neo4j 数据模型以及你希望两者如何对应的知识.

但也许您可以通过从电子表格中提取以下信息来进行完整性检查:

  • 您期望(每个标签的)多少个节点
  • 您期望有多少关系(每种类型)

并将其与 neo4j DB 实际包含的内容进行比较。如果数字完全匹配,那么您可以确信您的数据是完整的。您还可以抽查一些节点以查看它们是否具有预期的关系,并检查这些节点和关系是否具有正确的数据。

要获取每个标签的节点数以及每种类型的关系,可以使用 APOC 过程apoc.meta.stats

CALL apoc.meta.stats() YIELD labels, relTypesCount
RETURN *

这是一个示例结果:

╒══════════════════════════════════════╤══════════════════════════════════════╕
│"labels"                              │"relTypesCount"                       │
╞══════════════════════════════════════╪══════════════════════════════════════╡
│{"Movie":76,"Class":2,"Partner":1,"Con│{"ACTED_IN":344,"REVIEWED":18,"WROTE":│
│tract":2,"Person":275,"Claim":2}      │20,"PRODUCED":30,"CLAIMANT":2,"FOLLOWS│
│                                      │":6,"DIRECTED":88,"POLICY_HOLER":2}   │
└──────────────────────────────────────┴──────────────────────────────────────┘

我只选择了YIELD该程序的 2 个结果;你可能想看看其他人,看看你可能想做哪些额外的检查。


推荐阅读