SlideShare a Scribd company logo
Wednesday, September 18th 2019
Tamika Tannis | Software Engineer, Lyft
go.lyft.com/datadiscoveryslides
Disrupting Data Discovery
Agenda
• Data Ecosystem at Lyft
• Challenges with Data Discovery
• Data Discovery at Lyft
• Amundsen’s Architecture
• What’s Next?
2
Data Ecosystem at Lyft
3
4
Core Data Infrastructure (High Level)
Custom
Applications
Architecture Applications
Mobile App
Services
Services
Data Streaming
Frameworks
(Kafka / Kinesis)
Flink
Challenges with Data
Discovery
5
Data is used to make informed decisions
6
Analysts Data Scientists General
Managers
Engineers ExperimentersProduct
Managers
Data-driven decision making process:
1. Search & find data
2. Understand the data
3. Perform an analysis/visualisation
4. Share insights and/or make a decision
Make data the heart of every decision
• Goal: What new data-driven policies can we enact to reduce driver
insurance fraud?
• Idea: Let’s take a deeper look into insurance claims from drivers who
have given less than 𝑥 rides.
• Next Step: I’ll first get all drivers who have given less than 𝑥 rides...but
where do I look?
Hi! I’m a new Analyst in the Fraud Department !
7
• Ask a friend/manager/coworker
• Ask in a wider Slack channel
• Search in the Github repos
Step 1: Search & find data
8
We end up finding tables: driver_rides
& rides_driver_total
• What is the difference: driver_rides vs. rides_driver_total
• What do the different fields mean?
‒ Is driver_rides.completed different from
rides_driver_total.lifetime_completed?
‒ What period of time does the data in each table cover?
• Dig deeper: explore using SQL queries
Step 2: Understand the data
9
SELECT * FROM schema.driver_rides
WHERE ds=’2019-05-15’
LIMIT 100;
SELECT * FROM schema.rides_driver_total
WHERE ds=’2019-05-15’
LIMIT 100;
Data Scientists spend upto 1/3rd time in Data Discovery
10
Data Discovery
• Data discovery is a problem
because of the lack of understanding
of what data exists, where, who
owns it, & how to use it.
• It is not what our data scientist
should focus on: they should focus
on Analysis work
Data-based decision making process:
1. Search & find data
2. Understand the data
3. Perform an analysis/visualisation
4. Share insights and/or take a decision
Audience for data
discovery
11
User Personas - (1/2)
12
Analysts Data Scientists General
Managers
ExperimentersEngineersProduct
Managers
• Frequent use of data
• Deep to very deep analysis
• Exposure to new datasets
• Creating insights & developing
models
User Personas - (2/2)
13
Power User
- Has been at Lyft for a long
time
- Knows the data environment
well: where to find data, what
it means, how to use it
Pain points:
- Needs to spend a fair amount
of their time sharing their
knowledge with the new user
- Could become “New user” if
they switch teams
New User
- Recently joined Lyft or
switched to a new team
- Needs to ramp up on a lot of
things, wants to start having
impact soon
Pain points:
- Doesn’t know where to start.
Spends their time asking
questions and cmd+F on
github
- Makes mistakes by mis-using
some datasets
3 complementary ways to do Data Discovery
14
Search based
I am looking for a table with data on “cancel rates”
- Where is the table?
- What does it contain?
- Has the analysis I want to perform already been done?
Lineage based
If this event is down, what datasets are going to be impacted?
- Upstream/downstream lineage
- Incidents, SLA misses, Data quality
Network based
I want to check what tables my manager uses
- Ownership information
- Bookmarking
- Usage through query logs
Data Discovery at Lyft
15
Product named after Roald Amundsen
● First expedition to reach the South Pole
● First to explore both North & South Poles
Landing Page - Optimized for search
Search Results - Ranked on relevance & popularity
Relevance - search for “apple” on Google
18
Low relevance High relevance
Popularity - search for “apple” on Google
19
Low popularity High popularity
Search Results - Striking the balance
20
Relevance Popularity
● Names, Descriptions, Tags, [owners, frequent
users]
● Different weights for different metadata, e.g.
resource name
● Querying activity
● Dashboarding
● Lower weight for automated querying
● Higher weight for adhoc querying
View Resource Metadata
Data Preview
22
View Resource Metadata
Computed Column Metadata Statistics
Disclaimer: these stats are arbitrary.
View Resource Metadata
In-Application User Feedback
Amundsen’s
Architecture
27
28
Postgres Hive Redshift ... Presto
Github
Source
File
Databuilder Crawler
Neo4j
Elastic
Search
Metadata Service Search Service
Frontend ServiceML
Feature
Service
Security
Service
Other Microservices
Metadata Sources
1. Metadata Service
29
30
Postgres Hive Redshift ... Presto
Github
Source
File
Databuilder Crawler
Neo4j
Elastic
Search
Metadata Service Search Service
Frontend ServiceML
Feature
Service
Security
Service
Other Microservices
Metadata Sources
View Resource Metadata
Why choose a graph
database?
32
33
Why Graph database? (1/2)
34
Why Graph database? (2/2)
35
2. Metadata Service
• A thin proxy layer to interact with graph database
‒ Currently Neo4j is the default option for graph backend engine
‒ Work with the community to support Apache Atlas
• Support Rest API for other services pushing / pulling metadata directly
Neo4j is the source of truth for
editable metadata
36
Why not propagate the editabled metadata back to source
37
Why not propagate the editabled metadata back to source
38
Why not propagate the editabled metadata back to source
39
Why not propagate the editabled metadata back to source
40
2. Databuilder
41
42
Postgres Hive Redshift ... Presto
Github
Source
File
Databuilder Crawler
Neo4j
Elastic
Search
Metadata Service Search Service
Frontend ServiceML
Feature
Service
Other
Services
Other Microservices
Metadata Sources
43
Metadata Sources @ Lyft
Metadata - Challenges
• No Standardization: No single data model that fits for all data
resources
‒ A data resource could be a table, an Airflow DAG or a dashboard
• Different Extraction: Each data set metadata is stored and fetched
differently
‒ Hive Table: Stored in Hive metastore
‒ RDBMS(postgres etc): Fetched through DBAPI interface
‒ Github source code: Fetched through git hook
‒ Mode dashboard: Fetched through Mode API
‒ …
44
Databuilder
45
Databuilder in action
46
How is the databuilder orchestrated?
47
Amundsen uses Apache Airflow to orchestrate Databuilder jobs
3. Search Service
48
49
Postgres Hive Redshift ... Presto
Github
Source
File
Databuilder Crawler
Neo4j
Elastic
Search
Metadata Service Search Service
Frontend ServiceML
Feature
Service
Security
Service
Other Microservices
Metadata Sources
3. Search Service
• A thin proxy layer to interact with the search backend
‒ Currently it supports Elasticsearch as the search backend.
• Support different search patterns
‒ Normal Search: match records based on relevancy
‒ Category Search: match records first based on data type, then
relevancy
‒ Wildcard Search
50
How to make the search result more relevant?
51
• Experiment with different weights, e.g boost the exact table ranking
• Collect metrics
‒ Instrumentation for search behavior
‒ Measure click-through-rate (CTR) over top 5 results
• Advanced search:
‒ Support wildcard search (e.g. event_*)
‒ Support category search (e.g. column: is_line_ride)
‒ Future: Filtering, Autosuggest
4. Frontend Service
52
53
Postgres Hive Redshift ... Presto
Github
Source
File
Databuilder Crawler
Neo4j
Elastic
Search
Metadata Service Search Service
Frontend ServiceML
Feature
Service
Security
Service
Other Microservices
Metadata Sources
Web Application
Web Technologies
55
Develop Build Test
What’s Next?
56
Amundsen’s Impact
• Tremendous success at Lyft
‒ Used by Data Scientists, Engineers, PMs, Ops, even Cust. Service!
‒ 90% penetration among Data Scientists
‒ +30% productivity for the Data science org.
57
Amundsen is Open Source!
• github.com/lyft/amundsen
• Growing and active community
‒ c.150 github stars, 10+ companies contributing back
‒ Slack w/ 30+ companies and c.100 people
‒ Presented at conferences in San Francisco, Barcelona, Vilnius, Moscow by Lyft
employees and community
‒ Featured in blog posts and interviews
• Net positive impact for Lyft through external community contributing
‒ Integration with open source backend
‒ Integration with new data sources (BigQuery, Redshift, Postgres), lifting them from
our roadmap 58
Community Overview
59
ContributorsActivecommunity
Roadmap
PeopleDashboards
Data sets
Phase 1
(Complete)
Phase 2
(In Progress)
Phase 3
(In Scoping)
Streams Schemas Workflows
More
Metadata
Deeper integration with other
tools (e.g. Mode)
Privacy Governance
Amundsen People
61
Amundsen People
62
Roadmap
PeopleDashboards
Data sets
Phase 1
(Complete)
Phase 2
(In Progress)
Phase 3
(In Scoping)
Streams Schemas Workflows
More
Metadata
Deeper integration with other
tools (e.g. Mode)
Privacy Governance
Roadmap
64
Roadmap
65
Tamika Tannis | @ttannis | /in/tamika-tannis
Project Code @ github.com/lyft/amundsen
Blog Post @ go.lyft.com/datadiscoveryblog
Icons under Creative Commons License from https://thenounproject.com/
66

