SlideShare une entreprise Scribd logo
1  sur  52
Graph Databases
Analyzing Relationships at Scale
#DDTX13

Matthias Broecheler, CTO
@mbroecheler               AURELIUS
March XXX, MMXIII          THINKAURELIUS.COM
THE BRAIN
EMERGENCE
name: Neptune
   name: Alcmene
                         type: god
       type: human
                         age: 4500
       age: 45



                                                            Property
Vertex

         name: Saturn
   name: Jupiter
   name: Hercules
      name: Hydra
         type: titan
    type: god
       type: demigod
       type: monster
         age: 10000




                         name: Pluto
     name: Cerberus
                         type: god
       type: monster
                         age: 4000




                                                            Graph
name: Neptune
                  name: Alcmene
                                     type: god
                      type: human
                                     age: 4500
                      age: 45


Edge
                          brother
                         mother


       name: Saturn
                 name: Jupiter
                  name: Hercules
      name: Hydra
       type: titan
                  type: god
                      type: demigod
       type: monster
       age: 10000


                father
                       father
                       battled
                                                                           time: 2
                                                          battled
                          brother
                                                        time:12
                                                                                          Edge
                                                                                        Property
                                     name: Pluto
                    name: Cerberus
                                     type: god
                      type: monster
                                     age: 4000
   Edge
   Label                                       pet



                                                                                       Graph
name: Neptune
                  name: Alcmene
                              type: god
                      type: human
                              age: 4500
                      age: 45




                   brother
                         mother


name: Saturn
                 name: Jupiter
                  name: Hercules
     name: Hydra
type: titan
                  type: god
                      type: demigod
      type: monster
age: 10000


         father
                       father
                       battled
                                                                    time: 2
                                                   battled
                   brother
                                                 time:12


                              name: Pluto
                    name: Cerberus
                              type: god
                      type: monster
                              age: 4000


                                        pet



                                                                                Path
name: Neptune
                  name: Alcmene
                              type: god
                      type: human
                              age: 4500
                      age: 45




                   brother
                         mother


name: Saturn
                 name: Jupiter
                  name: Hercules
      name: Hydra
type: titan
                  type: god
                      type: demigod
       type: monster
age: 10000


         father
                       father
                       battled
                                                                    time: 2
                                                   battled
                   brother
                                                 time:12


                              name: Pluto
                    name: Cerberus
                              type: god
                      type: monster
                              age: 4000


                                        pet



                                                                                Degree
name: Neptune
                  name: Alcmene
                              type: god
                      type: human
                              age: 4500
                      age: 45




                   brother
                         mother


name: Saturn
                 name: Jupiter
                  name: Hercules
       name: Hydra
type: titan
                  type: god
                      type: demigod
        type: monster
age: 10000


         father
                       father
                       battled
                                                                    time: 2
                                                   battled
                   brother
                                                 time:12


                              name: Pluto
                    name: Cerberus
                              type: god
                      type: monster
                              age: 4000


                                        pet


                                                                                Shortest
                                                                                 Paths
name: Neptune
                  name: Alcmene
                              type: god
                      type: human
                              age: 4500
                      age: 45




                   brother
                         mother


name: Saturn
                 name: Jupiter
                  name: Hercules
   name: Hydra
type: titan
                  type: god
                      type: demigod
    type: monster
age: 10000


         father
                       father
                       battled
                                                                    time: 2
                                                   battled
                   brother
                                                 time:12


                              name: Pluto
                    name: Cerberus
                              type: god
                      type: monster
                              age: 4000


                                        pet



                                                                           Centrality
Tinkerpop Graph Stack
                  Graph
                  Server


                  Graph
                Algorithms


               Object-Graph
                 Mapper


                Traversal
                Language


                 Dataflow
                Processing


                 Generic
                Graph API
name: Neptune
                  name: Alcmene
                              type: god
                      type: human
                              age: 4500
                      age: 45




                   brother
                         mother


name: Saturn
                 name: Jupiter
                  name: Hercules
   name: Hydra
type: titan
                  type: god
                      type: demigod
    type: monster
age: 10000


         father
                       father
                       battled
                                                                    time: 2
                                                   battled
                   brother
                                                 time:12


                              name: Pluto
                    name: Cerberus
                              type: god
                      type: monster
                              age: 4000


                                        pet



                                        g.V!
                                        g.E!
name: Neptune
                       name: Alcmene
                                     type: god
                           type: human
                                     age: 4500
                           age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                       name: Hercules
   name: Hydra
       type: titan
                  type: god
                           type: demigod
    type: monster
       age: 10000

                                                                     v
          battled
                father
                       father
                                                                                time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                         name: Cerberus
                                     type: god
                           type: monster
                                     age: 4000


                                               pet



