前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Neo4j·数据导入需要注意的坑·方案对比

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

作者头像
陈黎栋
发布2020-02-17 23:25:29
3K0
发布2020-02-17 23:25:29
举报

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

  • 数据导入方案对比
    • 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • neo4j 批量导入数据
  • Tips
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档