More Related Content

PDF
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
PDF
GPT and Graph Data Science to power your Knowledge Graph
PDF
PostgreSQL Advanced Queries
PDF
Data Lake,beyond the Data Warehouse
PPTX
Utilizing the OpenNTF Domino API
PPTX
RDF 개념 및 구문 소개
PPTX
Intro to Neo4j - Nicole White
PDF
Data Modeling with NGSI, NGSI-LD
Graphs in Retail: Know Your Customers and Make Your Recommendations Engine Learn
GPT and Graph Data Science to power your Knowledge Graph
PostgreSQL Advanced Queries
Data Lake,beyond the Data Warehouse
Utilizing the OpenNTF Domino API
RDF 개념 및 구문 소개
Intro to Neo4j - Nicole White
Data Modeling with NGSI, NGSI-LD

What's hot (20)

PPTX
Pubcon 2023 - A deep dive into the latest Google updates, from Lily Ray
PPTX
An Intro to Elasticsearch and Kibana
PDF
RESTFul API Design and Documentation - an Introduction
PDF
Snowflake free trial_lab_guide
PDF
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
PDF
Apache HBase - Just the Basics
PDF
How to launch 'new concept' products & services in new markets | Dave Cousin ...
PDF
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
PPTX
Metric insights Overview
PDF
Workshop Español - Introducción a Neo4j
PPTX
AEM & eCommerce integration
PPTX
Opinion-based Article Ranking for Information Retrieval Systems: Factoids and...
PDF
Using an employee knowledge graph for employee engagement and career mobility
PPTX
Solving the Keyword Mystery: Clue In on How Customers Search for Your Business
PPTX
BrightonSEO March 2021 | Dan Taylor, Image Entity Tags
PDF
Metodología de Trabajo SEO en Agencias
PDF
Talend ETL Tutorial | Talend Tutorial For Beginners | Talend Online Training ...
PDF
MongoDB
PDF
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
PDF
Pipelines and Packages: Introduction to Azure Data Factory (DATA:Scotland 2019)
Pubcon 2023 - A deep dive into the latest Google updates, from Lily Ray
An Intro to Elasticsearch and Kibana
RESTFul API Design and Documentation - an Introduction
Snowflake free trial_lab_guide
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Apache HBase - Just the Basics
How to launch 'new concept' products & services in new markets | Dave Cousin ...
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
Metric insights Overview
Workshop Español - Introducción a Neo4j
AEM & eCommerce integration
Opinion-based Article Ranking for Information Retrieval Systems: Factoids and...
Using an employee knowledge graph for employee engagement and career mobility
Solving the Keyword Mystery: Clue In on How Customers Search for Your Business
BrightonSEO March 2021 | Dan Taylor, Image Entity Tags
Metodología de Trabajo SEO en Agencias
Talend ETL Tutorial | Talend Tutorial For Beginners | Talend Online Training ...
MongoDB
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
Pipelines and Packages: Introduction to Azure Data Factory (DATA:Scotland 2019)
Ad

