Presto Summit NYC 2019 - Starburst Data€¦ · Slack’s internal analytics portal - Product...
Transcript of Presto Summit NYC 2019 - Starburst Data€¦ · Slack’s internal analytics portal - Product...
Presto Summit NYC 2019December 11, 2019Slack handles: @cheolsoo; @abhonsuleslack-corp.com
Mission
Make people’s working lives simpler, more pleasant and more productive.
Slack
215B +270M 700B 250B
Logs Daily Messages Daily Records Messages Table
Data Engineering at SlackCustodian of all data generated within Slack, the product. We provide the infrastructure and tooling necessary for
stakeholders to reliably access product data for user facing features, product and business insights.
Databooks
AB Testing framework
BI portal
Presto
Airflow
Analytics.ts
Sqooper
Slack’s AB testing/ Experiments framework
Tool used by Analysts, Data scientists, Marketing, Sales, Finance
BI tool used by Corp/ Biztech
Batch ingestion system
Slack’s internal analytics portal -
Product Managers, Engineers, Analysts,
Data scientists, Sales, Marketing, Finance
DAGs running on ETL scheduling system
Presto at Slack
clog queriesQuery client logs
Presto at Slack
Past Present Future
Presto on EMRSingle cluster
Starburst on EC2Multiple clusters Federated clusters
Query success rate
Query count
Multiple clusters
● Static load balancing
● Per cluster config properties
● Per cluster capacity planning
Shadow clusters
● Read-only shadow cluster in parallel
● Useful for testing config changes or version upgrades
Terraform module
● Provision a cluster with 25-lines of code
● ASG optionally with spot
● Dedicated HMS per cluster
Resource groups ● Per cluster resource
groups config● Per group
scheduling policies config
● Fair (ad-hoc) vs weighted_fair (etl)
● Per cluster resource groups
● Per group scheduling policies
● Fair (ad-hoc) vs weighted_fair (etl)
JMX exporter -javaagent:/usr/local/jmx_exporter/jmx_exporter.jar=
7071:/usr/local/jmx_exporter/exporter.yml
JVM
self.consul_job(
'presto',
datacenters=[env + '-us-east-1-dw1'],
services=['presto']
)
Prometheus
Grafana dashboard
Autoscaling curl -XPUT localhost:8889/v1/info/state -d "SHUTTING_DOWN" -H "Content-type: application/json"
Graceful decommission
"auto_scaling_group": {
"prepare_for_termination_cmd": "<cmd>"
}
Chef role
Federated clusters
● Dynamic load balancing
● High availability● Minimize the
impact of rogue queries
Q&A
Slack handles: @cheolsoo; @abhonsule
slack-corp.com