SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Can I have a fast
     GraphDB
with flexible schema,
 ACID Transactions,
SQL support, Security
    all for FREE??
                      www.orientechnologies.com
The database for graphs
+12 years
  of research

                www.orientechnologies.com
+2 years
of design and develop

                    www.orientechnologies.com
OrientDB
              =
best features of newest NoSQL solutions
                   +
   best features of Relational DBMS
                   +
           True Graph engine
                               www.orientechnologies.com
Relationships
              are direct links
no Relational JOINS to connect multiple tables
    Load trees and graphs in few ms!



                                       www.orientechnologies.com
Ø config
 download, unzip, run!
  cut & paste the db
                     www.orientechnologies.com
No dependencies
          rd
     with 3 parties software
no conflicts with other software
 just 1 Mb of run-time libraries


                           www.orientechnologies.com
®
runs
        Java
       everywhere is available JRE1.5+
            robust engine

                                www.orientechnologies.com
150,000
 records per second

                      www.orientechnologies.com
Schema-less
 schema is not mandatory, relaxed model,
collect heterogeneous documents all together



                                    www.orientechnologies.com
Schema-full
schema with    constraints on fields and validation rules
Customer.age > 17
Customer.address not null
Customer.surname is mandatory
Customer.email matches 'b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b'


                                                         www.orientechnologies.com
Schema-mixed
schema with mandatory and optional fields + constraints
    the best of schema-less and schema-full modes




                                             www.orientechnologies.com
ACID Transactions
db.begin();

try{
  // your code
  ...
  db.commit();

} catch( Exception e ) {
  db.rollback();
}

                           www.orientechnologies.com
Complex types
                 collections, maps (key/value)
native support for
            and embedded documents
      no more additional tables to handle them



                                          www.orientechnologies.com
SQL
select * from employee where name like '%Jay%' and status=0




                                                www.orientechnologies.com
Why reinvent
  yet another language when
the 100% of developers already
         knows SQL?

   OrientDB begins from SQL
    but improve it with new
operators for graph manipulation
                           www.orientechnologies.com
For the most of the queries
everyday a programmer needs
    SQL is simpler,
   more readable and
     compact then
   Scripting (Map/Reduce)

                            www.orientechnologies.com
SELECT SUM(price) as prices, SUM(cost) as costs, prices-costs, margin/price
  FROM Balance

                                          VS
function (key, values) {
   var price = 0.0, cost = 0.0, margin = 0.0, marginPercent = 0.0;
   for (var i = 0; i < values.length; i++) {
      price += values[i].price;
      cost += values[i].cost;
   }
   margin = price - cost;
   marginPercent = margin / price;
   return {
      price:        price,
      cost:        cost,
      margin:        margin,
      marginPercent: marginPercent
   };
}
                                                                     www.orientechnologies.com
Asynchronous Query
invoke callback when a record matches the condition
             doesn't collect the result set
           perfect for immediate results
            useful to compute aggregates




                                           www.orientechnologies.com
Enhanced SQL
SQL is not enough for collections, maps, trees and graphs
              need to enhance SQL syntax
      Easy syntax derived from JDO/JPA standards




                                               www.orientechnologies.com
SQL & relationships
select from Account where address.city.country.name = 'Italy'

select from Account where addresses contains (city.country.name = 'Italy')




                                                                www.orientechnologies.com
SQL & strings
select from Profile where name.toUpperCase() = 'LUCA'

select from City where country.name.substring(1,3).toUpperCase() = 'TAL'

select from Agenda where phones contains ( number.indexOf( '+39' ) > -1 )

select from Agenda where email matches 'bA-Z0-9._%+-?+@A-Z0-9.-?+.A-Z?{2,4}b'




                                                                   www.orientechnologies.com
SQL & schema-less
select from Profile where any() like '%Jay%'

select from Stock where all() is not null




                                               www.orientechnologies.com
SQL & collections
select from Tree where children contains ( married = true )

select from Tree where children containsAll ( married = true )

select from User where roles containsKey 'shutdown'