Similar to How Lyft Drives Data Discovery (20)

PDF
Neo4j GraphTour Santa Monica 2019 - Amundsen Presentation
PDF
Meetup SF - Amundsen
PPTX
How Lyft Drives Data Discovery
PPTX
Strata sf - Amundsen presentation
PDF
Disrupting Data Discovery
PPTX
Data council sf amundsen presentation
PDF
Solving Data Discovery Challenges at Lyft with Amundsen, an Open-source Metad...
PDF
Data Discovery and Metadata
PDF
Democratizing Data within your organization - Data Discovery
PDF
From discovering to trusting data
PDF
Amundsen: From discovering to security data
PPTX
[Strata NYC 2019] Turning big data into knowledge: Managing metadata and data...
PDF
Lyft data Platform - 2019 slides
PDF
The Lyft data platform: Now and in the future
PDF
Data Discovery & Trust through Metadata
PDF
Democratizing Data at Airbnb
PDF
iot_module4.pdf
PDF
Data Analytics Data Analytics Data Ana
PDF
The Emerging Data Lake IT Strategy
PDF
Data Discovery at Databricks with Amundsen
Neo4j GraphTour Santa Monica 2019 - Amundsen Presentation
Meetup SF - Amundsen
How Lyft Drives Data Discovery
Strata sf - Amundsen presentation
Disrupting Data Discovery
Data council sf amundsen presentation
Solving Data Discovery Challenges at Lyft with Amundsen, an Open-source Metad...
Data Discovery and Metadata
Democratizing Data within your organization - Data Discovery
From discovering to trusting data
Amundsen: From discovering to security data
[Strata NYC 2019] Turning big data into knowledge: Managing metadata and data...
Lyft data Platform - 2019 slides
The Lyft data platform: Now and in the future
Data Discovery & Trust through Metadata
Democratizing Data at Airbnb
iot_module4.pdf
Data Analytics Data Analytics Data Ana
The Emerging Data Lake IT Strategy
Data Discovery at Databricks with Amundsen
Ad

