示例数据集:movie¶
movie是内置示例数据集,包含电影、演员、导演、用户、电影类别,以及它们之间的关系。
数据模型¶
数据集使用图类型movie_type和图movie。下图中的方框表示点类型,箭头表示边类型及其方向:
graph LR
Actor["演员 Actor"] -->|"Act(参演)"| Movie["电影 Movie"]
Director["导演 Director"] -->|"Direct(执导)"| Movie
User["用户 User"] -->|"Watch(观看)"| Movie
Movie -->|"WithGenre(属于类别)"| Genre["类别 Genre"]
点类型¶
Movie类型的每个点表示一部电影,Actor类型的每个点表示一位演员。数据集包含以下五种点类型:
| 点类型 | 表示的对象 | 标签 | 属性 |
|---|---|---|---|
Actor |
演员 | Person |
id、name、birthDate |
Director |
导演 | Person |
id、name、birthDate |
User |
用户 | Person |
id |
Movie |
电影 | Movie |
id、name |
Genre |
电影类别 | Genre |
id、name |
Actor、Director和User共享Person标签。查询时,@Actor按类型匹配演员,:Person按标签匹配这三种类型的点。更多说明见类型与标签。
点属性¶
属性记录点的具体信息。数据集中的点属性如下:
| 属性 | 数据类型 | 含义 |
|---|---|---|
id |
INT(整数) |
点的编号,也是该点类型的主键。 |
name |
STRING(字符串) |
演员或导演的姓名、电影名或类别名。 |
birthDate |
DATE(日期) |
演员或导演的出生日期;部分记录的值为NULL。 |
同一点类型中,id不能重复;不同点类型可以使用相同的id。例如,以下两个点的编号都是11,但分别表示电影和电影类别:
| 点类型 | id |
name |
|---|---|---|
Movie |
11 | Star Wars: A New Hope |
Genre |
11 | Space Opera |
共享Person标签的点,属性并不完全相同。User只有id,没有name或birthDate。
边类型与属性¶
边连接两个点,表示它们之间的关系;边类型区分不同的关系。下表中的箭头从边的起点指向终点:
| 边类型 | 起点 → 终点 | 含义 | 属性 |
|---|---|---|---|
Act |
Actor → Movie |
演员参演电影 | 无 |
Direct |
Director → Movie |
导演执导电影 | 无 |
Watch |
User → Movie |
用户观看电影 | rate:FLOAT(浮点数)类型的评分 |
WithGenre |
Movie → Genre |
电影属于某个类别 | 无 |
每条Watch边的rate保存起点用户对终点电影的评分。用户对不同电影的评分,分别保存在对应的Watch边上。
本数据集中,每种边的标签与边类型同名,例如Act边类型的标签也是Act。
数据加载行为¶
通过悦数图管理或 ngql 加载时,会在所选 Schema 中创建图类型movie_type和图movie,再写入点和边。完整操作见连接并完成首次查询。
重复加载与加载失败
如果movie_type或movie已存在,重复加载可能因名称冲突而失败。
加载中断或失败时,先检查错误信息和已创建的对象。图movie存在不代表数据完整;只删除它后重试,仍可能与已有的movie_type冲突。