What do almost fifty thousand Oracle objects look like?
Continuing my exploration of graph databases, I loaded every object from DBA_OBJECTS into a NEO4J graph and visualized it with Gephi.
That included all the objects from Oracle 11.2 DBA_OBJECTS, with the exception of the Java objects: Java Source, Java Class, Java Data. It also included some other schemas I’ve loaded into the database, such as Perfstat, SH, SCOTT, BI, etc. Altogether, 48,690 objects, and 61,710 relationships were inserted into NEO4J and then imported into Gephi.
Good Data Source:
As I did this, I thought that DBA_OBJECTS makes a rather good dataset to experiment with. It’s freely available to any DBA. The data is not sensitive. There is lots of data: tens of thousands of rows. The relationships between the objects are listed in DBA_DEPENDENCIES. Most all the data points represent a connected tree structure. This is exactly what NEO4J and Gephi work well with.
Gephi has a number of layouts to work with. I used the OpenOrd layout in Gephi to visualize all the data. OpenOrd completed the layout quickly, in a few minutes. By contast, the Fruchterman Reingold layout did not complete even after I let it run all night. Perhaps Fruchterman Reingold is only good for small data sets.
I partitioned according to the Object_Type (Synonym, View, Index, Table), using the default colors Gephi provided. Then set the edge color to red. See what the results looked like.
The Big Picture:
OpenOrd showed stelliums of objects clustered together.
They remind me of constellations in the night sky.
Using Gephi, it’s amazing how much you can zoom in on the nodes.
Points To Note:
Putting labels on these nodes and edges was impractical with so many crowded nodes. The text totally over shadowed all the nodes, even after running Label Adjust.
When generating the OpenOrd graph, there is a Random Seed. So if you generate the the graph again, it will not be exactly the same as the first time.
Gephi Does Many Things:
Gephi does a lot of things. So there is much to know about what it can and can’t do. In each layout, there are a number of parameters that apply only to that specific layout. Such as grouping, ordering, weights, scaling, distances, etc. I’m sure exploring the functionality of each layout could make for a number of good blog posts.
Most Interesting Results:
I have to say, the OpenOrd layout showed DBA_OBJECTS in a manner I did not expect at all. Gephi gives new meaning to the big picture.
My first impression: it’s very intriguing and rather beautiful.