More from Neo4j (20)

PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
PDF
Jin Foo - Prospa GraphSummit Sydney Presentation.pdf
PDF
GraphSummit Singapore Master Deck - May 20, 2025
PPTX
Graphs & GraphRAG - Essential Ingredients for GenAI
PPTX
Neo4j Knowledge for Customer Experience.pptx
PPTX
GraphTalk New Zealand - The Art of The Possible.pptx
PDF
Neo4j: The Art of the Possible with Graph
PDF
Smarter Knowledge Graphs For Public Sector
PDF
GraphRAG and Knowledge Graphs Exploring AI's Future
PDF
Matinée GenAI & GraphRAG Paris - Décembre 24
PDF
ANZ Presentation: GraphSummit Melbourne 2024
PDF
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
PDF
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
PDF
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
PDF
Démonstration Digital Twin Building Wire Management
PDF
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
PDF
Démonstration Supply Chain - GraphTalk Paris
PDF
The Art of Possible - GraphTalk Paris Opening Session
PPTX
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
PDF
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Jin Foo - Prospa GraphSummit Sydney Presentation.pdf
GraphSummit Singapore Master Deck - May 20, 2025
Graphs & GraphRAG - Essential Ingredients for GenAI
Neo4j Knowledge for Customer Experience.pptx
GraphTalk New Zealand - The Art of The Possible.pptx
Neo4j: The Art of the Possible with Graph
Smarter Knowledge Graphs For Public Sector
GraphRAG and Knowledge Graphs Exploring AI's Future
Matinée GenAI & GraphRAG Paris - Décembre 24
ANZ Presentation: GraphSummit Melbourne 2024
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Démonstration Digital Twin Building Wire Management
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Démonstration Supply Chain - GraphTalk Paris
The Art of Possible - GraphTalk Paris Opening Session
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...

