SlideShare a Scribd company logo
1 of 139
Download to read offline
Introduction to
                                Neo4j

        Andreas Kollegger
        @akollegger
        #neo4j
                                             1

Thursday, January 24, 13
Introduction to
                                Neo4j

        Andreas Kollegger
        @akollegger
        #neo4j
                                             1

Thursday, January 24, 13
1

Thursday, January 24, 13
2

Thursday, January 24, 13
The Path Forward




                                              2

Thursday, January 24, 13
The Path Forward

                           1.Why graphs?




                                                      2

Thursday, January 24, 13
The Path Forward

                           1.Why graphs?
                           2.What's a graph database?




                                                        2

Thursday, January 24, 13
The Path Forward

                           1.Why graphs?
                           2.What's a graph database?

                           3.How do people use Neo4j?




                                                        2

Thursday, January 24, 13
3

Thursday, January 24, 13
Why graphs, why now?




                                D
                           $
                       ;
                       * , ☕⛵
                          ) ⛽. 7 4B N % 8 1
                                    =
                                    +O
                                     '
                                             @
                                        5% < J
                         - ☕     9:
                                  (
                                  ⚾      !
                                         ?
                                       E F$    P
                                2
                          ✈ 3 * - ), L C
                            (
                           ⚽         IQ  H 6         3
                            >G     KM
Thursday, January 24, 13
Why graphs, why now?

                    1.Big Data is the trend




                               8 /!            ⛽C &
                              :D          A ⛵0 , #
                                           G
                              7 <7 J$ O " ⚾
                                 ! T⚽ %
                                       +
                                                 3
                                              X. E
                                     C M S D@ A; B
                                        *
                           9N                   ✈
                         P                10 4 #
                          Q K D  5 Y EI @ ⛽
                           , 4 J4 Z   &R      "☕> G
                            % 5 3+9 =% 8 @F ?
                            $ +7
                       ; [W . $          B
                                       L⚾.
                                              ⛵
                       * ,< ⛵ U
                          )☕ ⛽     XO F> 5 $=1 H
                                    =
                                   BN'          ☕✈
                                            ! 1⚽ P
                         - ☕ 8 2⚾: LE H % < J
                                /9 V
                                  (         ?
                                            F?
                            (      ]
                          ✈ 3 * - ), ; : C O *6
                           ⚽         IQ     H         3
                            > G    KM
Thursday, January 24, 13
Why graphs, why now?

                    1.Big Data is the trend
                    2.NOSQL is the answer


            P ' L 97 N W
                     Y
            T 5 K 0 S @! ;
                  Q   8 /B .         ⛽C&
          & ⛽        : D !2$% A ⛵0 , #
                             ?   G
         # O- 3⛵        ! T⚽ C " ⚾
                 X 7$ 7JR+ O
                  J %< !
                                      3
           8            [      *    X. E
            ⚾] " N , ⚽9 C > S D@ A; B
         D  1 P9  O > E M 10 4 #
       M UJ I     + D
                  7                  ✈
           #:   Q K         & WA ⛽
            ✈ R34 S 5 Y EI @ '
                 , 5 $ 4 < R T ⛵☕> G
                            Z
                            9 K %. " @F ?
        X         $ 4& J
              ⛽[) % 0 7 XOL⚾ - =☕
             ;" WI 5A 3B N = . 8 1 H
       H V * ⛵ ☕. U L + $ B5
                      +
                    ⛽ N
                   ⛵ U 9 = , > B$1 ✈
           G☕ , < M P
          Z ☕ - ☕ ⚾8 2⚾:[FE H % < J P
                            '<: !
                    F / ]8 V; % FQ ⚽
                                 ?
           ✈ 4 H Z GV ), 2L E? *6
            ⚽
                  1
              F ✈ 3      (
                   ( - ] ; : CO
                             ?
                     * @
               ⚽ C D Y M Q I     H                3
             +     > G    K
Thursday, January 24, 13
Why graphs, why now?

                    1.Big Data is the trend
                    2.NOSQL is the answer

                    3.Large in volume, and in variety
                                P ' L 97 N W
                                         Y
            P ' L 97 N W
                     Y         T5K 0 S @ . ;
            T 5 K 0 S @! ; ⛽
                           . &        Q &   B
          & ⛽     Q 8 /B      O-G⛵ ⛽ C # !2R C
                    : D !2$% A "
                            #      ⛵X
                                  3 0,         ?
         # O- 3⛵        ! T⚽ ? 8 " J 3%$[ ! >
                 X 7$ 7JR+ 1 ] X⚾ A;⚽9 E
                  J % < M DJO C⚾      ,
           8     9     [ C >✈S
                              *      7✈ O >
                                       .
            ⚾] " N , ⚽9 ! U M IR D@ + E B        WA
         D  1 P  + O >E # : 0 4 S
       M UJ I                    1 3 45          T'
                  7 S D X I@    WA " # &
            ✈    Q K
                 , 4 J      &
                           Y EG T ⛽
                  $ +7 < Z= ⛵R           UG
           # :R34 5 $ 54HZV ☕"' I >0 L < $K% .
                                  ⛽ ⛵☕ FN? [ : -
        X    ;" WI 5A 3B 9 K %.8 1⚾P
               [   % 0 L + N ⚾.
       H V * ⛵ )☕. U
              ⛽
           G☕ , < M PU&
                      N XO ☕
                           = L B-     ☕
                                      1@ A ]8 ;
                                       MH
                                       F       ,
                                               <  BQ
                   ⛽
                   ⛵        [F> 4 Q J
                           ';✈ 5 $= GV
                  1 F / 98 V, ⚽F ? < ✈
                         (    : F
          Z ☕ - ☕ ⚾8 2⚾: $ E H % 1⚽ P @
                             < %B Z
                                  !
                                  ?H          2? E
           ✈ 4 H Z GV ]] 2L +  *6 D Y
              F ✈ 3( - ), ; : C O
            ⚽    ⚽ * @Y IQ E ?     H    C
             +  >C D K M
                    G                               3

Thursday, January 24, 13
P    L0 7 N W
                       T 5 K Q S @ . ; L9 Y W
                     & ⛽              BP ' 07 N
9 Y                   O- 3⛵          !2 ? K
                                        T5        S @B ;.
 7 N W         P ' L 97 N "
                    # Y X
                      8      WJ %$ & R 9 Y Q
                                         ⛽C7
                                      ' L >⛵ N W !2 ?
                     01             [ !
   S @ B ; T 5 KDJ ⚾] @ . , ⚽# O- 3 X
         .                          P> 0
                                     9
