Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
02-28-2019 08:21 AM
This is a general question about what processing is possible after returning a virtual graph/sub-graph.
Our data model includes nodes/rels needed for data lineage and other 'admin' purposes. To run analysis on the 'real' nodes/rels we are creating virtual sub-graphs. I'm trying to understand the implications of taking this approach...
Another approach could be to dynamically build a second db from the master db limiting the data model to only the real nodes/rels.
Thanks in advance.
Mike
Solved! Go to Solution.
02-28-2019 05:06 PM
What kind of functionality would you want to run?
The existing virtual nodes and rels in APOC are mainly meant for visualization purposes.
There are a bunch of functions in apoc to allow you to access their properties, labels, type, id etc.
Cypher itself uses the lower level APIs so those virtual nodes with negative ids don't exist for it.
While virtualization would probably work at this scale I'd rather recommend to just use aggregation as needed and work on that aggregated data for regular cypher queries.
For graph algorithms it should work fine to e.g. use algo.graph.load to load your projection into a named graph and then run multiple algorithms on it, and either consume the results in a client or write the computations back to the graph.
02-28-2019 05:06 PM
What kind of functionality would you want to run?
The existing virtual nodes and rels in APOC are mainly meant for visualization purposes.
There are a bunch of functions in apoc to allow you to access their properties, labels, type, id etc.
Cypher itself uses the lower level APIs so those virtual nodes with negative ids don't exist for it.
While virtualization would probably work at this scale I'd rather recommend to just use aggregation as needed and work on that aggregated data for regular cypher queries.
For graph algorithms it should work fine to e.g. use algo.graph.load to load your projection into a named graph and then run multiple algorithms on it, and either consume the results in a client or write the computations back to the graph.
03-07-2019 11:00 AM
Thanks Michael,
There are a bunch of functions in apoc to allow you to access their properties, labels, type, id etc
Is this the case for output from all apocs? For example I am using apoc.path.expand
and its derivatives and want to access properties from the returned path's node/rels.
What kind of functionality would you want to run?
Yes, we want to run algos, thanks for the algo.graph.load
tip
03-09-2019 05:49 AM
It's only for Virtual Nodes which APOC creates on the fly that Cypher/Kernel-SPI cannot access them.
For expand etc. it's real nodes from the DB that are returned.
All the sessions of the conference are now available online