Recently uploaded (20)

PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Mushroom cultivation and it's methods.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
Tartificialntelligence_presentation.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
A Presentation on Touch Screen Technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
project resource management chapter-09.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
A comparative analysis of optical character recognition models for extracting...
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Mushroom cultivation and it's methods.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
DP Operators-handbook-extract for the Mautical Institute
Tartificialntelligence_presentation.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
A novel scalable deep ensemble learning framework for big data classification...
Zenith AI: Advanced Artificial Intelligence
A comparative study of natural language inference in Swahili using monolingua...
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
A Presentation on Touch Screen Technology
Programs and apps: productivity, graphics, security and other tools
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
project resource management chapter-09.pdf
Web App vs Mobile App What Should You Build First.pdf

How Lyft Drives Data Discovery

  • 1. Wednesday, September 18th 2019 Tamika Tannis | Software Engineer, Lyft go.lyft.com/datadiscoveryslides Disrupting Data Discovery
  • 2. Agenda • Data Ecosystem at Lyft • Challenges with Data Discovery • Data Discovery at Lyft • Amundsen’s Architecture • What’s Next? 2
  • 4. 4 Core Data Infrastructure (High Level) Custom Applications Architecture Applications Mobile App Services Services Data Streaming Frameworks (Kafka / Kinesis) Flink
  • 6. Data is used to make informed decisions 6 Analysts Data Scientists General Managers Engineers ExperimentersProduct Managers Data-driven decision making process: 1. Search & find data 2. Understand the data 3. Perform an analysis/visualisation 4. Share insights and/or make a decision Make data the heart of every decision
  • 7. • Goal: What new data-driven policies can we enact to reduce driver insurance fraud? • Idea: Let’s take a deeper look into insurance claims from drivers who have given less than 𝑥 rides. • Next Step: I’ll first get all drivers who have given less than 𝑥 rides...but where do I look? Hi! I’m a new Analyst in the Fraud Department ! 7
  • 8. • Ask a friend/manager/coworker • Ask in a wider Slack channel • Search in the Github repos Step 1: Search & find data 8 We end up finding tables: driver_rides & rides_driver_total
  • 9. • What is the difference: driver_rides vs. rides_driver_total • What do the different fields mean? ‒ Is driver_rides.completed different from rides_driver_total.lifetime_completed? ‒ What period of time does the data in each table cover? • Dig deeper: explore using SQL queries Step 2: Understand the data 9 SELECT * FROM schema.driver_rides WHERE ds=’2019-05-15’ LIMIT 100; SELECT * FROM schema.rides_driver_total WHERE ds=’2019-05-15’ LIMIT 100;
  • 10. Data Scientists spend upto 1/3rd time in Data Discovery 10 Data Discovery • Data discovery is a problem because of the lack of understanding of what data exists, where, who owns it, & how to use it. • It is not what our data scientist should focus on: they should focus on Analysis work Data-based decision making process: 1. Search & find data 2. Understand the data 3. Perform an analysis/visualisation 4. Share insights and/or take a decision
  • 12. User Personas - (1/2) 12 Analysts Data Scientists General Managers ExperimentersEngineersProduct Managers • Frequent use of data • Deep to very deep analysis • Exposure to new datasets • Creating insights & developing models
  • 13. User Personas - (2/2) 13 Power User - Has been at Lyft for a long time - Knows the data environment well: where to find data, what it means, how to use it Pain points: - Needs to spend a fair amount of their time sharing their knowledge with the new user - Could become “New user” if they switch teams New User - Recently joined Lyft or switched to a new team - Needs to ramp up on a lot of things, wants to start having impact soon Pain points: - Doesn’t know where to start. Spends their time asking questions and cmd+F on github - Makes mistakes by mis-using some datasets
  • 14. 3 complementary ways to do Data Discovery 14 Search based I am looking for a table with data on “cancel rates” - Where is the table? - What does it contain? - Has the analysis I want to perform already been done? Lineage based If this event is down, what datasets are going to be impacted? - Upstream/downstream lineage - Incidents, SLA misses, Data quality Network based I want to check what tables my manager uses - Ownership information - Bookmarking - Usage through query logs
  • 15. Data Discovery at Lyft 15 Product named after Roald Amundsen ● First expedition to reach the South Pole ● First to explore both North & South Poles
  • 16. Landing Page - Optimized for search
  • 17. Search Results - Ranked on relevance & popularity
  • 18. Relevance - search for “apple” on Google 18 Low relevance High relevance
  • 19. Popularity - search for “apple” on Google 19 Low popularity High popularity
  • 20. Search Results - Striking the balance 20 Relevance Popularity ● Names, Descriptions, Tags, [owners, frequent users] ● Different weights for different metadata, e.g. resource name ● Querying activity ● Dashboarding ● Lower weight for automated querying ● Higher weight for adhoc querying
  • 24. Computed Column Metadata Statistics Disclaimer: these stats are arbitrary.
  • 28. 28 Postgres Hive Redshift ... Presto Github Source File Databuilder Crawler Neo4j Elastic Search Metadata Service Search Service Frontend ServiceML Feature Service Security Service Other Microservices Metadata Sources
  • 30. 30 Postgres Hive Redshift ... Presto Github Source File Databuilder Crawler Neo4j Elastic Search Metadata Service Search Service Frontend ServiceML Feature Service Security Service Other Microservices Metadata Sources
  • 32. Why choose a graph database? 32
  • 35. 35 2. Metadata Service • A thin proxy layer to interact with graph database ‒ Currently Neo4j is the default option for graph backend engine ‒ Work with the community to support Apache Atlas • Support Rest API for other services pushing / pulling metadata directly
  • 36. Neo4j is the source of truth for editable metadata 36
  • 37. Why not propagate the editabled metadata back to source 37
  • 38. Why not propagate the editabled metadata back to source 38
  • 39. Why not propagate the editabled metadata back to source 39
  • 40. Why not propagate the editabled metadata back to source 40
  • 42. 42 Postgres Hive Redshift ... Presto Github Source File Databuilder Crawler Neo4j Elastic Search Metadata Service Search Service Frontend ServiceML Feature Service Other Services Other Microservices Metadata Sources
  • 44. Metadata - Challenges • No Standardization: No single data model that fits for all data resources ‒ A data resource could be a table, an Airflow DAG or a dashboard • Different Extraction: Each data set metadata is stored and fetched differently ‒ Hive Table: Stored in Hive metastore ‒ RDBMS(postgres etc): Fetched through DBAPI interface ‒ Github source code: Fetched through git hook ‒ Mode dashboard: Fetched through Mode API ‒ … 44
  • 47. How is the databuilder orchestrated? 47 Amundsen uses Apache Airflow to orchestrate Databuilder jobs
  • 49. 49 Postgres Hive Redshift ... Presto Github Source File Databuilder Crawler Neo4j Elastic Search Metadata Service Search Service Frontend ServiceML Feature Service Security Service Other Microservices Metadata Sources
  • 50. 3. Search Service • A thin proxy layer to interact with the search backend ‒ Currently it supports Elasticsearch as the search backend. • Support different search patterns ‒ Normal Search: match records based on relevancy ‒ Category Search: match records first based on data type, then relevancy ‒ Wildcard Search 50
  • 51. How to make the search result more relevant? 51 • Experiment with different weights, e.g boost the exact table ranking • Collect metrics ‒ Instrumentation for search behavior ‒ Measure click-through-rate (CTR) over top 5 results • Advanced search: ‒ Support wildcard search (e.g. event_*) ‒ Support category search (e.g. column: is_line_ride) ‒ Future: Filtering, Autosuggest
  • 53. 53 Postgres Hive Redshift ... Presto Github Source File Databuilder Crawler Neo4j Elastic Search Metadata Service Search Service Frontend ServiceML Feature Service Security Service Other Microservices Metadata Sources
  • 57. Amundsen’s Impact • Tremendous success at Lyft ‒ Used by Data Scientists, Engineers, PMs, Ops, even Cust. Service! ‒ 90% penetration among Data Scientists ‒ +30% productivity for the Data science org. 57
  • 58. Amundsen is Open Source! • github.com/lyft/amundsen • Growing and active community ‒ c.150 github stars, 10+ companies contributing back ‒ Slack w/ 30+ companies and c.100 people ‒ Presented at conferences in San Francisco, Barcelona, Vilnius, Moscow by Lyft employees and community ‒ Featured in blog posts and interviews • Net positive impact for Lyft through external community contributing ‒ Integration with open source backend ‒ Integration with new data sources (BigQuery, Redshift, Postgres), lifting them from our roadmap 58
  • 60. Roadmap PeopleDashboards Data sets Phase 1 (Complete) Phase 2 (In Progress) Phase 3 (In Scoping) Streams Schemas Workflows More Metadata Deeper integration with other tools (e.g. Mode) Privacy Governance
  • 63. Roadmap PeopleDashboards Data sets Phase 1 (Complete) Phase 2 (In Progress) Phase 3 (In Scoping) Streams Schemas Workflows More Metadata Deeper integration with other tools (e.g. Mode) Privacy Governance
  • 66. Tamika Tannis | @ttannis | /in/tamika-tannis Project Code @ github.com/lyft/amundsen Blog Post @ go.lyft.com/datadiscoveryblog Icons under Creative Commons License from https://thenounproject.com/ 66

