The Challenge of Connected Data Jim Webber Chief Scien7st, - - PowerPoint PPT Presentation

the challenge of connected data
SMART_READER_LITE
LIVE PREVIEW

The Challenge of Connected Data Jim Webber Chief Scien7st, - - PowerPoint PPT Presentation

The Challenge of Connected Data Jim Webber Chief Scien7st, Neo Technology @jimwebber h?p://slantmagazine.com/film/review/saturday-night-fever/4210


slide-1
SLIDE 1

The ¡Challenge ¡of ¡Connected ¡Data ¡

Jim ¡Webber ¡ Chief ¡Scien7st, ¡Neo ¡Technology ¡ @jimwebber ¡

slide-2
SLIDE 2

h?p://slantmagazine.com/film/review/saturday-­‑night-­‑fever/4210 ¡

slide-3
SLIDE 3

h?p://freenewfoundlandlabrador.blogspot.com/2011/07/nl-­‑fisheries-­‑500-­‑years-­‑of-­‑turmoil.html ¡

slide-4
SLIDE 4

h?p://www.oopsla.org/oopsla2008/support ¡

slide-5
SLIDE 5

h?p://uncyclopedia.wikia.com/wiki/File:Square-­‑earth.jpg ¡

slide-6
SLIDE 6

h?p://www.telegraph.co.uk/finance/newsbysector/industry/8470355/The-­‑fall-­‑and-­‑rise-­‑of-­‑the-­‑Bri7sh-­‑car-­‑industry-­‑7meline.html ¡

slide-7
SLIDE 7

Bomb ¡the ¡argies! ¡ Crush ¡the ¡miners! ¡ Defy ¡Europe! ¡ I’m ¡CEO, ¡bitch! ¡

h?p://www.answers.com/topic/margaret-­‑thatcher-­‑large-­‑image-­‑3 ¡

slide-8
SLIDE 8

h?p://www.themoviedb.org/movie/26305 ¡

slide-9
SLIDE 9

h?p://iremedy.net/blog/2010/05/your-­‑office-­‑without-­‑boundaries/ ¡

slide-10
SLIDE 10

Share ¡everything! ¡ Privacy ¡schmivacy! ¡ Social ¡graph! ¡ I’m ¡CEO, ¡bitch! ¡

slide-11
SLIDE 11
slide-12
SLIDE 12

h?p://www.flickr.com/photos/crazyneighborlady/355232758/ ¡

slide-13
SLIDE 13

h?p://gallery.nen.gov.uk/image82582-­‑.html ¡

slide-14
SLIDE 14

h?p://www.xtranormal.com/watch/6995033/mongo-­‑db-­‑is-­‑web-­‑scale ¡

slide-15
SLIDE 15

Aggregate-­‑Oriented ¡Databases ¡

h?p://mar7nfowler.com/bliki/AggregateOrientedDatabase.html ¡

“There is a significant downside - the whole approach works really well when data access is aligned with the aggregates, but what if you want to look at the data in a different way? Order entry naturally stores orders as aggregates, but analyzing product sales cuts across the aggregate structure. The advantage of not using an aggregate structure in the database is that it allows you to slice and dice your data different ways for different audiences. This is why aggregate-oriented stores talk so much about map-reduce.”

slide-16
SLIDE 16

complexity = f(size, connectedness, uniformity)

slide-17
SLIDE 17

h?p://www.bbc.co.uk/london/travel/downloads/tube_map.html ¡

slide-18
SLIDE 18

stole ¡ from ¡ loves ¡ loves ¡ enemy ¡ enemy ¡

A ¡Good ¡Man ¡ Goes ¡to ¡War ¡

appeared ¡ ¡ in ¡ appeared ¡ ¡ in ¡ appeared ¡ ¡ in ¡ appeared ¡ ¡ in ¡

Victory ¡of ¡ ¡ the ¡Daleks ¡

appeared ¡ ¡ in ¡ appeared ¡ ¡ in ¡ companion ¡ companion ¡ enemy ¡

slide-19
SLIDE 19

Neo4j: ¡Crea7ng ¡Nodes ¡

GraphDatabaseService db = new EmbeddedGraphDatabase("/tmp/neo");

Transaction tx = db.beginTx(); try { Node theDoctor = db.createNode(); theDoctor.setProperty("name", "the Doctor"); tx.success(); } finally { tx.finish(); }

slide-20
SLIDE 20
slide-21
SLIDE 21

Neo4j: ¡Crea7ng ¡Rela7onships ¡

Transaction tx = db.beginTx(); try { Node theDoctor = db.createNode(); theDoctor.setProperty("name", "The Doctor"); Node susan = db.createNode(); susan.setProperty("firstname", "Susan"); susan.setProperty("lastname", "Campbell"); susan.createRelationshipTo(theDoctor, COMPANION_OF)); tx.success(); } finally { tx.finish(); }

slide-22
SLIDE 22

HIPSTER ¡DEVS, ¡Y ¡U ¡NO ¡LIKE ¡JAVA? ¡

slide-23
SLIDE 23

Cypher ¡– ¡A ¡Humane ¡“Query” ¡Language ¡

