Democratizing Data at Airbnb
-
Upload
neo4j-the-fastest-and-most-scalable-native-graph-database -
Category
Technology
-
view
1.234 -
download
1
Transcript of Democratizing Data at Airbnb
![Page 1: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/1.jpg)
Democratizing Data at Airbnb
CHRIS WILLIAMS / JOHN BODLEY / MAY 11, 2017
![Page 2: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/2.jpg)
Airbnb connects people to unique travel experiences
![Page 3: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/3.jpg)
The problem
![Page 4: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/4.jpg)
tribal knowledge |ˈtrībəl ˈnäləj | noun
Tribal knowledge is any unwritten information that is not commonly known by others within a company
![Page 5: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/5.jpg)
Relying on tribal knowledge stifles productivity
![Page 6: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/6.jpg)
As Airbnb grows so do the challenges around the volume, complexity, and obscurity of data
![Page 7: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/7.jpg)
In a large and complex organization, with a sea of data resources, users struggle to find the right data
![Page 8: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/8.jpg)
Data is often siloed, inaccessible, or lacks context
![Page 9: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/9.jpg)
I’m a recovering Data Scientist who wants to democratize data, automate common workflows, surface relevant
information, and provide context
![Page 10: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/10.jpg)
Tables in our Hive data warehouse200k
![Page 11: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/11.jpg)
> 10,000 Superset charts and dashboards
> 6,000 Experiments and metrics
> 6,000 Tableau workbooks and charts
> 1,500 Knowledge posts
Data resourcesBeyond the data warehouse
![Page 12: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/12.jpg)
With many more data sources and data types to love
![Page 13: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/13.jpg)
and most importantly…
![Page 14: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/14.jpg)
> 3,500 Airbnb employees
![Page 15: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/15.jpg)
PortlandSan Francisco
Los Angeles
TorontoNew York
Miami
Sao Paulo
DublinLondon
Paris
Barcelona
Berlin
Milan
Copenhagen
New Delhi
SeoulBeijing
Tokyo
Sydney
Singapore
Washington, DC
> 20Offices around the world
![Page 16: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/16.jpg)
The mandate
![Page 17: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/17.jpg)
To democratize data and empower Airbnb employees to be data-informed by aiding with data exploration, discovery, and trust
![Page 18: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/18.jpg)
The concept
![Page 19: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/19.jpg)
Search…
![Page 20: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/20.jpg)
It should be fairly evident what we feed into the search indices
![Page 21: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/21.jpg)
![Page 22: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/22.jpg)
But are we missing something?
![Page 23: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/23.jpg)
![Page 24: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/24.jpg)
The relevancy of relationshipsNodes and relationships have equal standing
created consumedSpoke 3
![Page 25: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/25.jpg)
The graph
created
associated
associated
associated
consumed
consumed
created
consumed
![Page 26: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/26.jpg)
The graph
created
associated
associated
associated
consumed
consumed
created
consumed
![Page 27: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/27.jpg)
The graph
created
associated
associated
consumed
consumed
created
consumed
associated
![Page 28: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/28.jpg)
The graph
associated
associated
associated
consumed
consumed
consumed
created created
![Page 29: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/29.jpg)
The graph
created
associated
associated
associated
consumed
created
consumed
consumed
![Page 30: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/30.jpg)
The graph
created
associated
associated
associated consumed
created
consumed
consumed
![Page 31: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/31.jpg)
The graph
created
associated
consumed
consumed
created
consumed
associated
associated
![Page 32: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/32.jpg)
The construction
![Page 33: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/33.jpg)
Databases
6APIs
4Airflow DAG
1
![Page 34: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/34.jpg)
Databases6
APIs4
Airflow DAG1
We leverage all these data resources to build a graph in Hive comprising of nodes and relationships
The workflow is run everyday though the graph is left to soak to prevent flickering
![Page 35: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/35.jpg)
Addressing graph flickering
![Page 36: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/36.jpg)
Addressing graph flickering
The issue is certain types of relationships are sporadic in nature causing the graph to flicker
![Page 37: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/37.jpg)
Persistent vs. transient relationshipsPersistent relationships represent a snapshot in time
createdSpoke 3
![Page 38: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/38.jpg)
Persistent vs. transient relationshipsTransient relationships represent events which are somewhat sporadic in nature
M Tu W Th F
consumedSpoke 3
![Page 39: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/39.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 40: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/40.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 41: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/41.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 42: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/42.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 43: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/43.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 44: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/44.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 45: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/45.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 46: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/46.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 47: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/47.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 48: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/48.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 49: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/49.jpg)
The winding data path
Airflow Data transfer
Python Graph datastore
neo4j-driver Python Neo4j driver
Neo4j Graph database
GraphAware Neo4j/Elasticsearch plugin
Elasticsearch Search engine
Flask Python web framework
Hive Data warehouse
![Page 50: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/50.jpg)
Logical Given our data is represented as a graph it is logical to use a graph database to store the data
Nimble Performance wins when dealing with connected data versus relational databases
Popular It is the world’s leading graph database and the community edition is free
Integrative It integrates well with Python and Elasticsearch
Why we choose Neo4j for our databaseThe four main reasons
![Page 51: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/51.jpg)
The Neo4j and Elasticsearch symbiotic relationshipCourtesy of two GraphAware plugins
Neo4j plugin Provides bi-directional integration which transparently and asynchronously replicate data from Neo4j to Elasticsearch
Elasticsearch plugin Enables Elasticsearch to consult with the Neo4j database during a search query to enrich the search rankings by leveraging the graph topology
![Page 52: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/52.jpg)
Node label hierarchy
:Entity
:Org
:Group :User
:Tableau
:Workbook:Chart
:Hive
:Schema :Table
![Page 53: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/53.jpg)
jane_doe
(:Entity:Org:User {id: ‘jane_doe’})
(:Entity:Hive:Table {id: ‘dim_users’})
(:Entity:Tableau:Chart {id: ‘12345’})
dim_users
12345
![Page 54: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/54.jpg)
MATCH (n:Entity:Org:User {id: ’<id>’}) USING INDEX n:User(id) RETURN n
![Page 55: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/55.jpg)
From local to global uniquenessA mechanism to reference nodes in an abstract manner
GraphAware UUID plugin Transparently assigns a globally unique UUID property to newly created elements (nodes and relationships) which cannot be changed or deleted
Globally unique Enables us to uniquely identify a single node via the Entity label and UUID property which allows for parameterized queries which leads to faster query and execution times
![Page 56: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/56.jpg)
MATCH (n:Entity {uuid: ’<uuid>’}) USING INDEX n:Entity(uuid) RETURN n
![Page 57: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/57.jpg)
/api/graph/nodes/org/user/<id>
/api/graph/nodes/<uuid>
/api/graph/relationships/<uuid>/created/<uuid>
![Page 58: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/58.jpg)
The frontend
![Page 59: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/59.jpg)
web app
![Page 60: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/60.jpg)
Designing the interface and user experience of a data tool should not be an afterthought
![Page 61: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/61.jpg)
Technical data power user; the epitome of a tribal knowledge holder
Daphne Data
User personas
Less data literate; needs to keep tabs on her team’s resources
Manager MelNew employee, new team, or new to data; has no idea what’s going on
Nathan New
![Page 62: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/62.jpg)
Designing for data exploration, discovery, and trust
Company dataSearch Resource details& metadata User data Group data
![Page 63: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/63.jpg)
Company dataSearch User data Group dataResource details& metadata
![Page 64: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/64.jpg)
Search Resource details & metadata Company dataUser data Group data
Google-esque search filters
Resource details & metadata
Context, context, & context
![Page 65: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/65.jpg)
Search Resource details & metadata Company dataUser data Group data
Surface relationships, everything’s a link to promote exploration
Metadata & consumption
Description, external link, social
![Page 66: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/66.jpg)
Column details & value distributionsTable lineageEnrich metadata on the fly
Search Resource details & metadata Company dataUser data Group data
![Page 67: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/67.jpg)
Search Resource details & metadata Company dataUser data Group data
![Page 68: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/68.jpg)
User details & metadata
What they make, what they consume
Search Resource details & metadata Company dataUser data Group data
![Page 69: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/69.jpg)
Former employees also hold tribal knowledge
Search Resource details & metadata Company dataUser data Group data
![Page 70: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/70.jpg)
Group overview
Search Resource details & metadata Company dataUser data Group data
Thumbnails for maximum context
Basic organization functionality
Pinterest-like curation & suggested content
![Page 71: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/71.jpg)
We gather over 15,000 thumbnails from Tableau, Superset, and the Knowledge Repo
![Page 72: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/72.jpg)
Search Resource details & metadata Company dataUser data Group data
Pinning flow from resource page
Edit mode / draggable grid
![Page 73: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/73.jpg)
???? ??
Employees can feel disconnected from Company-level metrics
Search Resource details & metadata Company dataUser data Group data
![Page 74: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/74.jpg)
The technology stack
Application + dependencies
DOM Testing
eslint enzyme mocha
chai
Application state
Styling
khan/aphrodite
![Page 75: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/75.jpg)
The challenges
![Page 76: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/76.jpg)
Proxy nodes Abstracting complexity where necessary while accurately modeling the data ecosystem
Graph merging Non-trivial Git-like merging of graph updates
Data-dense design Balancing simplicity and functionality is hard; most internal design resources are not made for data-rich apps
Complex dependencies An umbrella data tool is vulnerable to changes in upstream resource dependencies
The challenges
![Page 77: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/77.jpg)
The future
![Page 78: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/78.jpg)
Game-ification Provide content producers with a sense of value
Alerts & recommendations Move from active exploration to deliver relevant updates and content suggestions
Certified content Use certification to build trust and enable users to filter through a sea of stale content
Network analysis Determine obsolete nodes, critical paths, lines of communication, etc.
The future
![Page 79: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/79.jpg)
The team
![Page 80: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/80.jpg)
The Dataportal teamAnalytics & Experimentation Products
John Bodley Software Engineer
Eli Brumbaugh Experience Designer
Jeff Feng Product Manager
Michelle Thomas Software Engineer
Chris Williams Data Visualization
![Page 81: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/81.jpg)
![Page 82: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/82.jpg)
Thank you
![Page 83: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/83.jpg)
Appendix
![Page 84: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/84.jpg)
Naturally bidirectional relationships
associated
Dealing with mutual relationships
![Page 85: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/85.jpg)
Naturally bidirectional relationships
associated
Modeling both creates an unnecessary relationship
associated
![Page 86: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/86.jpg)
Naturally bidirectional relationships
associated
Most efficient solution is to use a single relationship in the many-to-one direction
![Page 87: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/87.jpg)
CREATE TABLE nodes ( labels ARRAY<STRING>, id STRING, properties STRING )
![Page 88: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/88.jpg)
jane_doe
{ labels:[‘Org’,’User’], id:’jane_doe’ }
{ labels:[‘Hive’,’Table’], id:’dim_users’ }
{ labels:[‘Tableau’,’Chart’], id:’12345’ }
dim_users
12345
![Page 89: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/89.jpg)
CREATE TABLE relationships ( source STRUCT<labels:ARRAY<STRING>,id:STRING>, target STRUCT<labels:ARRAY<STRING>,id:STRING>, type STRING, properties STRING )
![Page 90: Democratizing Data at Airbnb](https://reader034.fdocuments.us/reader034/viewer/2022050614/5a65d0257f8b9aaf638b4a5b/html5/thumbnails/90.jpg)
Efficient data retrieval
Solution Create an index for every label keyed by the ID and UUID properties which in addition to index hints provides optimal node retrieval
Problem Indexes provide for efficient data retrieval similar to a RDBMS primary key, however they are only defined for a single label as opposed to our tuple of hierarchical labels
Restrictions and workarounds with Neo4j indexes