v = g.V(‘name’,’Hercules’)!
name: Neptune
                       name: Alcmene
                                     type: god
                           type: human
                                     age: 4500
                           age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                       name: Hercules
   name: Hydra
       type: titan
                  type: god
                           type: demigod
    type: monster
       age: 10000

                                                                     v
          battled
                father
                       father
                                                                                time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                         name: Cerberus
                                     type: god
                           type: monster
                                     age: 4000


                                               pet



v.out(‘father’,’mother’)!
name: Neptune
                       name: Alcmene
                                     type: god
                           type: human
                                     age: 4500
                           age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                       name: Hercules
   name: Hydra
       type: titan
                  type: god
                           type: demigod
    type: monster
       age: 10000

                                                                     v
          battled
                father
                       father
                                                                                time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                         name: Cerberus
                                     type: god
                           type: monster
                                     age: 4000


                                               pet



v.out(‘father’).out(‘brother’).name!
name: Neptune
                       name: Alcmene
                                     type: god
                           type: human
                                     age: 4500
                           age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                       name: Hercules
   name: Hydra
       type: titan
                  type: god
                           type: demigod
    type: monster
       age: 10000

                                                                     v
          battled
                father
                       father
                                                                                time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                         name: Cerberus
                                     type: god
                           type: monster
                                     age: 4000


                                               pet



v.outE(‘battled’).has(‘time’,T.gt,5).inV.name!
name: Neptune
                       name: Alcmene
                                     type: god
                           type: human
                                     age: 4500
                           age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                       name: Hercules
   name: Hydra
       type: titan
                  type: god
                           type: demigod
    type: monster
       age: 10000

                                                                     v
          battled
                father
                       father
                                                                                time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                         name: Cerberus
                                     type: god
                           type: monster
                                     age: 4000


                                               pet



v.out(‘father’).out(‘brother’)!
.has(‘age’,T.lt,4200).name!
name: Neptune
                  name: Alcmene
                                     type: god
                      type: human
                                     age: 4500
                      age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                  name: Hercules
   name: Hydra
       type: titan
                  type: god
                      type: demigod
    type: monster
       age: 10000


                father
                       father
                       battled
                                                                           time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                    name: Cerberus
                                     type: god
                      type: monster
                                     age: 4000


                                               pet



g.query().has(‘age’,T.gt,4200).vertices()!
name: Neptune
                  name: Alcmene
                                     type: god
                      type: human
                                     age: 4500
                      age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                  name: Hercules
   name: Hydra
       type: titan
                  type: god
                      type: demigod
    type: monster
       age: 10000


                father
                       father
                       battled
                                                                           time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                    name: Cerberus
                                     type: god
                      type: monster
                                     age: 4000


                                               pet



g.query().has(‘time’,T.lt,5).edges()!
name: Neptune
                  name: Alcmene
                                     type: god
                      type: human
                                     age: 4500
                      age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                  name: Hercules
   name: Hydra
       type: titan
                  type: god
                      type: demigod
    type: monster
       age: 10000


                father
                       father
                       battled
                                                                           time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                    name: Cerberus
                                     type: god
                      type: monster
                                     age: 4000


                                               pet



saturn.as('x').in('father')!
.loop('x'){it.loops < 3}.next()!
name: Neptune
                  name: Alcmene
                                     type: god
                      type: human
                                     age: 4500
                      age: 45




                          brother
                         mother


       name: Saturn
                 name: Jupiter
                  name: Hercules
   name: Hydra
       type: titan
                  type: god
                      type: demigod
    type: monster
       age: 10000


                father
                       father
                       battled
                                                                           time: 2
                                                          battled
                          brother
                                                        time:12


                                     name: Pluto
                    name: Cerberus
                                     type: god
                      type: monster
                                     age: 4000


                                               pet

g.V.sideEffect{

 !it.rank = it.both.both.both.count()

}!
Speed of Traversal/Process
     The Graph Landscape




Illustration only, not to scale
                                         Size of Graph
Apache 2

            Aurelius Graph Cluster
          TITAN                                 FAUNUS                               FULGORA




                                Map/Reduce
                                                                          Load

                                 Bulk Load




                                 Analysis results
                                 back into Titan


    Stores a massive-scale                    Batch processing of large           Runs global graph algorithms
property graph allowing real-                   graphs with Hadoop
                  on large, compressed,
 time traversals and updates
                                                          in-memory graphs
Titan Features
  Numerous Concurrent Users
  Many Short Transactions
    read/write
  Real-time Traversals (OLTP)
  High Availability
  Dynamic Scalability
  Variable Consistency Model
    ACID or eventual consistency
  Real-time Big Graph Data
Storage Backends
               Partitionability




Consistency
                       Availability
$ ./titan-0.2.0/bin/gremlin.sh!
  ! ! !,,,/!
         (o o)!
-----oOOo-(_)-oOOo-----!
gremlin> g = TitanFactory.open('/tmp/titan')!
==>titangraph[local:/tmp/titan]!
gremlin> v = g.V(‘name’,’Hercules’)!
==>v[4]!
gremlin> v.out(‘father’).out(‘brother’).name!
Vertex-Centric Indices
  Sort and index edges per
   vertex by primary key
    Primary key can be composite
  Enables efficient focused
   traversals
    Only retrieve edges that matter
  Uses push down predicates for
   quick, index-driven retrieval
