Neo4j Import 数据
使用import导入数据时需要注意CSV文件分为两种节点和关系两种数据规范。节点CSV文件数据格式如下:
节点CSV文件数据格式从左到右分为命名标识、属性信息、标签信息三个部分。命名标识类似于标识,它的类型是ID类型,用户可以为命名标识自定义名称,在准备数据时,每一条数据的命名标识必须是惟一的,不能出现重复的标识信息,否则会影响关系信息的创建。属性信息这一列,用户可以自定义每一个节点具备的属性名,每一个属性名数据类型可设定为字符串、字符数组、长整型等类型,用户没有设定属性名类型时系统默认其类型为String类型,具体属性名数据类型请参照Neo4j官网;标签信息对应的是节点所属的类别信息,这一项名称固定写为:LABEL(:label),该列下记录的值均会作为图谱中每个类别信息,对于一个实体属于多种类别时,可通过分号‘;’作为分隔符标识出不同的类别信息,这一特性可以用来表示本体中特有的父子类关系。
关系CSV文件数据格式如图2,其分为关系起始节点、关系终止节点、关系属性信息及关系类型。关系起始和终止节点记录的是节点信息命名标识的内容,指明哪些实体之间具有关系,若起始和终止节点内容一样,关系会指向节点本身;关系属性信息为关系增加了多种描绘数据的维度特性,这也是Neo4j具有特点的数据表示方式,我们可以更加灵活的通过时间等属性值来过滤关系;关系类型固定为:TYPE,其属性值为一对一。
准备好数据后,进入Neo4j根目录下使用Neo4j-admin执行import命令,在执行命令时推荐使用路径,import调优参数很多,内存、数据类型指定、数据编码格式等处理的参数不在这一一叙述了,其默认的参数足够大多数人进行使用了,想要具体了解的可以官网进行了解https://neo4j.com/docs/operations-manual/3.4/tools/import/options/,此处只介绍基本通用的的参数:
- Nodes参数指定需要导入到节点信息,当存在多种相同类型的节点信息文件时,你可以通过多次书写nodes配合路径进行导入,也可以使用--nodes “<path><node_csv_file1>,…,<path><node_csv_filen>”进行导入,第二种方法在导入时只需要在个CSV文件中声明好数据格式即可,后续的CSV文件系统会将其所有数据默认为与个CSV文件声明的数据格式保持一致,这里的相同类型指的是所有文件存储的数据格式一致、类型一致,只是由于某些原因将数据分开进行了存储。若实体一拥有一种属性,实体二具有两种属性,则这两个实体不属于相同类型。
- Relationships参数建议一个关系csv文件对应一个参数。
- Database顾明思议记录生成的neo4j图数据文件名称,虽然后缀为db,但它是一个文件夹,对于数据库文件生成的位置若在neo4j.conf配置文件中未设置dbms.directories.data参数的话,默认生成位置为neo4j根目录下data文件夹下。
- ignore-duplicate-nodes和ignore-missing-nodes是常用的参数,分别起着忽略重复节点和缺失数据处理作用,避免重复节点的创建和空关系的创建影响数据质量及使用,不过不要过度依赖这两个参数,程序不是的,只有数据预处理好了才能终保证数据的质量,从而更好的构建高质量的图谱并进行应用。
Neo4j通过import导入数据后,命令行会有相应的提示,此时通过Neo4j自身前台界面7474端口即可访问,在进行后续的数据查询时别忘了使用create index on :LABEL(Property)进行索引的建立来提升图谱数据的查询效率。
相关文章