I am using NebulaGraph to implement a DAG that has vertices are connected to edges with eight different types of edges. Each edge has there properties the same as the other seven edges. However, each edge can have a list of properties that can be more than 25 (key/value), and they are varying between edges and maybe even have new ones in the future. I created the Edge as follow:
CREATE EDGE myEdge(pro1 string, pro2 string, pro3 int);
For the other properties, to implement this situation, I created a Tag and made it as follow:
CREATE TAG edgeProp(edgeID string, prop_key string, prop_value string);
I am facing a problem when I need to query my Graph DB and retrieve the edge’s complete list of properties; then, there is no way to join the Edge with the Tag, i.e., dealing with them as two tables joined on a primary key. I hope that I explained my issue very well. How do we do that in NebulaGraph; I mean, join properties of one edge with its associated properties?. Or is there another way to represent a dynamic list of properties of an edge?
I appreciate your prompt technical help with detailed syntax or a link for documentation about it.
Many thanks for considering my request,
@eqawasmi Thanks for posting the question here! Sorry the response was a bit late because the team was on a 7-day holiday. I will have the on-call dev look at your problem very soon.
At the same time, could you please add some environment info for better debugging?
Nebula Graph version:
Deployment method (Distributed/Single Host/Docker):
Hardware device (SSD/HDD):
How did you create your graph space?
Why do you put the edge properties in tag?
Because they may change, I have the type of edges where the properties are a list of keys and values that can have many keys empty and few are with values, and that differs from and edge to another
Thank you. I will update my post
Nebula Graph version: 2.0
**Deployment method (Distributed/Single Host/Docker):Single
**Hardware device (SSD/HDD):HDD
Memory size: 16 G
How did you create your graph space? via the console
You can try GO statement to get the vertex and its edges. You could see more info about GO statement in GO - Nebula Graph Database Manual (nebula-graph.io).
I know how to use Go the question if the edges have a relation with vertices. I have found a way to deal with my problem using pipes, but I wondered if dynamic properties are supported.
I guess the
dynamic properties is not supported, the properties of edge/tag is almost same like the table in relational database.