// Create a simple graph CREATE doctor = { character : 'Doctor' }, master = { character : 'Master' }, (doctor)<-[e:ENEMY_OF]-(master) // Add some data into it SET doctor.awesomeness = 11 SET master.niceness = “very” SET e.weight = 100 // Ooops! DELETE master.niceness SET master.nastiness = “100%”

slide-24
SLIDE 24

h?p://www.tolkienlibrary.com/press/922-­‑Isildur_Poker_Champion.php ¡

slide-25
SLIDE 25

Aggregate ¡Database ¡

username: Jeff1986 age: 25 friend : SallyDJ friend : Gazza username: SallyDJ age: 28 friend : Jeff1986 friend: FunkySam username: FunkySam age: 24 friend : SallyDJ username: Gazza age: 32 friend : Jeff1986

slide-26
SLIDE 26

Applica7on ¡Layer ¡

username: Jeff1986 age: 25 username: SallyDJ age: 28 username: FunkySam age: 24 username: Gazza age: 32

Aggregate ¡Database ¡

username: Jeff1986 age: 25 friend : SallyDJ friend : Gazza username: SallyDJ age: 28 friend : Jeff1986 friend: FunkySam username: FunkySam age: 24 friend : SallyDJ username: Gazza age: 32 friend : Jeff1986

Reify ¡

slide-27
SLIDE 27

Graph ¡Database ¡

username: Jeff1986 age: 25 username: SallyDJ age: 28 username: FunkySam age: 24 username: Gazza age: 32

FRIEND FRIEND FRIEND

slide-28
SLIDE 28

h?p://www.freewebs.com/fic7onfrek101/han.jpg ¡

slide-29
SLIDE 29

Graph ¡Database ¡

username: SallyDJ age: 28 product: CoolDecks manufacturer : Acme price : 599

PURCHASED

product: SuperCans manufacturer : Acme price : 150

P U R C H A S E D

username: Gazza age: 32

PURCHASED

Aggregate ¡Database ¡

username: SallyDJ age: 28 purchased : CoolDecks purchased : SuperCans username: Gazza age: 32 purchased : SuperCans product: SuperCans manufacturer : Acme price : 150 product: CoolDecks manufacturer : Acme price : 599

slide-30
SLIDE 30

h?p://xkcd.com/653/ ¡

slide-31
SLIDE 31

Graph ¡Database ¡

product: CoolDecks manufacturer : Acme price : 599

P U R C H A S E D

product: SuperCans manufacturer : Acme price : 150

PURCHASED PURCHASED

username: Jeff1986 age: 25 username: SallyDJ age: 28 username: FunkySam age: 24 username: Gazza age: 32

FRIEND F R I E N D FRIEND

slide-32
SLIDE 32

h?p://void.iddqd.cz/comic-­‑book-­‑guy-­‑pc.jpg ¡

slide-33
SLIDE 33

Graph ¡matching ¡

  • It’s ¡super-­‑powerful ¡for ¡looking ¡for ¡pa?erns ¡in ¡

a ¡data ¡set ¡

– Retail ¡analy7cs ¡ – Real-­‑7me ¡upselling ¡

  • High-­‑level ¡of ¡abstrac7on ¡

– Business-­‑oriented ¡pa?erns ¡

  • Formerly ¡done ¡with ¡Java, ¡now ¡Cypher ¡
slide-34
SLIDE 34
slide-35
SLIDE 35

character: Doctor actor: ??? episode: ??? title: ??? species: Cyberman

  • [:APPEARED_IN]-> ¡

ASCII ¡Art ¡Queries! ¡

slide-36
SLIDE 36
  • [:APPEARED_IN]-> ¡

ASCII ¡Art ¡Queries! ¡

(Doctor) ¡ (Actor) ¡ (Episode) ¡ (Cyberman) ¡

slide-37
SLIDE 37

ASCII ¡Art ¡Queries! ¡

match (doctor)<-[:PLAYED]-(actor)

  • [:APPEARED_IN]->(ep)

<-[:APPEARED_IN]-(cybermen)

slide-38
SLIDE 38

Cypher ¡Query ¡

In ¡which ¡episodes ¡did ¡the ¡cybermen ¡appear, ¡and ¡who ¡played ¡the ¡Doctor? ¡

start doctor=node:characters(character='Doctor'), cybermen=node:species(species='Cyberman') match (doctor)<-[:PLAYED]-(actor)

  • [:APPEARED_IN]->(ep)

<-[:APPEARED_IN]-(cybermen) where has(ep.title) and has(ep.episode) return ep.title, actor.actor

slide-39
SLIDE 39
slide-40
SLIDE 40
  • Adobe ¡Crea7ve ¡Cloud ¡

– Gazillions ¡of ¡social ¡ – Single ¡large ¡global ¡cluster ¡

  • Thingdom ¡

– Node.js, ¡Neo4j ¡ – Now ¡acquired ¡by ¡FipyThree ¡

  • Cisco ¡network ¡management ¡

– Nuff ¡said ¡

  • And ¡now… ¡Bingo ¡Friendzy ¡

– Facebook ¡gaming ¡app ¡from ¡ Gamesys ¡

slide-41
SLIDE 41
slide-42
SLIDE 42

Thanks ¡for ¡listening ¡

Neo4j: ¡h/p://neo4j.org ¡ Neo ¡Technology: ¡h/p://neotechnology.com ¡ Me: ¡@jimwebber ¡