battled
         battled
        battled
 time: 1
        time: 3
        time: 5



       mother
                       battled
                            v
                  v.query()!
                                     time: 9



  father
        fought
         fought
battled
         battled
        battled
 time: 1
        time: 3
        time: 5



       mother
                       battled
                            v
                  v.query()!
                                     time: 9
                                                 .direction(OUT)!

  father
battled
    battled
        battled
 time: 1
   time: 3
        time: 5




                                battled
                       v
                  v.query()!
                                time: 9
                                            .direction(OUT)!
                                            .labels(‘battled’)!
battled
    battled
 time: 1
   time: 3




                       v
   v.query()!
                             .direction(OUT)!
                             .labels(‘battled’)!
                             .has(‘time,T.lt,5)!
Titan Server

         REST
                                            REXPRO




$ wget http://s3.thinkaurelius.com/downloads/titan/titan-cassandra-0.3.0.zip!
$ unzip titan-cassandra-0.3.0.zip!
$ cd titan-cassandra-0.3.0!
$ sudo bin/titan.sh config/titan-server-rexster.xml config/titan-server-
cassandra.properties!
Graph Indexing
  Vertex and Edge indexing
  Pluggable index provider
    ElasticSearch
    Lucene
  Full-text search
  Numeric range search
  Geographic search
name: Neptune
                 name: Alcmene
                              age: 4500
                     type: human
                              title: God of the              age: 45
                              earth and ocean




                   brother
                       mother

                              name: Jupiter
name: Saturn
                 age: 4800
                     name: Hercules
            name: Hydra
type: titan
                  title: God of the              title: Divine hero
        type: monster
age: 10000
                   heaven and skies


         father
                       father
                       battled
                                                               time: 2
                                                  battled
     locaion: [37.7,23.9]
                   brother
           time:12
                                      location: [39,22]

                              name: Pluto
                                                             name: Cerberus
                              age: 4000
                                                             title: Ugly beast of the
                              title: God of the
                                                             underworld
                              underworld

                                         pet
name: Neptune
                 name: Alcmene
                                    age: 4500
                     type: human
                                    title: God of the              age: 45
                                    earth and ocean




                         brother
                       mother

                                    name: Jupiter
      name: Saturn
                 age: 4800
                     name: Hercules
            name: Hydra
      type: titan
                  title: God of the              title: Divine hero
        type: monster
      age: 10000
                   heaven and skies


               father
                       father
                       battled
                                                                     time: 2
                                                        battled
     locaion: [37.7,23.9]
                         brother
           time:12
                                            location: [39,22]

                                    name: Pluto
                                                                   name: Cerberus
                                    age: 4000
                                                                   title: Ugly beast of the
                                    title: God of the
                                                                   underworld
                                    underworld

                                               pet




g.query().has(‘title’,Txt.CONTAINS,’god’).vertices()!
name: Neptune
                 name: Alcmene
                              age: 4500
                     type: human
                              title: God of the              age: 45
                              earth and ocean




                   brother
                       mother

                              name: Jupiter
name: Saturn
                 age: 4800
                     name: Hercules
            name: Hydra
type: titan
                  title: God of the              title: Divine hero
        type: monster
age: 10000
                   heaven and skies


         father
                       father
                       battled
                                                               time: 2
                                                  battled
     locaion: [37.7,23.9]
                   brother
           time:12
                                      location: [39,22]

                              name: Pluto
                                                             name: Cerberus
                              age: 4000
                                                             title: Ugly beast of the
                              title: God of the
                                                             underworld
                              underworld

                                         pet



g.query().has(‘age’,GREATER_THAN,4500)

.has(‘title’,CONTAINS,’god’).vertices()!
name: Neptune
                 name: Alcmene
                              age: 4500
                     type: human
                              title: God of the              age: 45
                              earth and ocean




                   brother
                       mother

                              name: Jupiter
name: Saturn
                 age: 4800
                     name: Hercules
            name: Hydra
type: titan
                  title: God of the              title: Divine hero
        type: monster
