Gimel is a data abstraction framework built on Apache Spark - providing unified Data Access via API & SQL to different technologies such as kafka, elastic, HBASE, Rest API, File, Object stores, Relational , etc.
We spoke about this recently in the "cloud track" in the "Scale By The Bay" Conference.
https://www.scale.bythebay.io/schedule
https://sched.co/e55D
Youtube - https://www.youtube.com/watch?v=cy8g2WZbEBI&ab_channel=FunctionalTV
https://youtu.be/m6_0iI4XDpU
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Scale By The Bay | 2020 | Gimel
1. Conquering All Stores with Gimel
Vladimir Bacvanski
Anisha Nainani
Deepak Chandramouli
2. About us
Vladimir Bacvanski
vbacvanski@paypal.com
Twitter: @OnSoftware
• Principal Architect, Strategic Architecture at PayPal
• In previous life: CTO of a development and
consulting firm
• PhD in Computer Science from RWTH Aachen,
Germany
• O’Reilly author: Courses on Big Data, Kafka
Deepak Chandramouli
dmohanakumarchan@paypal.com
LinkedIn: @deepakmc
• MT2 Software Engineer, Data Platform Services at
PayPal
• Data Enthusiast
• Tech lead
• Gimel (Big Data Framework for Apache Spark)
• Unified Data Catalog – PayPal’s Enterprise Data
Catalog
Anisha Nainani
annainani@paypal.com
LinkedIn: @anishanainani
• Senior Software Engineer
• Big Data
• Data Platform Services
6. PayPal | Data Growth
6
160+ PB Data200,000+
YARN jobs/day
One of the largest
Aerospike,
Teradata,
Hortonworks
and Oracle
installations
Compute
supported:
Spark, Hive,
MR, BigQuery
20+ On-Premise
clusters
GPU co-located with
Hadoop
Cloud Migration
Adjacencies
7. 7
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Infrastructure services leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
Logging
Monitoring
Alerting
Security
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
PayPal | Data Landscape
9. 9
Challenges | Data Access Code | Cumbersome & Fragile
Spark Read From Hbase Spark Read From Elastic Search
Spark Read From AeroSpike Spark Read From Druid
Illustration Purpose
Not Meant to Read
Spark Read From Hbase
12. 12
Gimel Simplifies Data Application Lifecycle
Data Application Lifecycle - With Data API
Learn Code Optimize Build Deploy RunOnboarding Big Data Apps
Compute Version Upgraded
Storage API Changed
Storage Connector Upgraded
Storage Hosts Migrated
Storage Changed
*********************
Run
Run
Run
Run
Run
Run
13. 13
Challenges | Instrumentation Required at multiple touchpoints
Catalog /
Classification
Platform Centric
Interceptors
id name address
1 XXXX XXXX
2 XXXX XXXX
Visibility
Security
Data User / App
Data Stores
14. 14
Challenges | Audit & Monitoring | Multifaceted
DBQLogs
Audit Table
Cloud Audit Logs
***
Lack of Unified View of Data
Processed on Spark
PubSub
User
16. 16
Putting it all together…
id First_nam
e
Last_nam
e
addres
s
1 XXXX XXXX XXXX
2 XXXX XXXX XXXX
3 XXXX XXXX XXXX
Data User
Data App
Data Stores
Catalog /
Classification
Alert
Platform Centric
InterceptorsSecurity
Data / SQL API
App App App
App
…….
17. 17
Query Routing – Design
17
Spark / Gimel
ApplicationDeveloper Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Logging
Monitoring
cation
cycle
gement
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Notebooks
Developer/Analyst/Data
Scientist
User / App needs transaction data
• NRT (Streaming)
• 7 days (Analytics Cache)
• 2 Years (cold storage)
1. Submits query to
GSQL Kernel
2. Submits
query to GTS Where txn_dt = last_7_days
Fast Access Via Cache
APP
• Gimel looks at logical dataset
in UDC
• Interpret filter criteria and
route query to appropriate
storage
26. HiveServer2
service that allows a remote client to submit requests to Hive using a variety of
programming languages (C++, Java, Python) and retrieve results BLOG
Built on Apache Thrift Concepts
Spark Thrift Server
Similar to HiveServer2, executes in spark Engine as compared to Hive (MR
/TEZ)
What is GTS?
• Gimel Thrift Server
Spark Thrift Server
+ Gimel
+ PayPal’s - Unified Data Catalog
+ Security & other PP specific features
27. Depending upon the cluster
capacity and traffic user has to
wait for the session
27
Why GTS?
27
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Logging
Monitoring
Alerting
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Developer Dat
Gimel SDK N
Infrastructure se
Multi-DC
Application
Lifecycle
Management
Gimel SDK Notebooks
Infrastructure servic es leveraged for e
Multi-DC Predictive resource a
Application
Lifecycle
Management
Compute
Frameworkand
APIs
R Studi
Developer Data scientist Analyst
Gimel SDK Notebooks
UDC
Infrastructure servic es leveraged for elasticity
Multi-DC Predictive resource allocatio
Application
Lifecycle
Management
Compute
Frameworkand
APIs
R Studio BI
Developer Data scientist Analyst
Gimel SDK Notebooks
UDC Data
Infrastructure servic es leveraged for elasticity and redu
Multi-DC PubPredictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
User
R Studio BI tools
Developer Data scientist Analyst
Gimel SDK Notebooks
UDC D
Infrastructure servic es leveraged for elasticity and r
Multi-DC Predictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
R Studio BI tools
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Infrastructure servic es leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Infrastructure servic es leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Gimel SDK Notebooks
UDC Data API
Infrastructure servic es leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
M
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experienc
andAcces
R Studio BI tools
Needs to read data from Hive
through SQL
PayPal Notebooks
Developer/Analyst/Data
Scientist
2. Starts Spark
Session on
cluster
3. Spark session Started
1. Get a Spark
Session
4. Submits the query
Select * from pymtdba.wtransaction_p2
5. Reads from Store
CLI Host
APP
28. 28
How does GTS Work?
28
Gimel Thrift
Server
Developer Dat
Gimel SDK N
Infrastructure se
Multi-DC
Application
Lifecycle
Management
Gimel SDK Notebooks
Infrastructure servic es leveraged for e
Multi-DC Predictive resource a
Application
Lifecycle
Management
Compute
Frameworkand
APIs
R Studi
Developer Data scientist Analyst
Gimel SDK Notebooks
UDC
Infrastructure servic es leveraged for elasticity
Multi-DC Predictive resource allocatio
Application
Lifecycle
Management
Compute
Frameworkand
APIs
R Studio BI
Developer Data scientist Analyst
Gimel SDK Notebooks
UDC Data
Infrastructure servic es leveraged for elasticity and redu
Multi-DC PubPredictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
User
R Studio BI tools
Developer Data scientist Analyst
Gimel SDK Notebooks
UDC D
Infrastructure servic es leveraged for elasticity and r
Multi-DC Predictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
R Studio BI tools
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Infrastructure servic es leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Infrastructure servic es leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Gimel SDK Notebooks
UDC Data API
Infrastructure servic es leveraged for elasticity and redundancy
Multi-DC Public cloudPredictive resource allocation
M
Application
Lifecycle
Management
Compute
Frameworkand
APIs
GimelData
Platform
User
Experienc
andAcces
R Studio BI tools
Developer Data scientist Analyst Operator
Gimel SDK Notebooks
UDC Data API
Logging
Monitoring
cation
cycle
gement
Compute
Frameworkand
APIs
GimelData
Platform
User
Experience
andAccess
R Studio BI tools
Paypal Notebooks
Developer/Analyst/Data
Scientist
Needs to read data from Hive
Select * from
pymtdba.wtransaction_p2
1. Submits query to
GSQL Kernal
2. Submits
query to GTS 3. Read from Store
APP
Connect via Java
JDBC / Python
34. HiveServer2
service that allows a remote client to submit requests
to Hive using a variety of programming languages
(C++, Java, Python) and retrieve results BLOG
Built on Apache Thrift Concepts
Spark Thrift Server
Similar to HiveServer2, executes in spark Engine as
compared to Hive (MR /TEZ)
Gimel Thrift Server
Spark Thrift Server + Gimel + Security & other PP
specific features
Hive, Spark, Gimel Thrift Server
35. GTS Key Features
Out-of-box Auditing:
Logging, Monitoring,
Dashboards
Alerting
(beta/internal)
Security
Apache Ranger
Teradata Proxy User
Part of Ecosystem
Notebooks – GSQL
UDC –Datasets
SCAAS – DML/DDL
Low Latency
User Experience
SQL to Any Store
Stores supported by
Gimel
Highly available
architecture
Software & Hardware
Query via REST
(work in progress)
REST
Query Guard
Kills run away
queries
Notas del editor
Hive thrift server accepts SQL queries and responds with results but it is limited to only HIVE database
Also from security standpoint, it does impersonation (Runs as the logged in user)
From the query engine perspective, it is not spark engine and hence it runs MR jobs which when compared to Spark performance, very slow.
Hive thrift server accepts SQL queries and responds with results but it is limited to only HIVE database
Also from security standpoint, it does impersonation (Runs as the logged in user)
From the query engine perspective, it is not spark engine and hence it runs MR jobs which when compared to Spark performance, very slow.