Editor's Notes

  • #2: Name & Role working on an open-source data discovery tool at Lyft. It’s called “Amundsen” -- more on that name later. It leverages Neo4j, glad to share how we’ve been using Neo4j at Lyft to achieve goals of our product Amundsen.
  • #3: On the agenda for this talk
  • #5: The data infrastructure at Lyft can be visualized by this diagram Events are fires into streaming frameworks (Apache Kafka / Amazon Kinesis) Apache Flink injests that data into Amazon S3, first layer of storage, persistent storage Data stored in Amazon S3 is further transformed and stored in various other datastores Initially started with Redshift. Introduced new datastores with different strengths that better serve specific purposes, Hive for long running queries/ETLs Presto for quick analysis & as-needed queries Druid for faster interactive queries The takeaway from this slide: Lots of data (~10PB), lots of places it can be (thousands of tables), and lots of tools/people trying to use the data on a regular basis.
  • #6: Now onto challenges with data discovery
  • #7: Effective data discovery is important because data is at the heart of every decision we make. It is the only way to make informed, objective decisions. Applies to many roles Data-driven decision making process Search & find data Understand the data Perform an analysis Share insights or make a decision
  • #8: To highlight some data discover pain points that occur without the proper tools, let’s walk through a hypothetical example
  • #9: Your experience searching and finding data may involve doing all of the following 3 things.
  • #10: Your experience understanding the data doesn’t get any easier.
  • #11: ⅓ of time on data discovery Difficult to find what exists, understand whether or not it’s what you are looking for, or trust that it is the source of truth for that information We can significantly increase productivity and impact if we can reduce this time...
  • #12: Let’s start to think of what a helpful tool would look like. Complication: What audience to serve? Who are they and what do they need?
  • #13: What audience to serve?
  • #14: Second level of personas to consider.
  • #15: Lastly, what by what means do they want to perform discovery? There are 3 complementary ways to do Data Discovery Search based: most common and top priority Lineage based: callback to the data ecosystem, if there is a hiccup in that system, what does it impact? Datasets must be trustworthy Network based: helpful on the job to know what others are using for what purpose
  • #16: We’ve talked about some pain points of data discovery and why it’s important, let’s talk about our solution -- Amundsen.
  • #17: Disclaimer Representative data Amundsen circa March 2019 Our landing page is optimized for search Most common method of data discovery, presented with search bar & help text for some advanced search features We also want the landing page to be able to help users that don’t know what to search for. Created this concept of popular tables
  • #18: Users presented with ranked search results Not like page-rank but based on relevance and popularity
  • #19: This is what we mean when we say relevance
  • #20: This is what we mean when we say popularity
  • #21: Striking the balance between the two is an interesting challenge Relevance is based on metadata Popularity is not click through rate but through query access patterns.
  • #28: Now that I’ve demonstrated what Amundsen is and how it can be used, let’s talk about how it was built.
  • #29: Microservice architecture, services are divided by domains: ui/frontend, search, metadata Walk from top to bottom & highlight “pluggability”
  • #30: I’ll now dive deeper into each of the Amundsen services presented in the previous graph, starting with metadata service, which is backed by Neo4j.
  • #32: As you may remember from the application walkthrough, Amundsen surfaces resource metadata and that is what we are storing in Neo4j
  • #33: However graph databases are not common for many web applications, and so one might ask why choose a graph database.
  • #34: Well if you remember the diagram of the data ecosystem at Lyft from the beginning of the talk, that can be modeled as a graph. This is a very powerful feature because the alternative to created these kinds of relationships with a RDBMS is joins A NoSQL database isn’t set up for this
  • #35: Let’s take a note of some of the features from the table detail page again and see how this is represented in Neo4j Walk through features What’s very beneficial about this is that when we have a new use case and a new piece of metadata to represent, we just have to create the new node and relationship.
  • #36: It’s worth noting that one key architectural decision made for this service and others is that it is a proxy to interact with Neo4j Which means its can also interact with anything else that can store this data. This choice is key for us as an open source project
  • #37: Another key characteristic of our system is that neo4j is the source of truth for our editable metadata
  • #38: This was actually not our original intent, we ran into a roadblock when we were first implementing the description editing feature. We originally had a setup like this
  • #39: Then we realized we forgot to account for something. Tables can get rebuilt using the source code that generated the table and descriptions will be overwritten
  • #40: The we thought about whether or not we could do this, update them both!
  • #41: The answer was no. ...And that’s how Neo4j became the source of truth for editable metadata
  • #42: Now onto the data builder service
  • #43: It is the layer that ingests metadata from the sources. Which sources exactly?
  • #44: Many sources. Not just tables but dashboards, different kinds of resources This creates some complexity
  • #46: This is what databuilder helps to address, it is a data ingestion framework similar to Apache Gobblin It functions as an ETL engine Each part is modularized, and can be reused (e.g same transformer) or swapped out A publisher leverages a transaction to make the data ingestion atomic -- it is not the case that there is partially updated data
  • #47: Here is a more solid example
  • #48: How is this all orchestrated? With Airflow dags, these are jobs that run to execute each piece of the puzzle End with elastic search.
  • #49: Elasticsearch is what sit behind our search service...
  • #50: ... in the same way that Neo4j stands behind the metadata service. Similar data is loaded into both there are some minor differences, for example data that won’t be searchable like col stats
  • #51: Also similar to the metadata service the search service acts as proxy
  • #52: What I find most interesting about the search service is actually the biggest problem that we struggle with, “how to make the search results more relevant”.
  • #53: Lastly we have our Amundsen’s frontend service.
  • #56: Obligatory slide
  • #60: T