暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Neo4j数据导入-CSV(一)

Neo4j权威指南 2021-06-08
7450
前言

在刚开始使用Neo4j图数据库时,需要将关系数据库或者其他存储形式存储的数据批量导入到Neo4j图数据库中。导入Neo4j的方法有好几种,我们按照数据源格式可以分为:CSV文件导入,json文件导入(这里需要借助APOC函数方法)。本文章先讲解CSV的导入。
 导入CSV文件

 有几种不同的方法可以将CSV数据导入Neo4j,每种方法都有不同的标准和功能。选择的选项取决于数据集的大小,以及对各种工具的熟悉程度。下边介绍了Neo4j读取和导入CSV文件的一些方法以及每个方法怎么使用。
1、Load CSV Cypher命令:此命令是一个很好的起点,可处理中小型数据集(最多 1000 万条记录)。
2、neo4j-admin批量导入工具:命令行工具可用于直接加载大型数据集。

3、Kettle导入工具:映射并执行数据处理流程的步骤,适用于非常大的数据集,特别是如果开发人员已经熟悉使用此工具(此章节不涉及)

1、load CSV Cypher 命令

    //查看前csv文件行数,但不入库
    load csv from 'file:///companies.csv' as line
    return count(*)

    //查看csv文件前5
    load csv from 'file:///companies.csv' as line
    return line
    limit 5

    //查看csv文件前5行,带表头
    load csv with headers from 'file:///companies.csv' as line
    return line
    limit 5

    //读取E:companies.csv
    load csv from 'file:///E:/companies.csv' as line
    return line
    limit 5

    //跳过空数据,入库
    load csv from 'file:///E:/companies.csv' as line
    WITH line WHERE line.Id IS NOT NULL
    MERGE (c:Company {companyId: line.Id});

    //加入case操作
    LOAD CSV WITH HEADERS FROM 'file:///companies.csv' AS row
    WITH row WHERE row.Id IS NOT NULL
    WITH row,
    (CASE row.BusinessType
    WHEN 'P' THEN 'Public'
    WHEN 'R' THEN 'Private'
    WHEN 'G' THEN 'Government'
    ELSE 'Other' END) AS type
    MERGE (c:Company {companyId: row.Id, hqLocation: coalesce(row.Location, "Unknown")})
    SET c.emailAddress = CASE trim(row.Email) WHEN "" THEN null ELSE row.Email END
    SET c.businessType = type
    RETURN count(c);
    复制

    上述操作都是在浏览器工具里可以直接操作,csv文件放置在相应位置。

    如果要导入大量数据的CSV文件,则可以使用PERODIC COMMIT子句。使用PERODIC COMMIT指示Neo4j在执行完一定行数后提交数据在继续,这样减少了内存开销。默认是1000行提交一次。使用方法如下:

      //每500行提交一次。
      USING PERIODIC COMMIT 500
      load csv from 'file:///E:/companies.csv' as line
      WITH line WHERE line.Id IS NOT NULL
      MERGE (c:Company {companyId: line.Id});
      复制
      2、neo4j-admin批量导入工具

      从Neo4j2.2版本开始,系统就自带了一个大数据量的导入工具:neo4j-admin import,可支持并行,可扩展的大规模CSV数据导入。neo4j-admin import工具允许通过指定节点文件和关系文件将 CSV 数据导入空数据库。首先,在neo4j系统目录下的/bin/neo4j-import路径下找到这个工具的可执行文件。使用示例:

        bin/neo4j-admin import --database orders  创建一个名为orders的新数据库
             --nodes=Customer=customers.csv       //--nodes 表示CSV文件是节点
        --nodes=products.csv
        --nodes=Order="orders_header.csv,orders1.csv,orders2.csv"
             --relationships=CONTAINS=order_details.csv  //--relationsship表示文件是关系
        --relationships=ORDERED="customer_orders_header.csv,orders1.csv,orders2.csv"
        --trim-strings=true
        复制
        本章节到此就结束了,后续在讲讲怎么通过APOC函数来导入数据。

        - 本期完 -


        有疑问请点赞哈,我会及时回复。由于微信限制了公众号留言功能,有问题你可以直接发公众号聊天,我会在下期文章末尾解答你的问题。


        为方便看最新内容,长按下图图片记得关注哦  

        文章转载自Neo4j权威指南,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论