Is it Possible to pull the data from two graphs with single query

Hi Team,

I have two graphs with same vertex and Edges in the both graphs, I want query the data from two graphs with single query using some where conditions.

User Case :
I have graphs with name Project1 and Project2.
I have vertex name Users with Attribute username, department,

I want to query Users the data from two graphs with Where condition where department=“development”. So i’m expecting data from the both graphs (Project1 and Project 2)

Thanks,
Reddy

@reddy.nandikonda When creating the two graphs. Did you first define everything at a Global level and then inherit the Vertices and Edges into the Local graph?

If you did that you should be able to share those elements between the two separate graphs.

1 Like

Hello @Jon_Herke. Actually, I had this question a long time ago.

I have a global graph schema. Based on this global graph schema, I generate two graphs with the same vertex data, but different number of edges. I also want to know, if I do a query on one graph, how can I assign its result to the other graph.

Thanks.

Hello @Jon_Herke Actually, I’m looking for multi tenant kind of Data base. Project1 Specific data will store in the Project1 graph and Project 2 Specific data will store in the Project.
I have two users like Jac and Ani . Jac has only access to Project1 graph and Ani has access to Project1 and Project 2.

In Project1 graph I have 2 Vertices like below
user1, QA
user2, Development

In Project2 graph i have 3 Vertices like below
user3,Development
user4, Development
User 5, QA

Expect Result while running the Query
Jac run the query like select * from users where department=“Development”
Expected Result is : User2, Development
Ani runs the query like select * from users where department=“Development”
Expected Result is :
User2, Development
user3,Development
user4, Development

is this Tiger graph support combine both graphs data if we declare Vertices in globally and used in the both the Projects

Thanks,
Reddy

Hi Team,

Can you please help me on this requirement. This is very critical to me.

@reddy.nandikonda Does your schema look like this? If yes, then you might not be looking to have a multi-graph but rather Vertex Level Access Control

Multi Graph

One TigerGraph instance can manage multiple graphs, each with its own set of user privileges.

MultiGraph enables several powerful use cases:

  • Multiple Tenancy: Use one TigerGraph instance to support several completely separate data sets, each with its own set of users. Each user community cannot see the other user communities or other data sets.
  • Fine-grained privileges on the same set of data: Role-based access control, available on single graphs, grants permission for the privilege to run queries (include data modification queries). In a single graph scheme, there is no way to say “Query X can be run by some users but not by others.” Using multiple graphs defined over the same set of data, each graph can have its own set of queries and own set of users, in effect customizing who can run which queries.
  • Overlapping graphs: Graphs can partially overlap to enable a combination of shared and private data.
  • Hierarchical subgraphs: A graph (Graph X) can be defined to cover the domains of Graphs Y and Z, that is, Graph X = (Graph Y) U (Graph Z). This provides an interesting way to describe a data partitioning or parent-child structure. (This is not the same as defining subclasses of data types; data types are still independent.)

Example elaborating on your original schema:

Graph 1 which includes:

  • User
  • Skills
  • State

Graph 2 which includes:

  • Department
  • User
  • Skills

What this allows is to have a shared Vertex Types amongst two graph solutions.

Note: Graph 2 cannot access State & Graph 1 cannot access Department

More information on Multi-Graphs

Vertex-Level Access Control

[Based on your post above] It seems more likely that you are provisioning access to certain user on certain data elements. (see diagram below). If that’s the case you might want to explore the VLAC (Vertex Level Access Control) feature.

More information on VLAC

1 Like