select from Graph where edges.size() > 0




                                                        www.orientechnologies.com
Binary protocol
Fast compressed JSON over tcp/ip
         available for Java
     and soon C, C++ and Ruby

                          www.orientechnologies.com
Language bindings
        Java as native
JRuby, Scala and Javascript ready
C, C++, Ruby, Node.js in progress

                           www.orientechnologies.com
Your language is
not supported (yet)?
 Write an adapter using the
   C, Java or HTTP binding

                        www.orientechnologies.com
HTTP RESTful
      firewall friendly
use it from the webbrowser
  use it from the ESB (SOA)

                          www.orientechnologies.com
Native JSON
{
    '@rid' = '26:10',
    '@class' = 'Developer',
    'name' : 'Luca',
    'surname' : 'Garulli',
    'outEdges' : [ #10:33, #10:232 ]
}

                                       www.orientechnologies.com
Import/Export
            uses JSON format
online operations (don't stop the database)




                                      www.orientechnologies.com
RB+Tree                       index
   the best of B+Tree and RB-Tree
fast on browsing, low insertion cost
 It's a new algorithm (soon public)

                              www.orientechnologies.com
Hooks
              similar to   triggers
catch events against records, database and transactions
  implement custom cascade deletion algorithm
            enforce    constraints

                                              www.orientechnologies.com
Security
users and roles, encrypted passwords
        fine grain privileges


                             www.orientechnologies.com
Multi-Master Clustering
            Hight-Availability
   Cluster of distributed server nodes
    Synchronous, Asynchronous and Read-Only
                   replication
   Load-balancing between client ↔ servers and
                Servers ↔ Servers



                                           www.orientechnologies.com
Console
ORIENT database v.0.9.23 www.orientechnologies.com
Type 'help' to display all the commands supported.

> connect remote:localhost/demo admin admin
Connecting to database [remote:localhost/demo] with user 'admin'...OK

> select from profile where nick.startsWith('L')
---+--------+--------------------+--------------------+--------------------+
  #| REC ID |NICK                |SEX                 |AGE                 |
---+--------+--------------------+--------------------+--------------------+
  0|    10:0|Lvca                |male                |34
  1|    10:3|Leo                 |male                |22
  2|    10:7|Luisa               |female              |27
3 item(s) found. Query executed in 0.013 sec(s).

> close
Disconnecting from the database [demo]...OK

> quit
                                                               www.orientechnologies.com
OrientDB Studio/SQL query




                            www.orientechnologies.com
Graph Database model
 wrapper on top of Document Database
Few simple concepts: Vertex, Edge,
       Property and Index

                             www.orientechnologies.com
Inheritance
                  OGraphVertex                                 OGraphEdge




            Person              Vehicle         Works           Resides             Knows
         Address : Address     brand : BRANDS                    since : Date
                                                since : Date      till : Date     Level : LEVELS




Customer            Provider
totSold : float    totBuyed : float

                                                                                www.orientechnologies.com
Polymorphic SQL Query
List<ODocument> result = database.query( new OSQLSynchQuery(

           "select from Person where city.name = 'Rome'" ));




                          Queries are polymorphics
                       and subclasses of Person can be
                              part of result set


                                                      www.orientechnologies.com
3 API
             OGraphDatabase
Native, damn fast, not the most beautiful API              All APIs
                                                       are compatible
                                                        among them!
                                                     So use the right one
                                                      for the right case
                     ODatabaseGraphTx
                       Native, Fluent API



                                            OrientGraph
                              TinkerPop Blueprints, slowest but:
                          common to other impls, Gremlin, SPARQL (Sail)


                                                             www.orientechnologies.com
What to choose?
                OGraphDatabase
   Native, damn fast, not the most beautiful API



OGraphDatabase if you need
 Performance at any cost.

Use it for massive insertion or
         low resources
                                                   www.orientechnologies.com
What to choose?
          ODatabaseGraphTx
           Native, Fluent API




 ODatabaseGraphTx if you need
good performance and fluent API

     Use it for all day code
                                www.orientechnologies.com
What to choose?
                OrientGraph
     TinkerPop Blueprints, slowest but:
 common to other impls, Gremlin, SPARQL (Sail)

 OrientGraph if you want to stay
             Portable
at the cost of speed (the slowest)

    or to use Gremlin language,
     or as RDF store + SPARQL

                                                 www.orientechnologies.com
Fetch plans
 Choose what to fetch on query and vertexes/edges loading
Vertexes/Edges not fetched will be lazy-loaded on request
               Optimizes network latency




                                              www.orientechnologies.com
Fetch plans
                               Load only the root vertex
Vertex                                   = *:0
 Luca
   |
   | lives                 city
   +---------> Vertex ------------> Vertex
   |         10th street            Italy
   | knows
   +--------->* [Vertex   Vertex   Vertex ]
                 [ Marko   John   Nicholas]



                                              www.orientechnologies.com
Fetch plans
                                  Load root + address
Vertex                             = *:0 lives.city:0
 Luca
   |
   | lives                 city
   +---------> Vertex ------------> Vertex
   |         10th street            Italy
   | knows
   +--------->* [Vertex   Vertex   Vertex ]
                 [ Marko   John   Nicholas]



                                              www.orientechnologies.com
Fetch plans
                                 Load root + all known
Vertex                              = *:0 knows:1
 Luca
   |
   | lives                 city
   +---------> Vertex ------------> Vertex
   |         10th street            Italy
   | knows
   +--------->* [Vertex   Vertex   Vertex ]
                 [ Marko   John   Nicholas]



                                              www.orientechnologies.com
Fetch plans
                               Load up 2rd level of depth
Vertex                                   = *:2
 Luca
   |
   | lives                 city
   +---------> Vertex ------------> Vertex
   |         10th street            Italy
   | knows
   +--------->* [Vertex   Vertex   Vertex ]
                 [ Marko   John   Nicholas]



                                              www.orientechnologies.com
TinkerPop technologies
  sort of “standard” for GraphDB
 a lot of free open-source projects

      http://tinkerpop.com


                              www.orientechnologies.com
GraphDB                            & Blueprints API
OrientGraph graph = new OrientGraph("local:/tmp/db/graph”);

Vertex sheldon = graph.addVertex(null);
actor.setProperty("name", "Sheldon");
actor.setProperty("surname", "Cooper");

Vertex leonard = graph.addVertex(null);
actor.setProperty("name", "Leonard");
actor.setProperty("surname", "Hofstadter");

Edge edge = graph.addEdge(null, sheldon, leonard, "annoys");

graph.shutdown();

                                                       www.orientechnologies.com
Graph example




            www.orientechnologies.com
SQL TRAVERSE
traverse in from Scientist where $depth <= 2

traverse out from 10:1 where $depth <= 5

traverse * from (select from Scientist where name = 'Sheldon') where $depth < 3




                                                                www.orientechnologies.com
SQL TRAVERSE
select name from (traverse in from
(select from Nailed) where $depth <= 2)
where @class <> 'OGraphEdge'


select in.name as name, in.surname as surname from
(traverse out from (select from Commoner where name = 'Penny')
 where $depth <= 4) where label = 'annoys'




                                                      www.orientechnologies.com
Always        Free
Open Source Apache 2 license
     free for any purposes,
       even commercials

                              www.orientechnologies.com
Prof€$$ional
          $€rvic€$
     by a network of companies through
             Orient Technologies
support, training, consulting, mentoring

                                     www.orientechnologies.com
OrientDB             OrientDB
for Java developers   Master Development
      8 hours                14 hours


     OrientDB               OrientDB
      for SOA         and the power of graphs
      6 hours                 6 hours


     OrientDB             OrientPlanet
      for DBA          for Web Developers
      6 hours                 6 hours

                                        www.orientechnologies.com
Certification Program
        to be part of the network
               do courses
       share revenues for support
            work as consultant

           Contact
commercial@orientechnologies.com

                                   www.orientechnologies.com
Luca Molino
                       Committer of OrientDB and
                        Roma <Meta> Framework
                          Open Source projects,



                     Software Architect at Asset Data


www.twitter.com/MaDaPHaKa
      @Rome, Italy


                                          www.orientechnologies.com

Más contenido relacionado

La actualidad más candente

Spark meetup v2.0.5
Spark meetup v2.0.5Spark meetup v2.0.5
Spark meetup v2.0.5Yan Zhou
 
An Introduction to Higher Order Functions in Spark SQL with Herman van Hovell
An Introduction to Higher Order Functions in Spark SQL with Herman van HovellAn Introduction to Higher Order Functions in Spark SQL with Herman van Hovell
An Introduction to Higher Order Functions in Spark SQL with Herman van HovellDatabricks
 
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...Data Con LA
 
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016Holden Karau
 
Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...Databricks
 
Spark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. JyotiskaSpark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. JyotiskaSigmoid
 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Cloudera, Inc.
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBArangoDB Database
 
Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in SparkDatabricks
 
Mapreduce in Search
Mapreduce in SearchMapreduce in Search
Mapreduce in SearchAmund Tveit
 
Sparkling Water Meetup
Sparkling Water MeetupSparkling Water Meetup
Sparkling Water MeetupSri Ambati
 
Data centric Metaprogramming by Vlad Ulreche
Data centric Metaprogramming by Vlad UlrecheData centric Metaprogramming by Vlad Ulreche
Data centric Metaprogramming by Vlad UlrecheSpark Summit
 
Spark Schema For Free with David Szakallas
 Spark Schema For Free with David Szakallas Spark Schema For Free with David Szakallas
Spark Schema For Free with David SzakallasDatabricks
 
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...Spark Summit
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarArangoDB Database
 
Introducing Apache Spark's Data Frames and Dataset APIs workshop series
Introducing Apache Spark's Data Frames and Dataset APIs workshop seriesIntroducing Apache Spark's Data Frames and Dataset APIs workshop series
Introducing Apache Spark's Data Frames and Dataset APIs workshop seriesHolden Karau
 
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
A Rusty introduction to Apache Arrow and how it applies to a  time series dat...A Rusty introduction to Apache Arrow and how it applies to a  time series dat...
A Rusty introduction to Apache Arrow and how it applies to a time series dat...Andrew Lamb
 
Scalding - the not-so-basics @ ScalaDays 2014
Scalding - the not-so-basics @ ScalaDays 2014Scalding - the not-so-basics @ ScalaDays 2014
Scalding - the not-so-basics @ ScalaDays 2014Konrad Malawski
 

La actualidad más candente (20)

Spark meetup v2.0.5
Spark meetup v2.0.5Spark meetup v2.0.5
Spark meetup v2.0.5
 
An Introduction to Higher Order Functions in Spark SQL with Herman van Hovell
An Introduction to Higher Order Functions in Spark SQL with Herman van HovellAn Introduction to Higher Order Functions in Spark SQL with Herman van Hovell
An Introduction to Higher Order Functions in Spark SQL with Herman van Hovell
 
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Data Provenance Support in...
 
MongoDB crud
MongoDB crudMongoDB crud
MongoDB crud
 
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
 
Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...Easy, scalable, fault tolerant stream processing with structured streaming - ...
Easy, scalable, fault tolerant stream processing with structured streaming - ...
 
Spark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. JyotiskaSpark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. Jyotiska
 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDB
 
Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in Spark
 
Mapreduce in Search
Mapreduce in SearchMapreduce in Search
Mapreduce in Search
 
Sparkling Water Meetup
Sparkling Water MeetupSparkling Water Meetup
Sparkling Water Meetup
 
Data centric Metaprogramming by Vlad Ulreche
Data centric Metaprogramming by Vlad UlrecheData centric Metaprogramming by Vlad Ulreche
Data centric Metaprogramming by Vlad Ulreche
 
Spark Schema For Free with David Szakallas
 Spark Schema For Free with David Szakallas Spark Schema For Free with David Szakallas
Spark Schema For Free with David Szakallas
 
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
 
Introducing Apache Spark's Data Frames and Dataset APIs workshop series
Introducing Apache Spark's Data Frames and Dataset APIs workshop seriesIntroducing Apache Spark's Data Frames and Dataset APIs workshop series
Introducing Apache Spark's Data Frames and Dataset APIs workshop series
 
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
A Rusty introduction to Apache Arrow and how it applies to a  time series dat...A Rusty introduction to Apache Arrow and how it applies to a  time series dat...
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
 
Scalding - the not-so-basics @ ScalaDays 2014
Scalding - the not-so-basics @ ScalaDays 2014Scalding - the not-so-basics @ ScalaDays 2014
Scalding - the not-so-basics @ ScalaDays 2014
 
Spark training-in-bangalore
Spark training-in-bangaloreSpark training-in-bangalore
Spark training-in-bangalore
 

Destacado

Tarantool 1.6 talk at SECR 2014 conference
Tarantool 1.6 talk at SECR 2014 conferenceTarantool 1.6 talk at SECR 2014 conference
Tarantool 1.6 talk at SECR 2014 conferenceKostja Osipov
 
Cassandra background-and-architecture
Cassandra background-and-architectureCassandra background-and-architecture
Cassandra background-and-architectureMarkus Klems
 
Cassandra vs. Redis
Cassandra vs. RedisCassandra vs. Redis
Cassandra vs. RedisTim Lossen
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesCurtis Mosters
 
[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례
[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례
[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례NAVER D2
 

Destacado (6)

Tarantool 1.6 talk at SECR 2014 conference
Tarantool 1.6 talk at SECR 2014 conferenceTarantool 1.6 talk at SECR 2014 conference
Tarantool 1.6 talk at SECR 2014 conference
 
Cassandra background-and-architecture
Cassandra background-and-architectureCassandra background-and-architecture
Cassandra background-and-architecture
 
Cassandra vs. Redis
Cassandra vs. RedisCassandra vs. Redis
Cassandra vs. Redis
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databases
 
[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례
[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례
[2B3]ARCUS차별기능,사용이슈,그리고카카오적용사례
 
RESTful API Design, Second Edition
RESTful API Design, Second EditionRESTful API Design, Second Edition
RESTful API Design, Second Edition
 

Similar a Works with persistent graphs using OrientDB

OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1Luca Garulli
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App developmentLuca Garulli
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftSerhat Dirik
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 
Crash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesCrash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesUdita Plaha
 
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...javier ramirez
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application developmentzonathen
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkAlex Zeltov
 
Jump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksJump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksDatabricks
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 
Cloud Formation
Cloud FormationCloud Formation
Cloud FormationAdron Hall
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1Mohammad Qureshi
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020Thodoris Bais
 
Ruby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrādeRuby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrādeRaimonds Simanovskis
 
Node.js for enterprise - JS Conference
Node.js for enterprise - JS ConferenceNode.js for enterprise - JS Conference
Node.js for enterprise - JS ConferenceTimur Shemsedinov
 
Microsoft R Server for Data Sciencea
Microsoft R Server for Data ScienceaMicrosoft R Server for Data Sciencea
Microsoft R Server for Data ScienceaData Science Thailand
 

Similar a Works with persistent graphs using OrientDB (20)

OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 
Crash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesCrash Course HTML/Rails Slides
Crash Course HTML/Rails Slides
 
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
Big Data analytics with Nginx, Logstash, Redis, Google Bigquery and Neo4j, ja...
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
 
Ml2
Ml2Ml2
Ml2
 
Dev381.Pp
Dev381.PpDev381.Pp
Dev381.Pp
 
Jump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksJump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and Databricks
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 
Cloud Formation
Cloud FormationCloud Formation
Cloud Formation
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020
 
Ruby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrādeRuby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrāde
 
Node.js for enterprise - JS Conference
Node.js for enterprise - JS ConferenceNode.js for enterprise - JS Conference
Node.js for enterprise - JS Conference
 
Microsoft R Server for Data Sciencea
Microsoft R Server for Data ScienceaMicrosoft R Server for Data Sciencea
Microsoft R Server for Data Sciencea
 

Más de graphdevroom

An example graph visualization with Processing.js
An example graph visualization with Processing.js An example graph visualization with Processing.js
An example graph visualization with Processing.js graphdevroom
 
Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...graphdevroom
 
Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark graphdevroom
 
Cypher Query Language
Cypher Query Language Cypher Query Language
Cypher Query Language graphdevroom
 
Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...graphdevroom
 
Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration graphdevroom
 

Más de graphdevroom (6)

An example graph visualization with Processing.js
An example graph visualization with Processing.js An example graph visualization with Processing.js
An example graph visualization with Processing.js
 
Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...
 
Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark
 
Cypher Query Language
Cypher Query Language Cypher Query Language
Cypher Query Language
 
Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...
 
Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration
 

Último

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Works with persistent graphs using OrientDB

  • 1.
  • 2. Can I have a fast GraphDB with flexible schema, ACID Transactions, SQL support, Security all for FREE?? www.orientechnologies.com
  • 4. +12 years of research www.orientechnologies.com
  • 5. +2 years of design and develop www.orientechnologies.com
  • 6. OrientDB = best features of newest NoSQL solutions + best features of Relational DBMS + True Graph engine www.orientechnologies.com
  • 7. Relationships are direct links no Relational JOINS to connect multiple tables Load trees and graphs in few ms! www.orientechnologies.com
  • 8. Ø config download, unzip, run! cut & paste the db www.orientechnologies.com
  • 9. No dependencies rd with 3 parties software no conflicts with other software just 1 Mb of run-time libraries www.orientechnologies.com
  • 10. ® runs Java everywhere is available JRE1.5+ robust engine www.orientechnologies.com
  • 11. 150,000 records per second www.orientechnologies.com
  • 12. Schema-less schema is not mandatory, relaxed model, collect heterogeneous documents all together www.orientechnologies.com
  • 13. Schema-full schema with constraints on fields and validation rules Customer.age > 17 Customer.address not null Customer.surname is mandatory Customer.email matches 'b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b' www.orientechnologies.com
  • 14. Schema-mixed schema with mandatory and optional fields + constraints the best of schema-less and schema-full modes www.orientechnologies.com
  • 15. ACID Transactions db.begin(); try{ // your code ... db.commit(); } catch( Exception e ) { db.rollback(); } www.orientechnologies.com
  • 16. Complex types collections, maps (key/value) native support for and embedded documents no more additional tables to handle them www.orientechnologies.com
  • 17. SQL select * from employee where name like '%Jay%' and status=0 www.orientechnologies.com
  • 18. Why reinvent yet another language when the 100% of developers already knows SQL? OrientDB begins from SQL but improve it with new operators for graph manipulation www.orientechnologies.com
  • 19. For the most of the queries everyday a programmer needs SQL is simpler, more readable and compact then Scripting (Map/Reduce) www.orientechnologies.com
  • 20. SELECT SUM(price) as prices, SUM(cost) as costs, prices-costs, margin/price FROM Balance VS function (key, values) { var price = 0.0, cost = 0.0, margin = 0.0, marginPercent = 0.0; for (var i = 0; i < values.length; i++) { price += values[i].price; cost += values[i].cost; } margin = price - cost; marginPercent = margin / price; return { price: price, cost: cost, margin: margin, marginPercent: marginPercent }; } www.orientechnologies.com
  • 21. Asynchronous Query invoke callback when a record matches the condition doesn't collect the result set perfect for immediate results useful to compute aggregates www.orientechnologies.com
  • 22. Enhanced SQL SQL is not enough for collections, maps, trees and graphs need to enhance SQL syntax Easy syntax derived from JDO/JPA standards www.orientechnologies.com
  • 23. SQL & relationships select from Account where address.city.country.name = 'Italy' select from Account where addresses contains (city.country.name = 'Italy') www.orientechnologies.com
  • 24. SQL & strings select from Profile where name.toUpperCase() = 'LUCA' select from City where country.name.substring(1,3).toUpperCase() = 'TAL' select from Agenda where phones contains ( number.indexOf( '+39' ) > -1 ) select from Agenda where email matches 'bA-Z0-9._%+-?+@A-Z0-9.-?+.A-Z?{2,4}b' www.orientechnologies.com
  • 25. SQL & schema-less select from Profile where any() like '%Jay%' select from Stock where all() is not null www.orientechnologies.com
  • 26. SQL & collections select from Tree where children contains ( married = true ) select from Tree where children containsAll ( married = true ) select from User where roles containsKey 'shutdown' select from Graph where edges.size() > 0 www.orientechnologies.com
  • 27. Binary protocol Fast compressed JSON over tcp/ip available for Java and soon C, C++ and Ruby www.orientechnologies.com
  • 28. Language bindings Java as native JRuby, Scala and Javascript ready C, C++, Ruby, Node.js in progress www.orientechnologies.com
  • 29. Your language is not supported (yet)? Write an adapter using the C, Java or HTTP binding www.orientechnologies.com
  • 30. HTTP RESTful firewall friendly use it from the webbrowser use it from the ESB (SOA) www.orientechnologies.com
  • 31. Native JSON { '@rid' = '26:10', '@class' = 'Developer', 'name' : 'Luca', 'surname' : 'Garulli', 'outEdges' : [ #10:33, #10:232 ] } www.orientechnologies.com
  • 32. Import/Export uses JSON format online operations (don't stop the database) www.orientechnologies.com
  • 33. RB+Tree index the best of B+Tree and RB-Tree fast on browsing, low insertion cost It's a new algorithm (soon public) www.orientechnologies.com
  • 34. Hooks similar to triggers catch events against records, database and transactions implement custom cascade deletion algorithm enforce constraints www.orientechnologies.com
  • 35. Security users and roles, encrypted passwords fine grain privileges www.orientechnologies.com
  • 36. Multi-Master Clustering Hight-Availability Cluster of distributed server nodes Synchronous, Asynchronous and Read-Only replication Load-balancing between client ↔ servers and Servers ↔ Servers www.orientechnologies.com
  • 37. Console ORIENT database v.0.9.23 www.orientechnologies.com Type 'help' to display all the commands supported. > connect remote:localhost/demo admin admin Connecting to database [remote:localhost/demo] with user 'admin'...OK > select from profile where nick.startsWith('L') ---+--------+--------------------+--------------------+--------------------+ #| REC ID |NICK |SEX |AGE | ---+--------+--------------------+--------------------+--------------------+ 0| 10:0|Lvca |male |34 1| 10:3|Leo |male |22 2| 10:7|Luisa |female |27 3 item(s) found. Query executed in 0.013 sec(s). > close Disconnecting from the database [demo]...OK > quit www.orientechnologies.com
  • 38. OrientDB Studio/SQL query www.orientechnologies.com
  • 39. Graph Database model wrapper on top of Document Database Few simple concepts: Vertex, Edge, Property and Index www.orientechnologies.com
  • 40. Inheritance OGraphVertex OGraphEdge Person Vehicle Works Resides Knows Address : Address brand : BRANDS since : Date since : Date till : Date Level : LEVELS Customer Provider totSold : float totBuyed : float www.orientechnologies.com
  • 41. Polymorphic SQL Query List<ODocument> result = database.query( new OSQLSynchQuery( "select from Person where city.name = 'Rome'" )); Queries are polymorphics and subclasses of Person can be part of result set www.orientechnologies.com
  • 42. 3 API OGraphDatabase Native, damn fast, not the most beautiful API All APIs are compatible among them! So use the right one for the right case ODatabaseGraphTx Native, Fluent API OrientGraph TinkerPop Blueprints, slowest but: common to other impls, Gremlin, SPARQL (Sail) www.orientechnologies.com
  • 43. What to choose? OGraphDatabase Native, damn fast, not the most beautiful API OGraphDatabase if you need Performance at any cost. Use it for massive insertion or low resources www.orientechnologies.com
  • 44. What to choose? ODatabaseGraphTx Native, Fluent API ODatabaseGraphTx if you need good performance and fluent API Use it for all day code www.orientechnologies.com
  • 45. What to choose? OrientGraph TinkerPop Blueprints, slowest but: common to other impls, Gremlin, SPARQL (Sail) OrientGraph if you want to stay Portable at the cost of speed (the slowest) or to use Gremlin language, or as RDF store + SPARQL www.orientechnologies.com
  • 46. Fetch plans Choose what to fetch on query and vertexes/edges loading Vertexes/Edges not fetched will be lazy-loaded on request Optimizes network latency www.orientechnologies.com
  • 47. Fetch plans Load only the root vertex Vertex = *:0 Luca | | lives city +---------> Vertex ------------> Vertex | 10th street Italy | knows +--------->* [Vertex Vertex Vertex ] [ Marko John Nicholas] www.orientechnologies.com
  • 48. Fetch plans Load root + address Vertex = *:0 lives.city:0 Luca | | lives city +---------> Vertex ------------> Vertex | 10th street Italy | knows +--------->* [Vertex Vertex Vertex ] [ Marko John Nicholas] www.orientechnologies.com
  • 49. Fetch plans Load root + all known Vertex = *:0 knows:1 Luca | | lives city +---------> Vertex ------------> Vertex | 10th street Italy | knows +--------->* [Vertex Vertex Vertex ] [ Marko John Nicholas] www.orientechnologies.com
  • 50. Fetch plans Load up 2rd level of depth Vertex = *:2 Luca | | lives city +---------> Vertex ------------> Vertex | 10th street Italy | knows +--------->* [Vertex Vertex Vertex ] [ Marko John Nicholas] www.orientechnologies.com
  • 51. TinkerPop technologies sort of “standard” for GraphDB a lot of free open-source projects http://tinkerpop.com www.orientechnologies.com
  • 52.
  • 53. GraphDB & Blueprints API OrientGraph graph = new OrientGraph("local:/tmp/db/graph”); Vertex sheldon = graph.addVertex(null); actor.setProperty("name", "Sheldon"); actor.setProperty("surname", "Cooper"); Vertex leonard = graph.addVertex(null); actor.setProperty("name", "Leonard"); actor.setProperty("surname", "Hofstadter"); Edge edge = graph.addEdge(null, sheldon, leonard, "annoys"); graph.shutdown(); www.orientechnologies.com
  • 54.
  • 55. Graph example www.orientechnologies.com
  • 56.
  • 57.
  • 58. SQL TRAVERSE traverse in from Scientist where $depth <= 2 traverse out from 10:1 where $depth <= 5 traverse * from (select from Scientist where name = 'Sheldon') where $depth < 3 www.orientechnologies.com
  • 59. SQL TRAVERSE select name from (traverse in from (select from Nailed) where $depth <= 2) where @class <> 'OGraphEdge' select in.name as name, in.surname as surname from (traverse out from (select from Commoner where name = 'Penny') where $depth <= 4) where label = 'annoys' www.orientechnologies.com
  • 60. Always Free Open Source Apache 2 license free for any purposes, even commercials www.orientechnologies.com
  • 61. Prof€$$ional $€rvic€$ by a network of companies through Orient Technologies support, training, consulting, mentoring www.orientechnologies.com
  • 62. OrientDB OrientDB for Java developers Master Development 8 hours 14 hours OrientDB OrientDB for SOA and the power of graphs 6 hours 6 hours OrientDB OrientPlanet for DBA for Web Developers 6 hours 6 hours www.orientechnologies.com
  • 63. Certification Program to be part of the network do courses share revenues for support work as consultant Contact commercial@orientechnologies.com www.orientechnologies.com
  • 64.
  • 65. Luca Molino Committer of OrientDB and Roma <Meta> Framework Open Source projects, Software Architect at Asset Data www.twitter.com/MaDaPHaKa @Rome, Italy www.orientechnologies.com