Q
       !2 ? ⛽
                  M UQ IS     Why graphs, why now?
                               
                              7 + O 58 Q WA @ $[ !R C
                              BS T K
                                 ;      E     J
                                             S  %. 9
                                             "     B⚽ >
            &
          R C - 3⛵
             O     XJ # :R34 5& ⛽ J ⚾] T ' , ; E >
                       ✈    !I ?M U <I K 7 ! O ?
                              2RU LD 1
   %$[ ! # 8 H"V ☕"
     ⚽9             X G %$⛽      0O
                                  C
                                  AN    ✈$ % . S
                          ⛵ [ ! #& - 3⛵:R34 + 2R C
                                              -                WA
 ,
 + O M UJ W    ⚾]     ,        F >X #"< I [U L < K T '
        > E >1 A Z ☕ ⚽9 M P8]8 [J %$5 &  X: BQ
                                          ,
                              1E H⚾V ; , ⚽9 ! >
                               ⚾                                 .
           D I        ✈ 4 H > GV 1 AG☕" E 0 E
                         F Z DJ W] 2 ⛵    ⛽         N           -
  S
 5U LL < # :.
    '
  P& 0[ K -
    N
                      1.Big Data is the trend
                 R3 7 S  9
         9 Y ✈T ' 4 + O M U @IR ☕7 + 1⚾P
                       ⚽
                         +        D Y
                               < YNT ✈ 4 5 '
                                   ✈
                                                M A
                                      Z' ? S O > ]8 [A % B Q
         X $ N W I 50 LL XC # :.34 H Z GV9 Y 2. E
                                  K - ⚽F
                                                 F       W<
                                                          ;$
                                                           , :
   0       7: "
    A H ,G ⛵
 M P K8 ; % ⛽ Q M U
  T         V @ .        &'
                          N
                        P A 0[  7: "  W I P& L < K T '
                                                    @Y     ?
 ⚾ 5 ] Q Z ☕B ;⚾P
 F          <          T      H $ %⛽
            S ☕ B 1 F 5 K8 ; G☕⛵ Q+M A
                                 V
                                 , @B
                                 <     .     0 LC0[ :%W
                                              UN D7 N -
 G⛽ @
   V            FE
           2 ✈ !2 Z GV ] Q Z F
            ? ⚽4 H ? ⛽                E   1F 5 ] Q $
                                 S ☕ B ;⚾P K8 ; @B Q
                                            T         ,<
                                                       S     .
    3 Y' 9 Y  &
 O-D⛵
  C PJ L + R C C 3⛵
       X %$7 N #      2.NOSQL is the answer
                          @Y 2 ✈ !2 Z G⛽ @
                      O-D X 9    ? ⚽4 H ? V
                                          &          2     E ;
                                                            B
                                                       ? !2 ?
 8     "             W
  ⚾] T  , ⚽9 ! > ⚾ NJ %$[ ! #           R C C D⛵
                                           O- 3 Y
  1          0 [>
        5 K Q S E B1;  8
                    @ J WA
                              Y    L ' 8
                                     +
                       . W " 7 , ⚽9 P >           X %$
                                                   J           RC
J I     7+ O M U . ] 7+ O5T
                    D I@       0     > E 1 A "  , ⚽9 ! >
                                             ⚾]           [
# :R34 ⛵
  ✈& ⛽ S
     O-I 5 &
         3 XN       !# :.34 S K M UJ W ' 7 + O > E
                     ; ✈T ' S Q
                         ?
                        BR
                      2R C
                   <? -
                                         D I
                      K ! I 5 & ⛽ & ✈T 34 S    R                   WA
 G# 8
V ☕" ⚾ M" A %$[V % "
    ⛽
    ⛵
        1⚾
            U
            P
             J     X :3.Large in volume, and in variety
            0 L H $!2 ⛽
                   [ < ☕⛵ Q
           F  , ⚽9R! > $%M J
                     ,
                    CG B
                 8 ;E [           XA HOV
                                   N    < K -
                                  U L X # :.
                                 0 ⛵3 -[ # % " I 50 L < K T
                                          $ G☕⛵ Q YU    &
                                                        N
  ☕4 1 ] 7 + O Z ☕ E⚽ 1⚾P
M UJ I GV
 ✈D HZ
    F           ]    >    9
                    > E 4 WAGV  F " ]8 8; <
                                       ⚾ ZP
                                           : ⛽
                                          , ' 9M P
  ⚽ # :R34 @9 2 ✈ > H Z+ 7 ]9 2D ☕F L0 7 N W8 ;
                     ? ⚽F O , ' ' I JU ME 1⚾
                                
                                               B     F
                                                        A       $
                                                                ,: -
                                                              [< %
      ✈      YS W
       W NI 5 & ' P K TS               1 Y✈ 4            ]
                Y9
                AL
 X + . " C' 0N Y < +  - P43R: # N
              7
              D UL             .CD @Y ✈ ? ⚽ K Z GV @ . 2
                                     L0 7 T 5 H
                                              W       S @Y ;?
                                                                    E
 H V ☕⛵ P S' 0 K 5N W % 5 I K
         ⛽
      G B@    MQ.T K < :&
                  A     [< N BQ              @B Q
                L0 7 T $ L U T 5 "Q & ⛽ +. ; C D B ?
                                          SX 
    ;☕                   ,.A
    Z
        F  T 5⚾P :8 @! ;F⛽ ⛽☕#Z -!⛵ J
               F
             1 K- ] ⛽ ; 0 M
                     $[ & &⚾
    ? ⚽4 H Z GV% < /? P 1 ⛵0 ☕C
                                     ⛵⛽G& H
                                          V 3
                                          O              !2
     ✈2!           ⛵Y, 8
                     S-O
                     8
              Q B Q 3D2B # O- 3⛵ F ✈ 8
                     ;        E                2R C %$[ !R C
                                                 X
                                                "?
        & ⛽     ED ? 8 ] $%8 Z " ⚽ %$ !  , ⚽9
   C R +  % CX :2 !# ? G A HX, # ]
                 J@
         O- 3⛵ " ⚾ Y⚽ V ⚾G M UJ ⚾9 7 + O > E > A
          [$ J 7 ! T@ CO " 4 3 1[
       ! 9⚽               2R          JD ⚽
       #
   > E >8 , "   X ]$ JD D J I X⚾ A;IR3 >
                       1 7J MC S
                    % <9UC + 1 ] + , O > E SWA
                      I[ M U *          . EB 4
                                           ✈
                                      @ +# :                      W
           O S 9N R ⚽
           ⚾] 7  , ✈ >
              +            !D         7
       D  1 5 43 : # E # A H #
     M UJ I P  + O
                 7 S D X I@
                              >✈ 10DX S
                               M :R34 ✈           I 50 L < K T
                                       45 G☕" < KU .
                                              ⛽
                                              ⛵        &
                                                       T' [ : -
                                                       N            .
   K < # N R34 K 5 V Y E W"' I Z & ?
                    "☕      X
          L 0 I ⛽ G HZV T ⛽ >0 L
          ✈U Q
            &                &       "☕ V A G
            A M, 5+ 4 < RG☕⛵ ⛵ M F F [ ⚾ % ]8 ; % B
                                           N
                                          U☕       MP
                                                    F
                                                       A       $
                                                               ,
    ,X      :       ⛵J
   : [ 8 ;"⚾ I 5N 3 = Z= .
    $                $7
                  % 0☕ + N ⚾.
                             H
                 $ 4 & Z 9 K %⛽ 8 @P              $ V B Q 2< E
                                                  1: -
    ; V * P W . U L XOL B -
    <         F ⛽U
             ⛽ 1M 4
          G VG< P
              , Z⚾    A         ☕4 $1☕ ✈ ] H ;
     H ] ☕⛵ )☕⛵ F ✈ B $✈ 5 =1 H⚽48 Z< @
              [             [F % B < J1⚾
                            '; > F Q GV F         ,
                               :⚽ F Z ✈ +  2 C D Y
                             , E H% ⚽ P
                                   !
                                                    G
                                                       E       ?
    ? Z @F ☕ H8 ⚽98 V L
     2             F 2⚾:
           ☕4 ✈1  / ]] < E
              -                    ?
         Y D C Z GV ), 2 : + ? *6 D Y
         ✈               (          H       @      ?
                  ( +
           ⚽ H ⚽3 * - Y ;     ? CO       C
                       @     I     H
            +  >C D K M Q
                    G                                      3

  Thursday, January 24, 13
3

Thursday, January 24, 13
4

Thursday, January 24, 13
Everyone is talking about graphs...




                                             4

Thursday, January 24, 13
Everyone is talking about graphs...




          Facebook Open Graph




                                             4

Thursday, January 24, 13
Everyone is talking about graphs...




          Facebook Open Graph




                                             4

Thursday, January 24, 13
Text




                                  5

Thursday, January 24, 13
Graphs are everywhere! I even have one...




                           Text




                                              5

Thursday, January 24, 13
A graph...




                           6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures




                                                 6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"




                                                         6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"
         ๏ a graph is the general purpose data structure




                                                           6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"
         ๏ a graph is the general purpose data structure
                 •suitable for any data that is related




                                                           6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"
         ๏ a graph is the general purpose data structure
                 •suitable for any data that is related
         ๏ well-understood patterns and algorithms




                                                           6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"
         ๏ a graph is the general purpose data structure
                 •suitable for any data that is related
         ๏ well-understood patterns and algorithms
                 •studied since Leonard Euler's 7 Bridges (1736)


                                                                   6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"
         ๏ a graph is the general purpose data structure
                 •suitable for any data that is related
         ๏ well-understood patterns and algorithms
                 •studied since Leonard Euler's 7 Bridges (1736)
                 •Codd's Relational Model (1970)

                                                                   6

Thursday, January 24, 13
A graph...
         ๏ you know the common data structures
                 •linked lists, trees, object "graphs"
         ๏ a graph is the general purpose data structure
                 •suitable for any data that is related
         ๏ well-understood patterns and algorithms
                 •studied since Leonard Euler's 7 Bridges (1736)
                 •Codd's Relational Model (1970)
                 •not a new idea, just an idea who's time is now
                                                                   6

Thursday, January 24, 13
A graph database...




                             7

Thursday, January 24, 13
A graph database...

         ๏ optimized for the connections between records




                                                           7

Thursday, January 24, 13
A graph database...

         ๏ optimized for the connections between records
         ๏ really, really fast at querying across records




                                                            7

Thursday, January 24, 13
A graph database...

         ๏ optimized for the connections between records
         ๏ really, really fast at querying across records
         ๏ a database: transactional with the usual operations




                                                                 7

Thursday, January 24, 13
A graph database...

         ๏ optimized for the connections between records
         ๏ really, really fast at querying across records
         ๏ a database: transactional with the usual operations
         ๏ “A relational database may tell you
                    the average age of everyone in this webinar,
              but a graph database will tell you
                how to drive from Baltimore to San Francisco.”




                                                                   7

Thursday, January 24, 13
That last bullet is the
                       key insight...

                                          8

Thursday, January 24, 13
9

Thursday, January 24, 13
You know relational




                             9

Thursday, January 24, 13
You know relational




                             9

Thursday, January 24, 13
You know relational




                           foo

                                 9

Thursday, January 24, 13
You know relational




                           foo   bar

                                       9

Thursday, January 24, 13
You know relational




                           foo   foo_bar   bar

                                                 9

Thursday, January 24, 13
You know relational




                           foo   foo_bar   bar

                                                 9

Thursday, January 24, 13
You know relational




                           foo   foo_bar   bar

                                                 9

Thursday, January 24, 13
You know relational




                           foo   foo_bar   bar

                                                 9

Thursday, January 24, 13
You know relational
       now consider relationships...




                                       9

Thursday, January 24, 13
You know relational
       now consider relationships...




                                       9

Thursday, January 24, 13
You know relational
       now consider relationships...




                                       9

Thursday, January 24, 13
You know relational
       now consider relationships...




                                       9

Thursday, January 24, 13
You know relational
       now consider relationships...




                                       9

Thursday, January 24, 13
You know relational
       now consider relationships...




                                       9

Thursday, January 24, 13
9

Thursday, January 24, 13
10

Thursday, January 24, 13
We're talking about a
       Property Graph




                               10

Thursday, January 24, 13
We're talking about a
       Property Graph


                           Nodes




                                   10

Thursday, January 24, 13
We're talking about a
       Property Graph


                           Nodes


                           Relationships




                                           10

Thursday, January 24, 13
We're talking about a
       Property Graph
                                                                  Em                                       Joh
                                                                       il                                      a   n
                                                        knows                                     knows
                                           Alli                                         Tob                                    Lar

                           Nodes
                                                  son                                       ias           knows                   s
                                                                                knows
                                                                And                                       And                  knows
                                           knows                      rea                                       rés
                                                                            s
                                                                                knows             knows                knows
                                           Pet                                          Miic
                                                                                        Mc                knows                 Ian
                                              er                knows                        a
                                                                                             a
                                                        knows                   knows
                                                                 De                                       Mic
                                                                    lia                                      h   ael

                           Relationships

                                   Properties (each a key+value)

                             + Indexes (for easy look-ups)
                                                                                                                                       10

Thursday, January 24, 13
10

Thursday, January 24, 13
Neo4j - the Graph Database




                                                        11

Thursday, January 24, 13
Google "neo4j"




                           12

Thursday, January 24, 13
Google "neo4j"
         ๏ neo4j.org




                           12

Thursday, January 24, 13
Google "neo4j"
         ๏ neo4j.org

         ๏ neotechnology.com




                               12

Thursday, January 24, 13
Google "neo4j"
         ๏ neo4j.org

         ๏ neotechnology.com

         ๏ github.com/neo4j




                               12

Thursday, January 24, 13
Google "neo4j"
         ๏ neo4j.org

         ๏ neotechnology.com

         ๏ github.com/neo4j

         ๏ neo4j.meetup.com




                               12

Thursday, January 24, 13
Google "neo4j"
         ๏ neo4j.org

         ๏ neotechnology.com

         ๏ github.com/neo4j

         ๏ neo4j.meetup.com

         ๏ graphconnect.com

                               12

Thursday, January 24, 13
How to get started?




                             13

Thursday, January 24, 13
How to get started?
         ๏ Documentation




                             13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference




                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action




                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action
                 • Good Relationships




                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action
                 • Good Relationships
         ๏ Get Neo4j




                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action
                 • Good Relationships
         ๏ Get Neo4j
                 • http://neo4j.org/download




                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action
                 • Good Relationships
         ๏ Get Neo4j
                 • http://neo4j.org/download
                 • http://addons.heroku.com/neo4j/




                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action
                 • Good Relationships
         ๏ Get Neo4j
                 • http://neo4j.org/download
                 • http://addons.heroku.com/neo4j/
         ๏ Participate
                 • ask questions on Stack Overflow
                 • http://groups.google.com/group/neo4j
                 • http://neo4j.meetup.com
                                                          13

Thursday, January 24, 13
How to get started?
         ๏ Documentation
                 • docs.neo4j.org - tutorials+reference
                 • Neo4j in Action
                 • Good Relationships
         ๏ Get Neo4j
                 • http://neo4j.org/download
                 • http://addons.heroku.com/neo4j/
         ๏ Participate
                 • ask questions on Stack Overflow
                 • http://groups.google.com/group/neo4j
                 • http://neo4j.meetup.com
                 • webinars, every month on everything from intro to production   13

Thursday, January 24, 13
Neo4j is a Graph Database




                                   14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:




                                   14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both




                                                            14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both
                   • perfect for complex, highly connected data




                                                                  14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both
                   • perfect for complex, highly connected data
          • A Graph Database:




                                                                  14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both
                   • perfect for complex, highly connected data
          • A Graph Database:
             • reliable with real ACID Transactions




                                                                  14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both
                   • perfect for complex, highly connected data
          • A Graph Database:
             • reliable with real ACID Transactions
             • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion
                             Properties



                                                                       14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both
                   • perfect for complex, highly connected data
          • A Graph Database:
             • reliable with real ACID Transactions
             • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion
                             Properties
                   • Server with REST API, or Embeddable on the JVM

                                                                       14

Thursday, January 24, 13
Neo4j is a Graph Database
          • A Graph Database:
             • a Property Graph with Nodes, Relationships
                           and Properties on both
                   • perfect for complex, highly connected data
          • A Graph Database:
             • reliable with real ACID Transactions
             • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion
                             Properties
                   • Server with REST API, or Embeddable on the JVM
                   • high-performance with High-Availability (read scaling)
                                                                              14

Thursday, January 24, 13
15

Thursday, January 24, 13
And, but, so how do you query this
                 "graph" database?



                                       15

Thursday, January 24, 13
16

Thursday, January 24, 13
Cypher - a graph query language
         ๏ a pattern-matching query language
         ๏ declarative grammar with clauses (like SQL)
         ๏ aggregation, ordering, limits
         ๏ create, read, update, delete




                                                         16

Thursday, January 24, 13
Cypher - a graph query language
         ๏ a pattern-matching query language
         ๏ declarative grammar with clauses (like SQL)
         ๏ aggregation, ordering, limits
         ๏ create, read, update, delete
              // get node from an index named “foo”
              start foo=node:people(name=‘Andreas’) return foo

              // find “bar” nodes related to Andreas
              start foo=node:people(name=‘Andreas’)
              match (foo)-->(bar) return bar

              // create a node
              create (me {name:'Andreas'})

                                                             16

Thursday, January 24, 13
17

Thursday, January 24, 13
Is it production ready?




                                                     17

Thursday, January 24, 13
18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster




                                              18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication




                           Loa
                              dB
                                ala
                                   nce
                                      r




                                              18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication
                 • read-scaling




                           Loa
                              dB
                                ala
                                   nce
                                      r




                                              18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication
                 • read-scaling
         • single datacenter, or global zones




                           Loa
                              dB
                                ala
                                   nce
                                      r




                                                18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication
                 • read-scaling
         • single datacenter, or global zones
                 • tolerance for high-latency



                           Loa
                              dB
                                ala
                                   nce
                                      r




                                                18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication
                 • read-scaling
         • single datacenter, or global zones
                 • tolerance for high-latency
         • redundancy provides improved uptime

                           Loa
                              dB
                                ala
                                   nce
                                      r




                                                 18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication
                 • read-scaling
         • single datacenter, or global zones
                 • tolerance for high-latency
         • redundancy provides improved uptime
            • automatic failover
                           Loa
                              dB
                                ala
                                   nce
                                      r




                                                 18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster
         • master-slave replication
                 • read-scaling
         • single datacenter, or global zones
                 • tolerance for high-latency
         • redundancy provides improved uptime
            • automatic failover
                           Loa
                              dB
                                ala
                                   nce
                                      r




                                                 18

Thursday, January 24, 13
Neo4j HA - High Availability Cluster




                           Loa
                              dB
                                ala
                                   nce
                                      r




                                              18

Thursday, January 24, 13
Real World Use Cases:




                                                   19

Thursday, January 24, 13
Real World Use Cases:

                           [A] Mmm Pancakes




                                                   19

Thursday, January 24, 13
Real World Use Cases:

                           [A] Mmm Pancakes
                           [B] ACL from Hell




                                                   19

Thursday, January 24, 13
Real World Use Cases:

                           [A] Mmm Pancakes
                           [B] ACL from Hell
                           [C] Master of your Domain




                                                       19

Thursday, January 24, 13
Thursday, January 24, 13
[A] Mmm Pancakes




Thursday, January 24, 13
[A] Mmm Pancakes




Thursday, January 24, 13
Thursday, January 24, 13
[A] Mozilla Pancake




              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
[A] Mozilla Pancake
                    • Experimental cloud-based browser
                    • Built to improve how users Discover,
                             Collect, Share & Organize
                             things on the web

                    • Goal: help users better access & curate
                             information on the net, on any device


              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Why Neo4J?




              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Why Neo4J?

                      • The internet is a network of pages
                                connected to each other. What better
                                way to model that than in graphs?

                      • No time lost fighting with less expressive
                                datastores

                      • Easy to implement experimental features
              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Cute meta + data




              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Cute meta + data




              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Neo4J Co-Existence

                      • Node uuids as refs in external
                                ElasticSearch also in internal Lucene

                      • Custom search ranking for user history
                                based on node relationship data

                      • MySQL for user data, Redis for metrics

              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Mozilla Pancake

                           Available on BitBucket:
                           https://bitbucket.org/mozillapancake/pancake



                           Questions?
                           Olivier Yiptong: oyiptong@mozilla.com




              This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the
              MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/
Thursday, January 24, 13
Thursday, January 24, 13
[B] ACL from Hell




                           One of the top 10 telcos worldwide



Thursday, January 24, 13
Background

                           Telenor calculated in 2010 that it´s self-service web solution for
                           companies, MinBedrift, would not scale with the projected
                           customer and subscription growth beyond 2012.




                                                                             Limit
                                                                 th
                                                           G row
                                                     ted
                                                 jec
                                              Pro




                                            2010
                                                                      2015




Thursday, January 24, 13
[B] Telenor Background

                           Background

                           Telenor calculated in 2010 that it´s self-service web solution for
                           companies, MinBedrift, would not scale with the projected
                           customer and subscription growth beyond 2012.




                                                                             Limit
                                                                 th
                                                           G row
                                                     ted
                                                 jec
                                              Pro




                                            2010
                                                                      2015




Thursday, January 24, 13
[B] Telenor Background
             • MinBedrif, a self service web solution for
                     companies
                           Background

             • 2010 - calculated that it would not scale
                           Telenor calculated in 2010 that it´s self-service web solution for

                     with projected growth
                           companies, MinBedrift, would not scale with the projected
                           customer and subscription growth beyond 2012.




                                                                             Limit
                                                                 th
                                                           G row
                                                     ted
                                                 jec
                                              Pro




                                            2010
                                                                      2015




Thursday, January 24, 13
Example Access Authorization
                                                                                                        User
                           Access may be given directly or by inheritance                               Customer
                                                                                                        Account
                                                                           U                            Subscription
                                            U                                      Inherit = true
                                                     Inherit =
                                                               false
                                           In


                                                                           C
                                             he
                                               rit
                                                =




                           C                                                          C                                C
                                                 tru
                                                    e




                                   A                        A              A                    A           A


                               S       S                S       S      S       S            S       S   S         S




Thursday, January 24, 13
Business Case

                           The business case is built on the negative consequence of NOT
                           addressing the problem.




                                                        Loss of customers (income)

                                                        Reduced sales transactions (income)

                                                        Increased manual support (expenses)

                                                        Other




Thursday, January 24, 13
30

Thursday, January 24, 13
Current ACL Service




                                30

Thursday, January 24, 13
Current ACL Service
          • Stored procedure in DB calculating all access
                  • cached results for up to 24 hours
                  • minutes to calculate for large customers
                  • extremely complex to understand (1500 lines)
                  • depends on temporary tables
                  • joins across multiple tables




                                                                   30

Thursday, January 24, 13
31

Thursday, January 24, 13
ACL With Neo4j




                           31

Thursday, January 24, 13
ACL With Neo4j
          ๏ Faster than current solution
          ๏ Simpler to understand the logic
          ๏ Avoid large temporary tables
          ๏ Tailored for service (resource authorization)




                                                            31

Thursday, January 24, 13
Thursday, January 24, 13
[C] Master of your Domain




Thursday, January 24, 13
[C] MDM within Cisco
     master data management, sales compensation management, online customer support


      Description                                                          Benefits
      Real-time conflict detection in sales compensation management.        Performance : “Minutes to Milliseconds”
      Business-critical “P1” system. Neo4j allows Cisco to model complex   Outperforms Oracle RAC, serving complex queries in real time
      algorithms, which still maintaining high performance over a large    Flexibility
      dataset.                                                             Allows for Cisco to model interconnected data and complex queries with
                                                                           ease
      Background
                                                                           Robustness
      Neo4j replaces Oracle RAC, which was not performant enough for the
                                                                           With 9+ years of production experience, Neo4j brings a solid product.
      use case.




      Architecture
      3-node Enterprise cluster with mirrored
      disaster recovery cluster
      Dedicated hardware in own datacenter
      Embedded in custom webapp
      Sizing
      35 million nodes
      50 million relationships
      600 million properties




Thursday, January 24, 13
34

Thursday, January 24, 13
Really, once you start
                              thinking in graphs
                               it's hard to stop

                           Recommendations    MDM
                                    Business intelligence
                 Geospatial
                               catalogs        Systems Management
            access control Social computing
                                              your brain
                     Biotechnology
                                      routing          genealogy
         linguistics
                         Making Sense of all that data
        compensation
                                        market vectors
                                                         34

Thursday, January 24, 13
Really, once you start
                              thinking in graphs
                               it's hard to stop

                           What will you build?
                           RecommendationsMDM
                                    Business intelligence
                 Geospatial
                               catalogs        Systems Management
            access control Social computing
                                              your brain
                     Biotechnology
                                      routing          genealogy
         linguistics
                         Making Sense of all that data
        compensation
                                        market vectors
                                                         34

Thursday, January 24, 13
35

Thursday, January 24, 13
Neo4j




                           and, Thanks :)




                                            35

Thursday, January 24, 13

More Related Content

Similar to Intro to graph world

Bhart rahari 01-06
Bhart rahari 01-06Bhart rahari 01-06
Bhart rahari 01-06venkatesha9
 
Multimedia text-book-baobeid
Multimedia text-book-baobeidMultimedia text-book-baobeid
Multimedia text-book-baobeidm baobeid
 
she'ir-ehmetjan
she'ir-ehmetjanshe'ir-ehmetjan
she'ir-ehmetjantughchi
 
Verbal interactions problem solving[1]
Verbal interactions problem solving[1]Verbal interactions problem solving[1]
Verbal interactions problem solving[1]guest483faa
 
Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.
Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.
Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.butgoyeuthuong
 
التأصيل الطبي للضرورة الطبية
التأصيل الطبي للضرورة الطبيةالتأصيل الطبي للضرورة الطبية
التأصيل الطبي للضرورة الطبيةDr Ghaiath Hussein
 
雑談 アザミウマ
雑談 アザミウマ雑談 アザミウマ
雑談 アザミウマnozma
 
Analisis Forense Memoria RAM
Analisis Forense Memoria RAMAnalisis Forense Memoria RAM
Analisis Forense Memoria RAMConferencias FIST
 
InSTEDD Google Techtalk 2010
InSTEDD Google Techtalk 2010InSTEDD Google Techtalk 2010
InSTEDD Google Techtalk 2010Eduardo Jezierski
 
Google Tech Talk - Agile Development with Lives At Stake
Google Tech Talk - Agile Development with Lives At StakeGoogle Tech Talk - Agile Development with Lives At Stake
Google Tech Talk - Agile Development with Lives At StakeInSTEDD
 
理想のガイガーカウンター vs 私のガイガーカウンター
理想のガイガーカウンター vs 私のガイガーカウンター理想のガイガーカウンター vs 私のガイガーカウンター
理想のガイガーカウンター vs 私のガイガーカウンターgcmorg
 
LAMP_TRAINING_SESSION_7
LAMP_TRAINING_SESSION_7LAMP_TRAINING_SESSION_7
LAMP_TRAINING_SESSION_7umapst
 
Bisedë e përditshme Shqipe, Angleze dhe Arabe
Bisedë e përditshme Shqipe, Angleze dhe ArabeBisedë e përditshme Shqipe, Angleze dhe Arabe
Bisedë e përditshme Shqipe, Angleze dhe ArabeLexo dhe Mëso
 
سيرة فاطمة الزهراء عليها السلام
سيرة فاطمة الزهراء عليها السلامسيرة فاطمة الزهراء عليها السلام
سيرة فاطمة الزهراء عليها السلامguestbfd7302
 

Similar to Intro to graph world (18)

Bhart rahari 01-06
Bhart rahari 01-06Bhart rahari 01-06
Bhart rahari 01-06
 
Multimedia text-book-baobeid
Multimedia text-book-baobeidMultimedia text-book-baobeid
Multimedia text-book-baobeid
 
she'ir-ehmetjan
she'ir-ehmetjanshe'ir-ehmetjan
she'ir-ehmetjan
 
Futsalf
FutsalfFutsalf
Futsalf
 
Futsalf
FutsalfFutsalf
Futsalf
 
Verbal interactions problem solving[1]
Verbal interactions problem solving[1]Verbal interactions problem solving[1]
Verbal interactions problem solving[1]
 
Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.
Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.
Ky thuat nghiep_vu_ngoai_thuong_by suu tam ngon hai dang.
 
التأصيل الطبي للضرورة الطبية
التأصيل الطبي للضرورة الطبيةالتأصيل الطبي للضرورة الطبية
التأصيل الطبي للضرورة الطبية
 
Kwaed
KwaedKwaed
Kwaed
 
雑談 アザミウマ
雑談 アザミウマ雑談 アザミウマ
雑談 アザミウマ
 
Analisis Forense Memoria RAM
Analisis Forense Memoria RAMAnalisis Forense Memoria RAM
Analisis Forense Memoria RAM
 
Ecc intro oct 2011
Ecc intro oct 2011Ecc intro oct 2011
Ecc intro oct 2011
 
InSTEDD Google Techtalk 2010
InSTEDD Google Techtalk 2010InSTEDD Google Techtalk 2010
InSTEDD Google Techtalk 2010
 
Google Tech Talk - Agile Development with Lives At Stake
Google Tech Talk - Agile Development with Lives At StakeGoogle Tech Talk - Agile Development with Lives At Stake
Google Tech Talk - Agile Development with Lives At Stake
 
理想のガイガーカウンター vs 私のガイガーカウンター
理想のガイガーカウンター vs 私のガイガーカウンター理想のガイガーカウンター vs 私のガイガーカウンター
理想のガイガーカウンター vs 私のガイガーカウンター
 
LAMP_TRAINING_SESSION_7
LAMP_TRAINING_SESSION_7LAMP_TRAINING_SESSION_7
LAMP_TRAINING_SESSION_7
 
Bisedë e përditshme Shqipe, Angleze dhe Arabe
Bisedë e përditshme Shqipe, Angleze dhe ArabeBisedë e përditshme Shqipe, Angleze dhe Arabe
Bisedë e përditshme Shqipe, Angleze dhe Arabe
 
سيرة فاطمة الزهراء عليها السلام
سيرة فاطمة الزهراء عليها السلامسيرة فاطمة الزهراء عليها السلام
سيرة فاطمة الزهراء عليها السلام
 

Intro to graph world

  • 1. Introduction to Neo4j Andreas Kollegger @akollegger #neo4j 1 Thursday, January 24, 13
  • 2. Introduction to Neo4j Andreas Kollegger @akollegger #neo4j 1 Thursday, January 24, 13
  • 5. The Path Forward 2 Thursday, January 24, 13
  • 6. The Path Forward 1.Why graphs? 2 Thursday, January 24, 13
  • 7. The Path Forward 1.Why graphs? 2.What's a graph database? 2 Thursday, January 24, 13
  • 8. The Path Forward 1.Why graphs? 2.What's a graph database? 3.How do people use Neo4j? 2 Thursday, January 24, 13
  • 10. Why graphs, why now? D $ ; * , ☕⛵ ) ⛽. 7 4B N % 8 1 = +O ' @ 5% < J - ☕ 9: ( ⚾ ! ? E F$ P 2 ✈ 3 * - ), L C ( ⚽ IQ H 6 3 >G KM Thursday, January 24, 13
  • 11. Why graphs, why now? 1.Big Data is the trend 8 /! ⛽C & :D A ⛵0 , # G 7 <7 J$ O " ⚾ ! T⚽ % + 3 X. E C M S D@ A; B * 9N ✈ P 10 4 # Q K D 5 Y EI @ ⛽ , 4 J4 Z &R "☕> G % 5 3+9 =% 8 @F ? $ +7 ; [W . $ B L⚾. ⛵ * ,< ⛵ U )☕ ⛽ XO F> 5 $=1 H = BN' ☕✈ ! 1⚽ P - ☕ 8 2⚾: LE H % < J /9 V ( ? F? ( ] ✈ 3 * - ), ; : C O *6 ⚽ IQ H 3 > G KM Thursday, January 24, 13
  • 12. Why graphs, why now? 1.Big Data is the trend 2.NOSQL is the answer P ' L 97 N W Y T 5 K 0 S @! ; Q 8 /B . ⛽C& & ⛽ : D !2$% A ⛵0 , # ? G # O- 3⛵ ! T⚽ C " ⚾ X 7$ 7JR+ O J %< ! 3 8 [ * X. E ⚾] " N , ⚽9 C > S D@ A; B D 1 P9 O > E M 10 4 # M UJ I + D 7 ✈ #: Q K & WA ⛽ ✈ R34 S 5 Y EI @ ' , 5 $ 4 < R T ⛵☕> G Z 9 K %. " @F ? X $ 4& J ⛽[) % 0 7 XOL⚾ - =☕ ;" WI 5A 3B N = . 8 1 H H V * ⛵ ☕. U L + $ B5 + ⛽ N ⛵ U 9 = , > B$1 ✈ G☕ , < M P Z ☕ - ☕ ⚾8 2⚾:[FE H % < J P '<: ! F / ]8 V; % FQ ⚽ ? ✈ 4 H Z GV ), 2L E? *6 ⚽ 1 F ✈ 3 ( ( - ] ; : CO ? * @ ⚽ C D Y M Q I H 3 + > G K Thursday, January 24, 13
  • 13. Why graphs, why now? 1.Big Data is the trend 2.NOSQL is the answer 3.Large in volume, and in variety P ' L 97 N W Y P ' L 97 N W Y T5K 0 S @ . ; T 5 K 0 S @! ; ⛽ . & Q & B & ⛽ Q 8 /B O-G⛵ ⛽ C # !2R C : D !2$% A " # ⛵X 3 0, ? # O- 3⛵ ! T⚽ ? 8 " J 3%$[ ! > X 7$ 7JR+ 1 ] X⚾ A;⚽9 E J % < M DJO C⚾ , 8 9 [ C >✈S * 7✈ O > . ⚾] " N , ⚽9 ! U M IR D@ + E B WA D 1 P + O >E # : 0 4 S M UJ I 1 3 45 T' 7 S D X I@ WA " # & ✈ Q K , 4 J & Y EG T ⛽ $ +7 < Z= ⛵R UG # :R34 5 $ 54HZV ☕"' I >0 L < $K% . ⛽ ⛵☕ FN? [ : - X ;" WI 5A 3B 9 K %.8 1⚾P [ % 0 L + N ⚾. H V * ⛵ )☕. U ⛽ G☕ , < M PU& N XO ☕ = L B- ☕ 1@ A ]8 ; MH F , < BQ ⛽ ⛵ [F> 4 Q J ';✈ 5 $= GV 1 F / 98 V, ⚽F ? < ✈ ( : F Z ☕ - ☕ ⚾8 2⚾: $ E H % 1⚽ P @ < %B Z ! ?H 2? E ✈ 4 H Z GV ]] 2L + *6 D Y F ✈ 3( - ), ; : C O ⚽ ⚽ * @Y IQ E ? H C + >C D K M G 3 Thursday, January 24, 13
  • 14. P L0 7 N W T 5 K Q S @ . ; L9 Y W & ⛽ BP ' 07 N 9 Y O- 3⛵ !2 ? K T5 S @B ;. 7 N W P ' L 97 N " # Y X 8 WJ %$ & R 9 Y Q ⛽C7 ' L >⛵ N W !2 ? 01 [ ! S @ B ; T 5 KDJ ⚾] @ . , ⚽# O- 3 X . P> 0 9 Q !2 ? ⛽ M UQ IS Why graphs, why now? 7 + O 58 Q WA @ $[ !R C BS T K ; E J S %. 9 " B⚽ > & R C - 3⛵ O XJ # :R34 5& ⛽ J ⚾] T ' , ; E > ✈ !I ?M U <I K 7 ! O ? 2RU LD 1 %$[ ! # 8 H"V ☕" ⚽9 X G %$⛽ 0O C AN ✈$ % . S ⛵ [ ! #& - 3⛵:R34 + 2R C - WA , + O M UJ W ⚾] , F >X #"< I [U L < K T ' > E >1 A Z ☕ ⚽9 M P8]8 [J %$5 & X: BQ , 1E H⚾V ; , ⚽9 ! > ⚾ . D I ✈ 4 H > GV 1 AG☕" E 0 E F Z DJ W] 2 ⛵ ⛽ N - S 5U LL < # :. ' P& 0[ K - N 1.Big Data is the trend R3 7 S 9 9 Y ✈T ' 4 + O M U @IR ☕7 + 1⚾P ⚽ + D Y < YNT ✈ 4 5 ' ✈ M A Z' ? S O > ]8 [A % B Q X $ N W I 50 LL XC # :.34 H Z GV9 Y 2. E K - ⚽F F W< ;$ , : 0 7: " A H ,G ⛵ M P K8 ; % ⛽ Q M U T V @ . &' N P A 0[ 7: " W I P& L < K T ' @Y ? ⚾ 5 ] Q Z ☕B ;⚾P F < T H $ %⛽ S ☕ B 1 F 5 K8 ; G☕⛵ Q+M A V , @B < . 0 LC0[ :%W UN D7 N - G⛽ @ V FE 2 ✈ !2 Z GV ] Q Z F ? ⚽4 H ? ⛽ E 1F 5 ] Q $ S ☕ B ;⚾P K8 ; @B Q T ,< S . 3 Y' 9 Y & O-D⛵ C PJ L + R C C 3⛵ X %$7 N # 2.NOSQL is the answer @Y 2 ✈ !2 Z G⛽ @ O-D X 9 ? ⚽4 H ? V & 2 E ; B ? !2 ? 8 " W ⚾] T , ⚽9 ! > ⚾ NJ %$[ ! # R C C D⛵ O- 3 Y 1 0 [> 5 K Q S E B1; 8 @ J WA Y L ' 8 + . W " 7 , ⚽9 P > X %$ J RC J I 7+ O M U . ] 7+ O5T D I@ 0 > E 1 A " , ⚽9 ! > ⚾] [ # :R34 ⛵ ✈& ⛽ S O-I 5 & 3 XN !# :.34 S K M UJ W ' 7 + O > E ; ✈T ' S Q ? BR 2R C <? - D I K ! I 5 & ⛽ & ✈T 34 S R WA G# 8 V ☕" ⚾ M" A %$[V % " ⛽ ⛵ 1⚾ U P J X :3.Large in volume, and in variety 0 L H $!2 ⛽ [ < ☕⛵ Q F , ⚽9R! > $%M J , CG B 8 ;E [ XA HOV N < K - U L X # :. 0 ⛵3 -[ # % " I 50 L < K T $ G☕⛵ Q YU & N ☕4 1 ] 7 + O Z ☕ E⚽ 1⚾P M UJ I GV ✈D HZ F ] > 9 > E 4 WAGV F " ]8 8; < ⚾ ZP : ⛽ , ' 9M P ⚽ # :R34 @9 2 ✈ > H Z+ 7 ]9 2D ☕F L0 7 N W8 ; ? ⚽F O , ' ' I JU ME 1⚾ B F A $ ,: - [< % ✈ YS W W NI 5 & ' P K TS 1 Y✈ 4 ] Y9 AL X + . " C' 0N Y < + - P43R: # N 7 D UL .CD @Y ✈ ? ⚽ K Z GV @ . 2 L0 7 T 5 H W S @Y ;? E H V ☕⛵ P S' 0 K 5N W % 5 I K ⛽ G B@ MQ.T K < :& A [< N BQ @B Q L0 7 T $ L U T 5 "Q & ⛽ +. ; C D B ? SX ;☕ ,.A Z F T 5⚾P :8 @! ;F⛽ ⛽☕#Z -!⛵ J F 1 K- ] ⛽ ; 0 M $[ & &⚾ ? ⚽4 H Z GV% < /? P 1 ⛵0 ☕C ⛵⛽G& H V 3 O !2 ✈2! ⛵Y, 8 S-O 8 Q B Q 3D2B # O- 3⛵ F ✈ 8 ; E 2R C %$[ !R C X "? & ⛽ ED ? 8 ] $%8 Z " ⚽ %$ ! , ⚽9 C R + % CX :2 !# ? G A HX, # ] J@ O- 3⛵ " ⚾ Y⚽ V ⚾G M UJ ⚾9 7 + O > E > A [$ J 7 ! T@ CO " 4 3 1[ ! 9⚽ 2R JD ⚽ # > E >8 , " X ]$ JD D J I X⚾ A;IR3 > 1 7J MC S % <9UC + 1 ] + , O > E SWA I[ M U * . EB 4 ✈ @ +# : W O S 9N R ⚽ ⚾] 7 , ✈ > + !D 7 D 1 5 43 : # E # A H # M UJ I P + O 7 S D X I@ >✈ 10DX S M :R34 ✈ I 50 L < K T 45 G☕" < KU . ⛽ ⛵ & T' [ : - N . K < # N R34 K 5 V Y E W"' I Z & ? "☕ X L 0 I ⛽ G HZV T ⛽ >0 L ✈U Q & & "☕ V A G A M, 5+ 4 < RG☕⛵ ⛵ M F F [ ⚾ % ]8 ; % B N U☕ MP F A $ , ,X : ⛵J : [ 8 ;"⚾ I 5N 3 = Z= . $ $7 % 0☕ + N ⚾. H $ 4 & Z 9 K %⛽ 8 @P $ V B Q 2< E 1: - ; V * P W . U L XOL B - < F ⛽U ⛽ 1M 4 G VG< P , Z⚾ A ☕4 $1☕ ✈ ] H ; H ] ☕⛵ )☕⛵ F ✈ B $✈ 5 =1 H⚽48 Z< @ [ [F % B < J1⚾ '; > F Q GV F , :⚽ F Z ✈ + 2 C D Y , E H% ⚽ P ! G E ? ? Z @F ☕ H8 ⚽98 V L 2 F 2⚾: ☕4 ✈1 / ]] < E - ? Y D C Z GV ), 2 : + ? *6 D Y ✈ ( H @ ? ( + ⚽ H ⚽3 * - Y ; ? CO C @ I H + >C D K M Q G 3 Thursday, January 24, 13
  • 17. Everyone is talking about graphs... 4 Thursday, January 24, 13
  • 18. Everyone is talking about graphs... Facebook Open Graph 4 Thursday, January 24, 13
  • 19. Everyone is talking about graphs... Facebook Open Graph 4 Thursday, January 24, 13
  • 20. Text 5 Thursday, January 24, 13
  • 21. Graphs are everywhere! I even have one... Text 5 Thursday, January 24, 13
  • 22. A graph... 6 Thursday, January 24, 13
  • 23. A graph... ๏ you know the common data structures 6 Thursday, January 24, 13
  • 24. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" 6 Thursday, January 24, 13
  • 25. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure 6 Thursday, January 24, 13
  • 26. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related 6 Thursday, January 24, 13
  • 27. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms 6 Thursday, January 24, 13
  • 28. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms •studied since Leonard Euler's 7 Bridges (1736) 6 Thursday, January 24, 13
  • 29. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms •studied since Leonard Euler's 7 Bridges (1736) •Codd's Relational Model (1970) 6 Thursday, January 24, 13
  • 30. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms •studied since Leonard Euler's 7 Bridges (1736) •Codd's Relational Model (1970) •not a new idea, just an idea who's time is now 6 Thursday, January 24, 13
  • 31. A graph database... 7 Thursday, January 24, 13
  • 32. A graph database... ๏ optimized for the connections between records 7 Thursday, January 24, 13
  • 33. A graph database... ๏ optimized for the connections between records ๏ really, really fast at querying across records 7 Thursday, January 24, 13
  • 34. A graph database... ๏ optimized for the connections between records ๏ really, really fast at querying across records ๏ a database: transactional with the usual operations 7 Thursday, January 24, 13
  • 35. A graph database... ๏ optimized for the connections between records ๏ really, really fast at querying across records ๏ a database: transactional with the usual operations ๏ “A relational database may tell you the average age of everyone in this webinar, but a graph database will tell you how to drive from Baltimore to San Francisco.” 7 Thursday, January 24, 13
  • 36. That last bullet is the key insight... 8 Thursday, January 24, 13
  • 38. You know relational 9 Thursday, January 24, 13
  • 39. You know relational 9 Thursday, January 24, 13
  • 40. You know relational foo 9 Thursday, January 24, 13
  • 41. You know relational foo bar 9 Thursday, January 24, 13
  • 42. You know relational foo foo_bar bar 9 Thursday, January 24, 13
  • 43. You know relational foo foo_bar bar 9 Thursday, January 24, 13
  • 44. You know relational foo foo_bar bar 9 Thursday, January 24, 13
  • 45. You know relational foo foo_bar bar 9 Thursday, January 24, 13
  • 46. You know relational now consider relationships... 9 Thursday, January 24, 13
  • 47. You know relational now consider relationships... 9 Thursday, January 24, 13
  • 48. You know relational now consider relationships... 9 Thursday, January 24, 13
  • 49. You know relational now consider relationships... 9 Thursday, January 24, 13
  • 50. You know relational now consider relationships... 9 Thursday, January 24, 13
  • 51. You know relational now consider relationships... 9 Thursday, January 24, 13
  • 54. We're talking about a Property Graph 10 Thursday, January 24, 13
  • 55. We're talking about a Property Graph Nodes 10 Thursday, January 24, 13
  • 56. We're talking about a Property Graph Nodes Relationships 10 Thursday, January 24, 13
  • 57. We're talking about a Property Graph Em Joh il a n knows knows Alli Tob Lar Nodes son ias knows s knows And And knows knows rea rés s knows knows knows Pet Miic Mc knows Ian er knows a a knows knows De Mic lia h ael Relationships Properties (each a key+value) + Indexes (for easy look-ups) 10 Thursday, January 24, 13
  • 59. Neo4j - the Graph Database 11 Thursday, January 24, 13
  • 60. Google "neo4j" 12 Thursday, January 24, 13
  • 61. Google "neo4j" ๏ neo4j.org 12 Thursday, January 24, 13
  • 62. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com 12 Thursday, January 24, 13
  • 63. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com ๏ github.com/neo4j 12 Thursday, January 24, 13
  • 64. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com ๏ github.com/neo4j ๏ neo4j.meetup.com 12 Thursday, January 24, 13
  • 65. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com ๏ github.com/neo4j ๏ neo4j.meetup.com ๏ graphconnect.com 12 Thursday, January 24, 13
  • 66. How to get started? 13 Thursday, January 24, 13
  • 67. How to get started? ๏ Documentation 13 Thursday, January 24, 13
  • 68. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference 13 Thursday, January 24, 13
  • 69. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action 13 Thursday, January 24, 13
  • 70. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships 13 Thursday, January 24, 13
  • 71. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j 13 Thursday, January 24, 13
  • 72. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download 13 Thursday, January 24, 13
  • 73. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download • http://addons.heroku.com/neo4j/ 13 Thursday, January 24, 13
  • 74. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download • http://addons.heroku.com/neo4j/ ๏ Participate • ask questions on Stack Overflow • http://groups.google.com/group/neo4j • http://neo4j.meetup.com 13 Thursday, January 24, 13
  • 75. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download • http://addons.heroku.com/neo4j/ ๏ Participate • ask questions on Stack Overflow • http://groups.google.com/group/neo4j • http://neo4j.meetup.com • webinars, every month on everything from intro to production 13 Thursday, January 24, 13
  • 76. Neo4j is a Graph Database 14 Thursday, January 24, 13
  • 77. Neo4j is a Graph Database • A Graph Database: 14 Thursday, January 24, 13
  • 78. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both 14 Thursday, January 24, 13
  • 79. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data 14 Thursday, January 24, 13
  • 80. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: 14 Thursday, January 24, 13
  • 81. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions 14 Thursday, January 24, 13
  • 82. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties 14 Thursday, January 24, 13
  • 83. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties • Server with REST API, or Embeddable on the JVM 14 Thursday, January 24, 13
  • 84. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties • Server with REST API, or Embeddable on the JVM • high-performance with High-Availability (read scaling) 14 Thursday, January 24, 13
  • 86. And, but, so how do you query this "graph" database? 15 Thursday, January 24, 13
  • 88. Cypher - a graph query language ๏ a pattern-matching query language ๏ declarative grammar with clauses (like SQL) ๏ aggregation, ordering, limits ๏ create, read, update, delete 16 Thursday, January 24, 13
  • 89. Cypher - a graph query language ๏ a pattern-matching query language ๏ declarative grammar with clauses (like SQL) ๏ aggregation, ordering, limits ๏ create, read, update, delete // get node from an index named “foo” start foo=node:people(name=‘Andreas’) return foo // find “bar” nodes related to Andreas start foo=node:people(name=‘Andreas’) match (foo)-->(bar) return bar // create a node create (me {name:'Andreas'}) 16 Thursday, January 24, 13
  • 91. Is it production ready? 17 Thursday, January 24, 13
  • 93. Neo4j HA - High Availability Cluster 18 Thursday, January 24, 13
  • 94. Neo4j HA - High Availability Cluster • master-slave replication Loa dB ala nce r 18 Thursday, January 24, 13
  • 95. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling Loa dB ala nce r 18 Thursday, January 24, 13
  • 96. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones Loa dB ala nce r 18 Thursday, January 24, 13
  • 97. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency Loa dB ala nce r 18 Thursday, January 24, 13
  • 98. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency • redundancy provides improved uptime Loa dB ala nce r 18 Thursday, January 24, 13
  • 99. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency • redundancy provides improved uptime • automatic failover Loa dB ala nce r 18 Thursday, January 24, 13
  • 100. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency • redundancy provides improved uptime • automatic failover Loa dB ala nce r 18 Thursday, January 24, 13
  • 101. Neo4j HA - High Availability Cluster Loa dB ala nce r 18 Thursday, January 24, 13
  • 102. Real World Use Cases: 19 Thursday, January 24, 13
  • 103. Real World Use Cases: [A] Mmm Pancakes 19 Thursday, January 24, 13
  • 104. Real World Use Cases: [A] Mmm Pancakes [B] ACL from Hell 19 Thursday, January 24, 13
  • 105. Real World Use Cases: [A] Mmm Pancakes [B] ACL from Hell [C] Master of your Domain 19 Thursday, January 24, 13
  • 107. [A] Mmm Pancakes Thursday, January 24, 13
  • 108. [A] Mmm Pancakes Thursday, January 24, 13
  • 110. [A] Mozilla Pancake This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 111. [A] Mozilla Pancake • Experimental cloud-based browser • Built to improve how users Discover, Collect, Share & Organize things on the web • Goal: help users better access & curate information on the net, on any device This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 112. This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 113. Why Neo4J? This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 114. Why Neo4J? • The internet is a network of pages connected to each other. What better way to model that than in graphs? • No time lost fighting with less expressive datastores • Easy to implement experimental features This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 115. Cute meta + data This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 116. Cute meta + data This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 117. Neo4J Co-Existence • Node uuids as refs in external ElasticSearch also in internal Lucene • Custom search ranking for user history based on node relationship data • MySQL for user data, Redis for metrics This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 118. Mozilla Pancake Available on BitBucket: https://bitbucket.org/mozillapancake/pancake Questions? Olivier Yiptong: oyiptong@mozilla.com This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/ Thursday, January 24, 13
  • 120. [B] ACL from Hell One of the top 10 telcos worldwide Thursday, January 24, 13
  • 121. Background Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012. Limit th G row ted jec Pro 2010 2015 Thursday, January 24, 13
  • 122. [B] Telenor Background Background Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012. Limit th G row ted jec Pro 2010 2015 Thursday, January 24, 13
  • 123. [B] Telenor Background • MinBedrif, a self service web solution for companies Background • 2010 - calculated that it would not scale Telenor calculated in 2010 that it´s self-service web solution for with projected growth companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012. Limit th G row ted jec Pro 2010 2015 Thursday, January 24, 13
  • 124. Example Access Authorization User Access may be given directly or by inheritance Customer Account U Subscription U Inherit = true Inherit = false In C he rit = C C C tru e A A A A A S S S S S S S S S S Thursday, January 24, 13
  • 125. Business Case The business case is built on the negative consequence of NOT addressing the problem. Loss of customers (income) Reduced sales transactions (income) Increased manual support (expenses) Other Thursday, January 24, 13
  • 127. Current ACL Service 30 Thursday, January 24, 13
  • 128. Current ACL Service • Stored procedure in DB calculating all access • cached results for up to 24 hours • minutes to calculate for large customers • extremely complex to understand (1500 lines) • depends on temporary tables • joins across multiple tables 30 Thursday, January 24, 13
  • 130. ACL With Neo4j 31 Thursday, January 24, 13
  • 131. ACL With Neo4j ๏ Faster than current solution ๏ Simpler to understand the logic ๏ Avoid large temporary tables ๏ Tailored for service (resource authorization) 31 Thursday, January 24, 13
  • 133. [C] Master of your Domain Thursday, January 24, 13
  • 134. [C] MDM within Cisco master data management, sales compensation management, online customer support Description Benefits Real-time conflict detection in sales compensation management. Performance : “Minutes to Milliseconds” Business-critical “P1” system. Neo4j allows Cisco to model complex Outperforms Oracle RAC, serving complex queries in real time algorithms, which still maintaining high performance over a large Flexibility dataset. Allows for Cisco to model interconnected data and complex queries with ease Background Robustness Neo4j replaces Oracle RAC, which was not performant enough for the With 9+ years of production experience, Neo4j brings a solid product. use case. Architecture 3-node Enterprise cluster with mirrored disaster recovery cluster Dedicated hardware in own datacenter Embedded in custom webapp Sizing 35 million nodes 50 million relationships 600 million properties Thursday, January 24, 13
  • 136. Really, once you start thinking in graphs it's hard to stop Recommendations MDM Business intelligence Geospatial catalogs Systems Management access control Social computing your brain Biotechnology routing genealogy linguistics Making Sense of all that data compensation market vectors 34 Thursday, January 24, 13
  • 137. Really, once you start thinking in graphs it's hard to stop What will you build? RecommendationsMDM Business intelligence Geospatial catalogs Systems Management access control Social computing your brain Biotechnology routing genealogy linguistics Making Sense of all that data compensation market vectors 34 Thursday, January 24, 13
  • 139. Neo4j and, Thanks :) 35 Thursday, January 24, 13