专栏首页陈黎栋的专栏啦Neo4j·数据导入需要注意的坑·方案对比

Neo4j·数据导入需要注意的坑·方案对比

如果觉得写的好或对您有帮助,麻烦右边点个赞哦~~

  • 数据导入方案对比
    • neo4j-admin import
      • 最快的方案
      • 10s导入15w节点
    • Spark(同事)
      • 0.5h, 50w节点
    • apoc导入hdfs里的csv文件
      • 100w个节点数据0.5h导不完
  • CSV处理经验
    • 源数据到CSV,注意将源数据中的英文,进行提前处理
    • 字符串内部的引号不提前转义或过滤会引起导入错误
      • 如: 的合法时间“为人特让他”发顺丰 被识别为三个字符串
    • hash不是唯一映射, 自增长ID可以解决唯一性问题
  • .CSV说明
    • Node的类型用:Label做header
    • Edge的类型用:TYPE做header
    • 官方文档里ID用的是不带引号的字符串,ID是32位内整型(忘记在哪查到的了)
    • .CSV中的字符串不一定要有单引号' '或双引号,两种引号应该都可以。但请一定加引号,避免字段内有英文逗号。
    • header中propertyName后面的“:类型" 可以省略
    • node.csv里加了ID namespace,edge.csv里也得加上才能互相识别出来
    • Official Document. https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/
      • 可以把同一个label的csv文件分成多个,比如:person-part1.csv, person-part2.csv,只要把它们写在一个--nodes参数就可以了。

neo4j 批量导入数据

  • 将大规模数据导入Neo4j的五种方法. https://blog.csdn.net/xingxiupaioxue/article/details/71747284
  • 【推荐】.http://arganzheng.life/import-json-data-into-neo4j.html
  • 官方提供的 neo4j-import
    • https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/
    • 步骤:
      • 不需要启动数据库可以执行
      • 默认只支持相对路径。 请将需要导入的文件放到bin目录下(其他路径没试过)
      • 执行neo4j-import命令一定要在neo4j根目录的bin文件夹下进行,否则回报参数不全这种奇怪的问题。
      • X.db不能已经存在,即使不报错,最后数据也不正确。
      • .\neo4j-import --into ..\data\databases\graph-geo.db --nodes node*.csv --relationships edge*.csv --ignore-extra-columns=true --multiline-fields=true --skip-bad-relationships=true --bad-tolerance=500
      • (windows) .\neo4j-import --into ..\data\databases\graph5.db --nodes food*.csv --nodes geography*.csv --nodes location*.csv --nodes travel*.csv --relationships:Relation edge.csv --ignore-extra-columns=true --multiline-fields=true --skip-bad-relationships=true --bad-tolerance=500
    • --ignore-extra-columns=false && --bad-tolerance=500 时,当某行列数超过头部,导入数据会直接失败,这一行不会被忽略。
    • Input error: Expected '--nodes' to have at least 1 valid item, but had 0 [] 表示文件路径不支持
      • 如果要是用缩写,结尾必须带有.csv
      • 失败的原因是geography*,location*这种写法不支持
      • geography*.csv是允许的,geography*是不允许的。
      • --nodes food*.csv --nodes geography*.csv --nodes location*.csv --nodes travel*.csv是允许的,food*.csv,geography*.csv,location*.csv,travel*.csv是不允许的
    • 如果.csv中没有:LABEL这一列,需要在命令中显示指定LABEL,如下:
      • --nodes:Entity --relationships:Relation
    • 使用绝对路径的方法. https://my.oschina.net/sunyouling/blog/882754
      • 没试过
      • 在配置文件中注释#dbms.directories.import=import
  • Load CSV 支持周期性分批导入
  • Linux下使用neo4j-import
    • 不需要先执行neo4j console
    • sudo /usr/bin/neo4j-import --into /var/lib/neo4j/data/databases/graph.db --nodes ~/node*.csv --relationships ~/edge*.csv

Tips

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Neo4j服务关闭启动·常用配置·快速设定新密码

    Neo4j分社区版(Community Edition)和企业版(Enterprise Edition),社区版本为免费版本。目前的最新版本为Neo4j 3.1...

    陈黎栋
  • 图数据库·业务总结·反欺诈

    通过融合企业和个人银行资金交易明细、通话、出行、住宿、工商、税务等信息构建初步的“资金账户-人-公司”关联知识图谱。同时从案件描述、笔录等非结构化文本中抽取人(...

    陈黎栋
  • JanusGraph的schema及数据建模

    每个JanusGraph都有一个schema,该schema由edge labels, property keys和vertex labels组成。JanusG...

    陈黎栋
  • Neo4j之导入数据

    通过neo4j-admin方式导入的话,需要暂停服务,并且需要清除graph.db,这样才能导入进去数据。而且,只能在初始化数据时,导入一次之后,就不能再次导入...

    分母为零
  • python3.x 读取csv遇到的bu

    2、_csv.Error: iterator should return strings, not bytes (did you open the file i...

    py3study
  • python3 csv文件基本操作

    csv(Comma-Separated Values),也叫逗号分割值,如果你安装了excel,默认会用excel打开csv文件。

    py3study
  • Python数据处理从零开始----第二章(pandas)⑦pandas读写csv文件(1)

    在第一部分中,我们将通过示例介绍如何读取CSV文件,如何从CSV读取特定列,如何读取多个CSV文件以及将它们组合到一个数据帧,以及最后如何转换数据 根据特定的数...

    用户1359560
  • 大神是这样处理 CSV 数据的

    例如:假设你在一 个名叫 stocks.csv 文件中有一些股票市场数据,像这样:

    Python知识大全
  • web爬虫-Selenium进阶操作

    继续上一节内容,我们将使用Selenium操作谷歌浏览器抓取多页的数据并将结果保存到CSV文件中。

    亚乐记
  • [接口测试 - 基础篇] 09 其实吧,读写csv格式也是要掌握的

    什么是csv格式 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表...

    苦叶子

扫码关注云+社区

领取腾讯云代金券