# 图定义文件文档说明
图定义文件(eZoo Graph Schema)是一个json格式的文件,用于在导入数据时初始化在eZoo产品中的图的结构。其中各项参数用户可根据自己对图的需求进行自定义,从而构建自己需要的图进行各项计算。
eZoodb支持定义多种类型的点边,针对不同的业务场景,可参考:
# 图的结构
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"db_name" | 数据库名称 | 自定义字符串 | 必填 | |
"auto_load" | 是否在服务启动时加载数据库 | true/false | 非必填 | |
"node_cache" | 点属性内存缓存大小 | "auto","s4","s8"… | 非必填 | 推荐使用auto |
"edge_cache" | 边属性内存缓存大小 | "auto","s4","s8"… | 非必填 | 推荐使用auto |
"node_schema" | 定义了图中的点 | 点边定义结构 | ||
"edge_schema" | 定义了图中的边 | 点边定义结构 |
# 点边定义结构
此结构点边通用。
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"type" | 点或边的类型名 | 自定义字符串 | 必填 | |
"indexes" | 索引定义的数组 | 索引定义结构 | 点必填,边非必填 | |
"props" | 点或边的属性的数组 | 属性定义结构 | 点必填,边非必填 |
# 索引定义结构
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"name" | 索引的名称 | 自定义字符串 | 必填 | |
"type" | 索引的类型 | "unique" | 必填 | |
"props" | 索引对应的属性。 | 必填 |
# 点边属性结构
key | 介绍 | 参数范围 | 是否必填 | 备注 |
---|---|---|---|---|
"name" | 属性名称 | 自定义字符串 | 必填 | |
"type" | 属性数据类型 | "int","string" | 必填 | 此测试包仅支持这两种类型 |
"default_value" | 对应属性的默认值 | 必填 | ||
"cache_level" | 是否启用内存加速 | -1,0 | 必填 | 填写大于0的数字则对应属性启用内存加速 |
# 有属性数据集样例
{
"db_name": "test",
"auto_load": true,
"node_schema": [
{
"type": "person",
"indexes": [
{
"name": "identity",
"type": "unique",
"props": [
"identity"
]
}
],
"props": [
{
"name": "reliability",
"type": "int",
"default_value": "60",
"cache_level": 1
},
{
"name": "name",
"type": "string",
"default_value": "",
"cache_level": 0
},
{
"name": "sex",
"type": "int",
"default_value": "0",
"cache_level": 2
},
{
"name": "identity",
"type": "int",
"cache_level": 1,
"default_value": "0"
}
]
},
{
"type": "wifi",
"indexes": [
{
"name": "mac",
"type": "unique",
"props": [
"mac"
]
}
],
"props": [
{
"name": "mac",
"type": "string",
"default_value": "",
"cache_level": 0
},
{
"name": "reliability",
"type": "int",
"default_value": "30",
"cache_level": 1
},
{
"name": "category",
"type": "string",
"default_value": "",
"cache_level": 1
}
]
}
],
"edge_schema": [
{
"type": "use",
"indexes": [
{
"name": "lasttime",
"type": "unique",
"props": [
"lasttime"
]
}
],
"props": [
{
"name": "lasttime",
"type": "int",
"default_value": "0",
"cache_level": 1
}
]
},
{
"type": "trans",
"indexes": [
{
"name": "time",
"type": "unique",
"props": [
"time"
]
}
],
"props": [
{
"name": "time",
"type": "int",
"default_value": "0",
"cache_level": 1
},
{
"name": "money",
"type": "int",
"default_value": "0",
"cache_level": 1
},
{
"name": "type",
"type": "string",
"default_value": "",
"cache_level": 1
}
]
}
]
}
# 无属性数据集样例
{
"db_name": "test1",
"auto_load": false,
"node_schema": [
{
"type": "node",
"indexes": [
{
"name": "id",
"type": "unique",
"props": [
"id"
]
}
],
"props": [
{
"name": "id",
"type": "int",
"default_value":"-1",
"cache_level" : -1
}
]
}
],
"edge_schema": [
{
"type": "edge",
"indexes": [],
"props": [
]
}
]
}