Design a schema¶
To operate graph data in Nebula Graph with Studio, you must have a graph schema. This article introduces how to design a graph schema for Nebula Graph.
A graph schema for Nebula Graph must have these essential elements:
- Tags (namely vertex types) and their properties.
- Edge types and their properties
In this article, the Social Network: MOOC User Action Dataset and 97 distinct course names are used to introduce how to design a schema.
This table gives all the essential elements of the schema.
Element | Name | Property name (Data type) | Description |
---|---|---|---|
Tag | user | userId (int ). The userId values are used to generate VIDs of user vertices. |
Represents users of the specified MOOC platform. |
Tag | course | courseId (int ) and courseName (string ). The courseName values are processed by the Hash() function to generate VIDs of course vertices. In Nebula Graph, VIDs must be distinct through a graph space. But in the source dataset, some courseId values are duplicate with some userId values, so the courseId values cannot be used to generate the VIDs of course vertices. |
Represents the courses on the specified MOOC platform. |
Edge type | action | - actionId (int ) - duration (double ): Represents the duration of an action measured in seconds from the beginning. Its values are equal to the timestamp values in the data source. - label (bool ): Represents whether a user drops out after an action. TRUE indicates a drop-out action, FALSE otherwise. - feature0 (double ) - feature1 (double ) - feature2 (double ) - feature3 (double ) |
Represents actions taken by users on the specified MOOC platform. An action links a user and a course and the direction is from a user to a course. It has four features. |
This figure shows the relationship (action) between a user and a course on the MOOC platform.