# 导入配置文件说明
# 简介
导入配置文件(import-config)是一个json格式的文件,其中包括多用于在导入数据时定义原始数据与产品中图定义的对应关系。其中各项参数用户可根据导入文件的需求进行自定义,从而导入各种格式的数据。
一份导入配置文件中,包括多个导入定义配置。
一个导入定义配置只能对应一种类型的点或边,只能对应一份文件。在导入边时,一个导入定义配置对应的源文件中,所有起始节点需为同一类型,所有终止节点需为同一类型。
# 根配置项
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"db_name" | 数据库名称 | 自定义字符串 | 必填 | |
"nodes" | 定义了点的导入规则 | 点边导入列表配置 | 必填 | |
"edges" | 定义了点的导入规则 | 点边导入列表配置 | 必填 |
# 点边导入列表配置
此配置点边通用
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"path" | 文件的存储路径 | 自定义字符串 | 必填 | 需填写数据源与import-config的相对路径 |
"type" | 源文件的文件格式 | 自定义字符串 | 必填 | 本版本仅支持CSV文件 |
"conf" | 定义了导入规则的具体信息 | 点边导入详情配置 | 必填 | nodes下需填写点导入配置,edge下需填写边导入配置 |
# 点边导入详情配置
- node
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"type" | 导入文件对应的节点类型 | 自定义字符串 | 必填 | 需填写图上存在的类型 |
"props" | 规定了各个属性与源文件的对应关系 | 属性导入配置 | 非必填 | 此处属性数允许少于类型定义中的属性数量,会使用默认值补齐 |
- edge
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"type" | 导入文件对应的节点类型 | 自定义字符串 | 必填 | 需填写图上存在的类型 |
"start_node" | 起点导入定义 | 起终点定义配置 | 必填 | 需填写图上存在的类型与存在的唯一索引 |
"end_node" | 终点导入定义 | 起终点定义配置 | 必填 | 需填写图上存在的类型与存在的唯一索引 |
"props" | 规定了各个属性与源文件的对应关系 | 属性导入配置 | 非必填 | 此处属性数允许少于类型定义中的属性数量,会使用默认值补齐 |
# 起终点定义配置
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"type" | 起终点类型 | 自定义字符串 | 必填 | 需填写存在的类型 |
"unique" | 规定了起终点使用了该类型节点索引约束 | 属性导入配置 | 必填 | 需填写存在的索引约束 |
# 属性导入配置
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"name" | 预期导入的属性名称 | 自定义字符串 | 必填 | 需填写定义中对应类型下存在的属性 |
"column" | 源文件中的列号,从0开始 | 自定义非负整数 | 必填 | 此处注意一个文件中列号不允许重复 |
# 导入配置文件示例
- 有属性数据集配置样例
{
"db_name": "test",
"nodes": [
{
"path": "./person.csv",
"type": "csv",
"conf": {
"type": "person",
"props": [
{
"name": "reliability",
"column": 5
},
{
"name": "name",
"column": 0
},
{
"name": "sex",
"column": 1
},
{
"name": "identity",
"column": 4
}
]
}
},
{
"path": "./wifi.csv",
"type": "csv",
"conf": {
"type": "wifi",
"props": [
{
"name": "mac",
"column": 0
},
{
"name": "reliability",
"column": 1
},
{
"name": "category",
"column": 2
}
]
}
}
],
"edges": [
{
"path": "./use.csv",
"type": "csv",
"conf": {
"type": "use",
"start_node": {
"type": "person",
"unique": [
{
"name" : "identity",
"column" : 0
}
]
},
"end_node": {
"type": "card",
"unique": [
{
"name" : "number",
"column" : 1
}
]
},
"props": [
{
"name": "lasttime",
"column": 2
}
]
}
},
{
"path": "./trans.csv",
"type": "csv",
"conf": {
"type": "trans",
"start_node": {
"type": "card",
"unique": [
{
"name" : "number",
"column" : 0
}
]
},
"end_node": {
"type": "card",
"unique": [
{
"name" : "number",
"column" : 2
}
]
},
"props": [
{
"name": "time",
"column": 1
},
{
"name": "money",
"column": 3
},
{
"name": "type",
"column": 4
}
]
}
}
]
}
- 无属性数据集配置样例
{
"db_name": "test1",
"nodes": [
{
"path": "./graph_node.csv",
"type": "csv",
"conf": {
"type": "node",
"props": [
{
"name": "id",
"column": 0
}
]
}
}
],
"edges": [
{
"path": "./graph_edge.csv",
"type": "csv",
"conf": {
"type": "edge",
"start_node": {
"type": "node",
"unique": [
{
"name" : "id",
"column" : 0
}
]
},
"end_node": {
"type": "node",
"unique": [
{
"name" : "id",
"column" : 1
}
]
},
"props": [
]
}
}
]
}
# 标题行配置项
通过添加顶部标题行(header line),可以实现简化版的导入配置,有效的标题行需要满足以下要求:
- 标题行必须为文件的第一行
- 标题行中的配置项与数据列需要按顺序一一对应,以英文逗号“,”分隔
- 无用数据列可以通过连续的两个分隔符来忽略
每一个配置项为一段区分大小写的字符串,属性名、类型名需要与图定义相匹配,有效的配置项由两部分组成:
- 列属性名,例如:
name
、sex
- 包含内置关键字的补充配置项,部分情况下该部分可省略,例如:
:ID
、:START_ID(person)
以有属性数据集配置样例中的点边配置为例,转化为标题行格式后为:
- person
name,sex,,,identity,reliability
- use
identity:START_ID(person),card:END_ID(number),lasttime
# 内置关键字
KEY | 介绍 | 备注 |
---|---|---|
ID | 唯一索引的作用范围 | 默认为该点边类型下唯一 |
START_ID | 指定用于查找起点的属性列 | 用于边数据的导入配置 |
END_ID | 指定用于查找终点的属性列 | 用于边数据的导入配置 |
← 图定义文件说明 eZoo-Client →