使用Neo4j构建图数据库的CSV数据准备及文件结构规范咨询
Neo4j CSV数据准备规范指引
节点类CSV结构规范
- 必须设置全局唯一ID列:同类型节点的ID不可重复,跨节点类型建议添加前缀做区分(比如用户ID用
user_001、商品ID用item_001),避免后续关联关系时出现ID冲突 - 单列仅存储单一属性:禁止将多个属性值拼接在同一列中,例如不要出现
用户信息:张三,30,上海这类格式,需拆分姓名、年龄、所在地为独立列 - 同列数据类型统一:相同属性列的类型需保持一致,例如年龄列全为整数,若存在未知值统一用空字符串或
NA占位,不要出现数字和字符串混存的情况 - 特殊字符转义处理:属性值包含逗号、双引号、换行符时,统一用双引号包裹整个属性值,避免导入时出现列错位
关系类CSV结构规范
- 必须包含起始节点ID和目标节点ID两列:ID取值需和对应节点CSV中的ID完全匹配,大小写、前缀规则需完全一致
- 若单个CSV存储多种关系,必须单独设置关系类型列(例如取值为
购买、关注、从属),用于导入时指定关系类型 - 关系属性的规范和节点属性完全一致,需保证单值、类型统一、特殊字符转义
通用预处理要求
- 去重处理:节点CSV按ID列去重,关系CSV按「起始节点ID+目标节点ID+关系类型」组合去重,避免导入重复数据
- 空值统一处理:单属性列空值占比超过80%建议直接删除该列,确需保留的统一空值标记,禁止
null、NULL、无、-等多种空值标记混用 - 编码统一:所有CSV统一保存为UTF-8无BOM编码,避免导入时出现乱码
- 表头命名规范:表头不要包含空格、特殊符号,建议用下划线命名法(例如用
user_id代替用户 ID),降低后续Cypher导入语句的编写复杂度
快速验证方法
- 预处理完成后可先截取100行以内的样本数据,用
LOAD CSV命令做预览测试,运行LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row RETURN row LIMIT 10即可查看列解析是否正确,是否存在错位问题 - 导入全量数据前,可先统计关系CSV中首尾ID和节点ID的匹配率,提前排查找不到对应节点的无效关系数据
内容的提问来源于stack exchange,提问作者Laurent Cesaro
相关产品推荐
相关产品推荐

