Property Graph in Oracle Database: A Polyglot Solution

Property Graph in Oracle Database: A Polyglot Solution

Property Graph databases are a different way to “tell” a story through connections between objects instead of the typical tables and columns approach of relational databases. Oracle Database 12cR2 introduced support for Property Graph and didn’t stop at a simple support: they made Property Graph a polyglot solution accessible by almost any language. SQL, Java, Groovy, Python, REST api, Apache Zeppelin, Cytoscape - you name it. Property Graph can do them all. One tool speaking many languages. We will show you how powerful it is to use Property Graph in the Oracle Database with the various languages and tools.

Bf71450537acca19e045ae6f7febdf9a?s=128

Gianni Ceresa

December 03, 2018
Tweet

Transcript

  1. None
  2. You are still in time to change room

  3. None
  4. None
  5. vertex (node) vertex properties vertex ID edge edge label edge

    properties edge ID directed edge
  6. Scalable and Persistent Storage Graph Data Access Layer API Graph

    Analytics In-memory Analytic Engine Blueprints & SolrCloud / Lucene Property Graph Support on Apache HBase, Oracle NoSQL or Oracle 12.2 REST Web Service Python, Perl, PHP, Ruby, Javascript, … Java APIs Java APIs/JDBC/SQL/PLSQL Cytoscape Plug-in R Integration (OAAgraph) Spark integration SQL*Plus, … PGX: Parallel Graph AnalytiX
  7. None
  8. • • BEGIN OPG_APIS.CREATE_PG('sa607', 4, 8, ''); END;

  9. • •

  10. None
  11. • • • • • • • • •

  12. None
  13. • • • • • • • •

  14. None
  15. None
  16. • • • •

  17. • • • • • • • • • •

    • • • •
  18. • • • • Doesn’t support loading a graph from

    DB !!! • Will support loading from DB
  19. None
  20. GraalVM will make this part useless thanks to its polyglot

    feature • Python will have direct access to Java objects and methods
  21. None
  22. None
  23. WITH properties AS ( SELECT DISTINCT k, t, 'Vertex' AS

    kind FROM sa607vt$ UNION ALL SELECT DISTINCT k, t, 'Edge' AS kind FROM sa607ge$ ) ,cfg AS ( SELECT '.add' || kind || 'Property("' || k || '",PropertyTypeClass.' || CASE WHEN t = 1 THEN 'STRING' WHEN t = 5 THEN 'DATE' WHEN t = 6 THEN 'BOOLEAN' END || ')' AS prop FROM properties ) SELECT LISTAGG(prop,'') WITHIN GROUP(ORDER BY prop) FROM cfg;
  24. None
  25. None
  26. None
  27. None
  28. None
  29. None
  30. None
  31. • • • • • •

  32. None
  33. None
  34. None
  35. None
  36. None
  37. • • • • • Oracle XE 18c gives you

    graphs for free! Feel free to get in touch for any question or more examples of graphs in Zeppelin or Jupyter
  38. • • • • •