age: 10000
                   heaven and skies


         father
                       father
                       battled
                                                               time: 2
                                                  battled
     locaion: [37.7,23.9]
                   brother
           time:12
                                      location: [39,22]

                              name: Pluto
                                                             name: Cerberus
                              age: 4000
                                                             title: Ugly beast of the
                              title: God of the
                                                             underworld
                              underworld

                                         pet




        g.query().has(‘location’,WITHIN,

       Geoshape.circle(38,24,50).edges()!
Faunus Features
  Hadoop-based Graph
   Computing Framework
  Graph Analytics
  Breadth-first Traversals
  Global Graph Computations
  Batch Big Graph Data
Faunus Architecture




         g._()!
Faunus Work Flow

g.V.out                        .out                   .count()




                                  hdfs://user/ubuntu/
                                      output/job-0/
                                      output/job-1/       graph*
                                      output/job-2/   {   sideeffect*
Compressed HDFS Graphs
  stored in sequence files
  variable length encoding
  prefix compression
Faunus Setup


$ bin/gremlin.sh !

         ,,,/!
         (o o)!
-----oOOo-(_)-oOOo-----!
gremlin> g = FaunusFactory.open('bin/titan-hbase.properties')!
==>faunusgraph[titanhbaseinputformat]!
gremlin> g.getProperties()!
==>faunus.graph.input.format=com.thinkaurelius.faunus.formats.titan.hbase.TitanHBaseInputFormat
==>faunus.graph.output.format=org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat!
==>faunus.sideeffect.output.format=org.apache.hadoop.mapreduce.lib.output.TextOutputFormat!
==>faunus.output.location=dbpedia!
==>faunus.output.location.overwrite=true!
gremlin> g._() !
12/11/09 15:17:45 INFO mapreduce.FaunusCompiler: Compiled to 1 MapReduce job(s)!
12/11/09 15:17:45 INFO mapreduce.FaunusCompiler: Executing job 1 out of 1:
MapSequence[com.thinkaurelius.faunus.mapreduce.transform.IdentityMap.Map]!
12/11/09 15:17:50 INFO mapred.JobClient: Running job: job_201211081058_0003!
Build a Knowledge Graph
  Based on DBPedia
    Graph version of Wikipedia
    ~290 million edges (~1B triples)
1.  Bulk load RDF into Faunus
    6 m1.xlarge
2.  Convert to property graph
3.  Bulk load into Titan
    3 m1.xlarge with Cassandra
4.  OLTP+OLAP
    Total Time: ~ 2 hours
Graph OLTP

gremlin> g = TitanFactory.open('bin/cassandra.local')   !
==>titangraph[cassandrathrift:10.176.213.110]!

gremlin> g.V('name','Random_walker_algorithm').both.name!
==>Random_walk!
==>Segmentation_(image_processing)!
==>Graph_(mathematics)!
==>Laplacian_matrix!
==>Graph!
==>Laplacian_matrix!
==>Electrical_network!
==>Resistor!
==>Electrical_resistance_and_conductance!
==>Ground_(electricity)!
==>Direct_current!
==>Voltage_source!
==>Precomputation!
==>Category:Computer_vision!
==>Random_Walker_(Computer_Vision)!
==>List_of_algorithms!
==>Segmentation_(image_processing)!
==>Watershed_(image_processing)!
==>Random_walker_(computer_vision)!
==>Random_Walker_(computer_vision)!
Graph OLAP

gremlin> g.V('name','Learning').out.out.out.out[0..10].name !
==>Latium!
==>Roman_Kingdom!
==>Roman_Republic!
==>Roman_Empire!
==>Middle_Ages!
==>Early_modern_Europe!
==>Armenian_Kingdom_of_Cilicia!
==>Lingua_franca!
==>Vatican_City!
==>Vulgar_Latin!
==>Romance_languages!
Complex Problem


1.  Identify Entities
2.  Identify Relationships
3.  Apply Graph Analysis
Apache 2

            Aurelius Graph Cluster
          TITAN                                 FAUNUS                               FULGORA




                                Map/Reduce
                                                                          Load

                                 Bulk Load




                                 Analysis results
      aureliusgraphs@googlegroups.com
                                 back into Titan


    Stores a massive-scale                    Batch processing of large           Runs global graph algorithms
property graph allowing real-                   graphs with Hadoop
                  on large, compressed,
 time traversals and updates
                                                          in-memory graphs
TINKERPOP.COM
Thanks!


   Vadas Gintautas
    Marko Rodriguez
   @vadasg
            @twarko


   Stephen Mallette
   Daniel LaRocque
   @spmallette

                           AURELIUS
                           THINKAURELIUS.COM
We are Hiring



   AURELIUS
  THINKAURELIUS.COM
   @AURELIUSGRAPHS

Contenu connexe

En vedette

Legacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case studyLegacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case studyOSSCube
 
Talend for the Enterprise
Talend for the EnterpriseTalend for the Enterprise
Talend for the EnterpriseOSSCube
 
GRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRA
GRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRAGRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRA
GRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRAShaunak Das
 
Using MySQL Fabric for High Availability and Scaling Out
Using MySQL Fabric for High Availability and Scaling OutUsing MySQL Fabric for High Availability and Scaling Out
Using MySQL Fabric for High Availability and Scaling OutOSSCube
 
Titan - Graph Computing with Cassandra
Titan - Graph Computing with CassandraTitan - Graph Computing with Cassandra
Titan - Graph Computing with CassandraMatthias Broecheler
 
DataStax: Titan 1.0: Scalable real time and analytic graph queries
DataStax: Titan 1.0: Scalable real time and analytic graph queriesDataStax: Titan 1.0: Scalable real time and analytic graph queries
DataStax: Titan 1.0: Scalable real time and analytic graph queriesDataStax Academy
 
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, StrongerCassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, StrongerDataStax
 
Cassandra Community Webinar | Introduction to Apache Cassandra 1.2
Cassandra Community Webinar | Introduction to Apache Cassandra 1.2Cassandra Community Webinar | Introduction to Apache Cassandra 1.2
Cassandra Community Webinar | Introduction to Apache Cassandra 1.2DataStax
 
Titan and Cassandra at WellAware
Titan and Cassandra at WellAwareTitan and Cassandra at WellAware
Titan and Cassandra at WellAwaretwilmes
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsGabriel Moreira
 
TinkerPop: a story of graphs, DBs, and graph DBs
TinkerPop: a story of graphs, DBs, and graph DBsTinkerPop: a story of graphs, DBs, and graph DBs
TinkerPop: a story of graphs, DBs, and graph DBsJoshua Shinavier
 
Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...
Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...
Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...OSSCube
 
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormC*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormDataStax
 
Graph Computing @ Strangeloop 2013
Graph Computing @ Strangeloop 2013Graph Computing @ Strangeloop 2013
Graph Computing @ Strangeloop 2013Matthias Broecheler
 
C*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with CassandraC*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with CassandraDataStax
 
Accelerate Your Digital Transformation Journey with Pimcore
Accelerate Your Digital Transformation Journey with PimcoreAccelerate Your Digital Transformation Journey with Pimcore
Accelerate Your Digital Transformation Journey with PimcoreOSSCube
 
Cassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra InternalsCassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra InternalsDataStax
 
Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3DataStax
 

En vedette (20)

Legacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case studyLegacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case study
 
Talend for the Enterprise
Talend for the EnterpriseTalend for the Enterprise
Talend for the Enterprise
 
Titan NYC Meetup March 2014
Titan NYC Meetup March 2014Titan NYC Meetup March 2014
Titan NYC Meetup March 2014
 
GRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRA
GRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRAGRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRA
GRAPH 101- GETTING STARTED WITH TITAN AND CASSANDRA
 
Using MySQL Fabric for High Availability and Scaling Out
Using MySQL Fabric for High Availability and Scaling OutUsing MySQL Fabric for High Availability and Scaling Out
Using MySQL Fabric for High Availability and Scaling Out
 
Titan - Graph Computing with Cassandra
Titan - Graph Computing with CassandraTitan - Graph Computing with Cassandra
Titan - Graph Computing with Cassandra
 
DataStax: Titan 1.0: Scalable real time and analytic graph queries
DataStax: Titan 1.0: Scalable real time and analytic graph queriesDataStax: Titan 1.0: Scalable real time and analytic graph queries
DataStax: Titan 1.0: Scalable real time and analytic graph queries
 
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, StrongerCassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
Cassandra Community Webinar | Cassandra 2.0 - Better, Faster, Stronger
 
Cassandra Community Webinar | Introduction to Apache Cassandra 1.2
Cassandra Community Webinar | Introduction to Apache Cassandra 1.2Cassandra Community Webinar | Introduction to Apache Cassandra 1.2
Cassandra Community Webinar | Introduction to Apache Cassandra 1.2
 
Titan and Cassandra at WellAware
Titan and Cassandra at WellAwareTitan and Cassandra at WellAware
Titan and Cassandra at WellAware
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender Systems
 
TinkerPop: a story of graphs, DBs, and graph DBs
TinkerPop: a story of graphs, DBs, and graph DBsTinkerPop: a story of graphs, DBs, and graph DBs
TinkerPop: a story of graphs, DBs, and graph DBs
 
Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...
Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...
Webinar: Five Ways a Technology Refresh Strategy Can Help Make Your Digital T...
 
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormC*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
 
Graph Computing @ Strangeloop 2013
Graph Computing @ Strangeloop 2013Graph Computing @ Strangeloop 2013
Graph Computing @ Strangeloop 2013
 
C*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with CassandraC*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with Cassandra
 
Accelerate Your Digital Transformation Journey with Pimcore
Accelerate Your Digital Transformation Journey with PimcoreAccelerate Your Digital Transformation Journey with Pimcore
Accelerate Your Digital Transformation Journey with Pimcore
 
Titan @ Gitpro Conference 2014
Titan @ Gitpro Conference 2014Titan @ Gitpro Conference 2014
Titan @ Gitpro Conference 2014
 
Cassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra InternalsCassandra Community Webinar: Apache Cassandra Internals
Cassandra Community Webinar: Apache Cassandra Internals
 
Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3
 

Plus de Matthias Broecheler

Titan: Scaling Graphs and TinkerPop3
Titan: Scaling Graphs and TinkerPop3Titan: Scaling Graphs and TinkerPop3
Titan: Scaling Graphs and TinkerPop3Matthias Broecheler
 
Titan: Big Graph Data with Cassandra
Titan: Big Graph Data with CassandraTitan: Big Graph Data with Cassandra
Titan: Big Graph Data with CassandraMatthias Broecheler
 
PMatch: Probabilistic Subgraph Matching on Huge Social Networks
PMatch: Probabilistic Subgraph Matching on Huge Social NetworksPMatch: Probabilistic Subgraph Matching on Huge Social Networks
PMatch: Probabilistic Subgraph Matching on Huge Social NetworksMatthias Broecheler
 
Budget-Match: Cost Effective Subgraph Matching on Large Networks
Budget-Match: Cost Effective Subgraph Matching on Large NetworksBudget-Match: Cost Effective Subgraph Matching on Large Networks
Budget-Match: Cost Effective Subgraph Matching on Large NetworksMatthias Broecheler
 
Computing Marginal in CCMRFs - NIPS 2010
Computing Marginal in CCMRFs - NIPS 2010Computing Marginal in CCMRFs - NIPS 2010
Computing Marginal in CCMRFs - NIPS 2010Matthias Broecheler
 
A Scalable Framework for Modeling Competitive Diffusion in Social Networks
A Scalable Framework for Modeling Competitive Diffusion in Social NetworksA Scalable Framework for Modeling Competitive Diffusion in Social Networks
A Scalable Framework for Modeling Competitive Diffusion in Social NetworksMatthias Broecheler
 
COSI: Cloud Oriented Subgraph Identification in Massive Social Networks
COSI: Cloud Oriented Subgraph Identification in Massive Social NetworksCOSI: Cloud Oriented Subgraph Identification in Massive Social Networks
COSI: Cloud Oriented Subgraph Identification in Massive Social NetworksMatthias Broecheler
 

Plus de Matthias Broecheler (9)

Titan: Scaling Graphs and TinkerPop3
Titan: Scaling Graphs and TinkerPop3Titan: Scaling Graphs and TinkerPop3
Titan: Scaling Graphs and TinkerPop3
 
Big Graph Data
Big Graph DataBig Graph Data
Big Graph Data
 
Titan: Big Graph Data with Cassandra
Titan: Big Graph Data with CassandraTitan: Big Graph Data with Cassandra
Titan: Big Graph Data with Cassandra
 
PMatch: Probabilistic Subgraph Matching on Huge Social Networks
PMatch: Probabilistic Subgraph Matching on Huge Social NetworksPMatch: Probabilistic Subgraph Matching on Huge Social Networks
PMatch: Probabilistic Subgraph Matching on Huge Social Networks
 
Budget-Match: Cost Effective Subgraph Matching on Large Networks
Budget-Match: Cost Effective Subgraph Matching on Large NetworksBudget-Match: Cost Effective Subgraph Matching on Large Networks
Budget-Match: Cost Effective Subgraph Matching on Large Networks
 
Probabilistic Soft Logic
Probabilistic Soft LogicProbabilistic Soft Logic
Probabilistic Soft Logic
 
Computing Marginal in CCMRFs - NIPS 2010
Computing Marginal in CCMRFs - NIPS 2010Computing Marginal in CCMRFs - NIPS 2010
Computing Marginal in CCMRFs - NIPS 2010
 
A Scalable Framework for Modeling Competitive Diffusion in Social Networks
A Scalable Framework for Modeling Competitive Diffusion in Social NetworksA Scalable Framework for Modeling Competitive Diffusion in Social Networks
A Scalable Framework for Modeling Competitive Diffusion in Social Networks
 
COSI: Cloud Oriented Subgraph Identification in Massive Social Networks
COSI: Cloud Oriented Subgraph Identification in Massive Social NetworksCOSI: Cloud Oriented Subgraph Identification in Massive Social Networks
COSI: Cloud Oriented Subgraph Identification in Massive Social Networks
 

Dernier

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 

Dernier (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 

Data Day Texas 2013

  • 1. Graph Databases Analyzing Relationships at Scale #DDTX13 Matthias Broecheler, CTO @mbroecheler AURELIUS March XXX, MMXIII THINKAURELIUS.COM
  • 3.
  • 5. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 Property Vertex name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 name: Pluto name: Cerberus type: god type: monster age: 4000 Graph
  • 6. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 Edge brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 Edge Property name: Pluto name: Cerberus type: god type: monster age: 4000 Edge Label pet Graph
  • 7. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet Path
  • 8. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet Degree
  • 9. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet Shortest Paths
  • 10. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet Centrality
  • 11. Tinkerpop Graph Stack Graph Server Graph Algorithms Object-Graph Mapper Traversal Language Dataflow Processing Generic Graph API
  • 12. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet g.V! g.E!
  • 13. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 v battled father father time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet v = g.V(‘name’,’Hercules’)!
  • 14. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 v battled father father time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet v.out(‘father’,’mother’)!
  • 15. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 v battled father father time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet v.out(‘father’).out(‘brother’).name!
  • 16. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 v battled father father time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet v.outE(‘battled’).has(‘time’,T.gt,5).inV.name!
  • 17. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 v battled father father time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet v.out(‘father’).out(‘brother’)! .has(‘age’,T.lt,4200).name!
  • 18. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet g.query().has(‘age’,T.gt,4200).vertices()!
  • 19. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet g.query().has(‘time’,T.lt,5).edges()!
  • 20. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet saturn.as('x').in('father')! .loop('x'){it.loops < 3}.next()!
  • 21. name: Neptune name: Alcmene type: god type: human age: 4500 age: 45 brother mother name: Saturn name: Jupiter name: Hercules name: Hydra type: titan type: god type: demigod type: monster age: 10000 father father battled time: 2 battled brother time:12 name: Pluto name: Cerberus type: god type: monster age: 4000 pet g.V.sideEffect{
 !it.rank = it.both.both.both.count()
 }!
  • 22. Speed of Traversal/Process The Graph Landscape Illustration only, not to scale Size of Graph
  • 23. Apache 2 Aurelius Graph Cluster TITAN FAUNUS FULGORA Map/Reduce Load Bulk Load Analysis results back into Titan Stores a massive-scale Batch processing of large Runs global graph algorithms property graph allowing real- graphs with Hadoop on large, compressed, time traversals and updates in-memory graphs
  • 24. Titan Features   Numerous Concurrent Users   Many Short Transactions   read/write   Real-time Traversals (OLTP)   High Availability   Dynamic Scalability   Variable Consistency Model   ACID or eventual consistency   Real-time Big Graph Data
  • 25. Storage Backends Partitionability Consistency Availability
  • 26. $ ./titan-0.2.0/bin/gremlin.sh! ! ! !,,,/! (o o)! -----oOOo-(_)-oOOo-----! gremlin> g = TitanFactory.open('/tmp/titan')! ==>titangraph[local:/tmp/titan]! gremlin> v = g.V(‘name’,’Hercules’)! ==>v[4]! gremlin> v.out(‘father’).out(‘brother’).name!
  • 27. Vertex-Centric Indices   Sort and index edges per vertex by primary key   Primary key can be composite   Enables efficient focused traversals   Only retrieve edges that matter   Uses push down predicates for quick, index-driven retrieval
  • 28. battled battled battled time: 1 time: 3 time: 5 mother battled v v.query()! time: 9 father fought fought
  • 29. battled battled battled time: 1 time: 3 time: 5 mother battled v v.query()! time: 9 .direction(OUT)! father
  • 30. battled battled battled time: 1 time: 3 time: 5 battled v v.query()! time: 9 .direction(OUT)! .labels(‘battled’)!
  • 31. battled battled time: 1 time: 3 v v.query()! .direction(OUT)! .labels(‘battled’)! .has(‘time,T.lt,5)!
  • 32. Titan Server REST REXPRO $ wget http://s3.thinkaurelius.com/downloads/titan/titan-cassandra-0.3.0.zip! $ unzip titan-cassandra-0.3.0.zip! $ cd titan-cassandra-0.3.0! $ sudo bin/titan.sh config/titan-server-rexster.xml config/titan-server- cassandra.properties!
  • 33. Graph Indexing   Vertex and Edge indexing   Pluggable index provider   ElasticSearch   Lucene   Full-text search   Numeric range search   Geographic search
  • 34. name: Neptune name: Alcmene age: 4500 type: human title: God of the age: 45 earth and ocean brother mother name: Jupiter name: Saturn age: 4800 name: Hercules name: Hydra type: titan title: God of the title: Divine hero type: monster age: 10000 heaven and skies father father battled time: 2 battled locaion: [37.7,23.9] brother time:12 location: [39,22] name: Pluto name: Cerberus age: 4000 title: Ugly beast of the title: God of the underworld underworld pet
  • 35. name: Neptune name: Alcmene age: 4500 type: human title: God of the age: 45 earth and ocean brother mother name: Jupiter name: Saturn age: 4800 name: Hercules name: Hydra type: titan title: God of the title: Divine hero type: monster age: 10000 heaven and skies father father battled time: 2 battled locaion: [37.7,23.9] brother time:12 location: [39,22] name: Pluto name: Cerberus age: 4000 title: Ugly beast of the title: God of the underworld underworld pet g.query().has(‘title’,Txt.CONTAINS,’god’).vertices()!
  • 36. name: Neptune name: Alcmene age: 4500 type: human title: God of the age: 45 earth and ocean brother mother name: Jupiter name: Saturn age: 4800 name: Hercules name: Hydra type: titan title: God of the title: Divine hero type: monster age: 10000 heaven and skies father father battled time: 2 battled locaion: [37.7,23.9] brother time:12 location: [39,22] name: Pluto name: Cerberus age: 4000 title: Ugly beast of the title: God of the underworld underworld pet g.query().has(‘age’,GREATER_THAN,4500)
 .has(‘title’,CONTAINS,’god’).vertices()!
  • 37. name: Neptune name: Alcmene age: 4500 type: human title: God of the age: 45 earth and ocean brother mother name: Jupiter name: Saturn age: 4800 name: Hercules name: Hydra type: titan title: God of the title: Divine hero type: monster age: 10000 heaven and skies father father battled time: 2 battled locaion: [37.7,23.9] brother time:12 location: [39,22] name: Pluto name: Cerberus age: 4000 title: Ugly beast of the title: God of the underworld underworld pet g.query().has(‘location’,WITHIN,
 Geoshape.circle(38,24,50).edges()!
  • 38. Faunus Features   Hadoop-based Graph Computing Framework   Graph Analytics   Breadth-first Traversals   Global Graph Computations   Batch Big Graph Data
  • 40. Faunus Work Flow g.V.out .out .count() hdfs://user/ubuntu/ output/job-0/ output/job-1/ graph* output/job-2/ { sideeffect* Compressed HDFS Graphs   stored in sequence files   variable length encoding   prefix compression
  • 41. Faunus Setup $ bin/gremlin.sh ! ,,,/! (o o)! -----oOOo-(_)-oOOo-----! gremlin> g = FaunusFactory.open('bin/titan-hbase.properties')! ==>faunusgraph[titanhbaseinputformat]! gremlin> g.getProperties()! ==>faunus.graph.input.format=com.thinkaurelius.faunus.formats.titan.hbase.TitanHBaseInputFormat ==>faunus.graph.output.format=org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat! ==>faunus.sideeffect.output.format=org.apache.hadoop.mapreduce.lib.output.TextOutputFormat! ==>faunus.output.location=dbpedia! ==>faunus.output.location.overwrite=true! gremlin> g._() ! 12/11/09 15:17:45 INFO mapreduce.FaunusCompiler: Compiled to 1 MapReduce job(s)! 12/11/09 15:17:45 INFO mapreduce.FaunusCompiler: Executing job 1 out of 1: MapSequence[com.thinkaurelius.faunus.mapreduce.transform.IdentityMap.Map]! 12/11/09 15:17:50 INFO mapred.JobClient: Running job: job_201211081058_0003!
  • 42. Build a Knowledge Graph   Based on DBPedia   Graph version of Wikipedia   ~290 million edges (~1B triples) 1.  Bulk load RDF into Faunus   6 m1.xlarge 2.  Convert to property graph 3.  Bulk load into Titan   3 m1.xlarge with Cassandra 4.  OLTP+OLAP   Total Time: ~ 2 hours
  • 43. Graph OLTP gremlin> g = TitanFactory.open('bin/cassandra.local') ! ==>titangraph[cassandrathrift:10.176.213.110]! gremlin> g.V('name','Random_walker_algorithm').both.name! ==>Random_walk! ==>Segmentation_(image_processing)! ==>Graph_(mathematics)! ==>Laplacian_matrix! ==>Graph! ==>Laplacian_matrix! ==>Electrical_network! ==>Resistor! ==>Electrical_resistance_and_conductance! ==>Ground_(electricity)! ==>Direct_current! ==>Voltage_source! ==>Precomputation! ==>Category:Computer_vision! ==>Random_Walker_(Computer_Vision)! ==>List_of_algorithms! ==>Segmentation_(image_processing)! ==>Watershed_(image_processing)! ==>Random_walker_(computer_vision)! ==>Random_Walker_(computer_vision)!
  • 44. Graph OLAP gremlin> g.V('name','Learning').out.out.out.out[0..10].name ! ==>Latium! ==>Roman_Kingdom! ==>Roman_Republic! ==>Roman_Empire! ==>Middle_Ages! ==>Early_modern_Europe! ==>Armenian_Kingdom_of_Cilicia! ==>Lingua_franca! ==>Vatican_City! ==>Vulgar_Latin! ==>Romance_languages!
  • 45.
  • 46.
  • 47.
  • 48. Complex Problem 1.  Identify Entities 2.  Identify Relationships 3.  Apply Graph Analysis
  • 49. Apache 2 Aurelius Graph Cluster TITAN FAUNUS FULGORA Map/Reduce Load Bulk Load Analysis results aureliusgraphs@googlegroups.com back into Titan Stores a massive-scale Batch processing of large Runs global graph algorithms property graph allowing real- graphs with Hadoop on large, compressed, time traversals and updates in-memory graphs
  • 51. Thanks! Vadas Gintautas Marko Rodriguez @vadasg @twarko Stephen Mallette Daniel LaRocque @spmallette AURELIUS THINKAURELIUS.COM
  • 52. We are Hiring AURELIUS THINKAURELIUS.COM @AURELIUSGRAPHS

Notes de l'éditeur

  1. Health care: cancer, personalized medicinesocial systemseconomy
  2. Source:http://www.digitaltrends.com/mobile/inside-knowledge-graph-googles-deep-diving-semantic-search/
  3. http://socialmediatoday.com/larry-weintraub/1171711/facebook-seo-comes-life-graph-search-launches