Maintaining Your Data Lake At Scale With Spark
June 16th, 2019
50 mins 50 secs
About this Episode
Building and maintaining a data lake is a choose your own adventure of tools, services, and evolving best practices. The flexibility and freedom that data lakes provide allows for generating significant value, but it can also lead to anti-patterns and inconsistent quality in your analytics. Delta Lake is an open source, opinionated framework built on top of Spark for interacting with and maintaining data lake platforms that incorporates the lessons learned at DataBricks from countless customer use cases. In this episode Michael Armbrust, the lead architect of Delta Lake, explains how the project is designed, how you can use it for building a maintainable data lake, and some useful patterns for progressively refining the data in your lake. This conversation was useful for getting a better idea of the challenges that exist in large scale data analytics, and the current state of the tradeoffs between data lakes and data warehouses in the cloud.
- Hello and welcome to the Data Engineering Podcast, the show about modern data management
- When you’re ready to build your next pipeline, or want to test out the projects you hear about on the show, you’ll need somewhere to deploy it, so check out our friends at Linode. With 200Gbit private networking, scalable shared block storage, and a 40Gbit public network, you’ve got everything you need to run a fast, reliable, and bullet-proof data platform. If you need global distribution, they’ve got that covered too with world-wide datacenters including new ones in Toronto and Mumbai. And for your machine learning workloads, they just announced dedicated CPU instances. Go to dataengineeringpodcast.com/linode today to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
- And to keep track of how your team is progressing on building new pipelines and tuning their workflows, you need a project management system designed by engineers, for engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Data Engineering Podcast listeners get 2 months free on any plan by going to dataengineeringpodcast.com/clubhouse today and signing up for a free trial. Support the show and get your data projects in order!
- You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to dataengineeringpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
- Go to dataengineeringpodcast.com to subscribe to the show, sign up for the mailing list, read the show notes, and get in touch.
- To help other people find the show please leave a review on iTunes and tell your friends and co-workers
- Join the community in the new Zulip chat workspace at dataengineeringpodcast.com/chat
- Your host is Tobias Macey and today I’m interviewing Michael Armbrust about Delta Lake, an open source storage layer that brings ACID transactions to Apache Spark and big data workloads.
- How did you get involved in the area of data management?
- Can you start by explaining what Delta Lake is and the motivation for creating it?
- What are some of the common antipatterns in data lake implementations and how does Delta Lake address them?
- What are the benefits of a data lake over a data warehouse?
- How has that equation changed in recent years with the availability of modern cloud data warehouses?
- What are the benefits of a data lake over a data warehouse?
- How is Delta lake implemented and how has the design evolved since you first began working on it?
- What assumptions did you have going into the project and how have they been challenged as it has gained users?
- One of the compelling features is the option for enforcing data quality constraints. Can you talk through how those are defined and tested?
- In your experience, how do you manage schema evolution when working with large volumes of data? (e.g. rewriting all of the old files, or just eliding the missing columns/populating default values, etc.)
- Can you talk through how Delta Lake manages transactionality and data ownership? (e.g. what if you have other services interacting with the data store)
- Are there limits in terms of the volume of data that can be managed within a single transaction?
- How does unifying the interface for Spark to interact with batch and streaming data sets simplify the workflow for an end user?
- The Lambda architecture was popular in the early days of Hadoop but seems to have fallen out of favor. How does this unified interface resolve the shortcomings and complexities of that approach?
- What have been the most difficult/complex/challenging aspects of building Delta Lake?
- How is the data versioning in Delta Lake implemented?
- By keeping a copy of all iterations of a data set there is the opportunity for a great deal of additional cost. What are some options for mitigating that impact, either in Delta Lake itself or as a separate mechanism or process?
- What are the reasons for standardizing on Parquet as the storage format?
- What are some of the cases where that has led to greater complications?
- In addition to the transactionality and data validation that Delta Lake provides, can you also explain how indexing is implemented and highlight the challenges of keeping them up to date?
- When is Delta Lake the wrong choice?
- What problems did you consciously decide not to address?
- What is in store for the future of Delta Lake?
- @michaelarmbrust on Twitter
- marmbrus on GitHub
- From your perspective, what is the biggest gap in the tooling or technology for data management today?
- Delta Lake
- Spark SQL
- Microsoft SQL Server
- Databricks Delta
- Spark Summit
- Apache Spark
- Enterprise Data Curation Episode
- Data Lake
- Data Warehouse
- Hive Metastore
- Great Expectations
- Optimistic Concurrency/Optimistic Locking
- Starburst Labs
- Apache NiFi
- Change Data Capture
- Apache Pulsar
- Multi-Version Concurrency Control
The intro and outro music is from The Hug by The Freak Fandango Orchestra / CC BY-SA
Support Data Engineering Podcast