zoukankan      html  css  js  c++  java
  • neo4j批量导入数据的两种解决方案

    neo4j批量导入数据有两种方法,第一种是使用cypher语法中的LOAD CSV,第二种是使用neo4j自带的工具neo4j-admin import。

    LOAD CSV

    导入的文件必须是csv文件,位置可以是本地的,或通过http、https、ftp等url指定位置。

    neo4j中关于导入文件的设置是dbms.security.allow_csv_import_from_file_urls,默认为true;而导入本地文件的位置通过dbms.directories.import来指定导入的根目录,然后再使用file:///来表示绝对路径。

     示例一:不带header,用下标来索引

    给定artists.csv文件

    1,ABBA,1992
    2,Roxette,1986
    3,Europe,1979
    4,The Cardigans,1992

     输入语句:

    LOAD CSV FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists.csv' AS line
    CREATE (:Artist { name: line[1], year: toInteger(line[2])})

    示例二:带header,用关键字来索引

    给定artists-with-headers.csv文件

    Id,Name,Year
    1,ABBA,1992
    2,Roxette,1986
    3,Europe,1979
    4,The Cardigans,1992

    然后执行cypher语句:

    LOAD CSV WITH HEADERS FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists-with-headers.csv' AS line
    CREATE (:Artist { name: line.Name, year: toInteger(line.Year)})

    示例三:大csv文件分批导入

    USING PERIODIC COMMIT
    LOAD CSV FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists.csv' AS line
    CREATE (:Artist { name: line[1], year: toInteger(line[2])})

    这里默认1000行提交一次,也可以人为指定,比如using periodic commit 500.

    额外提示:如果值中包含引号,可以用""来表示".

    可以发现使用load csv只能导入结点,如果还想导入关系数据,就只能靠neo4j自带的import工具了。

    neo4j-admin import

    使用neo4j-admin import工具只能往空数据库中导入数据,且csv文件必须在import目录下。使用csv文件导入数据时,每个结点都必须有一个唯一的ID类属性,但是最好不要起名为ID,这会和数据库本身维护的ID字段冲突。

  • 相关阅读:
    利用wikipedia 的API实现对其内容的查询
    Android 无标题 全屏设置
    anroid中ScrollView嵌套ListView
    ListView的不同item加载不同Layout,listviewlayout
    ListView缓存机制
    演化理解 Android 异步加载图片
    【自定义控件】自定义属性
    【自定义控件】组合控件
    【自定义控件】的基本步骤
    ContentResolver如何获取本地媒体文件
  • 原文地址:https://www.cnblogs.com/YoungF/p/11632488.html
Copyright © 2011-2022 走看看